您確保order by
是你的觀察的原因?
我可以通過子句上與順序的圖執行插入:
create table tq84_table (
a number,
b number
);
create view tq84_updateable_view as
select a, b from tq84_table
order by a;
insert into tq84_table values (4,1);
insert into tq84_table values (1,4);
insert into tq84_table values (3,9);
insert into tq84_table values (7,5);
select * from tq84_updateable_view;
insert into tq84_updateable_view values (1,9);
select * from tq84_updateable_view;
以上陳述與在Oracle 11 R2沒有問題運行。
你可能想用USER_UPDATABLE_COLUMNS
檢查可以插入到哪些列:
SQL> select * from user_updatable_columns where table_name = 'TQ84_UPDATEABLE_VIEW';
OWNER TABLE_NAME COLUMN_NAME UPD INS DEL
------------------------------ ------------------------------ ------------------------------ --- --- ---
RENE TQ84_UPDATEABLE_VIEW A YES YES YES
RENE TQ84_UPDATEABLE_VIEW B YES YES YES
你不得不發佈CREATE VIEW語句讓我們能夠就如何使它更新。在視圖中的「ORDER BY」是非常有問題的,而不是推薦的做法。 – 2011-02-17 22:38:30
爲什麼有人會在視圖中使用訂單? – 2011-02-17 22:59:14