雖然這按預期工作:插入到太多的列通過SELECT查詢
SQL> DROP TABLE TEST1; Table dropped. SQL> CREATE TABLE TEST1 (COL1 INTEGER, COL2 INTEGER); Table created. SQL> INSERT WHEN 1=1 2 THEN INTO TEST1 (COL1, COL2) 3 SELECT 1, 0 FROM DUAL; 1 row created. SQL>
我收到一個奇怪的「ORA-00918:列定義的含糊」的錯誤嘗試這個擁有超過兩列:
SQL> DROP TABLE TEST1; Table dropped. SQL> CREATE TABLE TEST1(COL1 INTEGER, COL2 INTEGER, COL3 INTEGER); Table created. SQL> INSERT WHEN 1=1 2 THEN INTO TEST1 (COL1, COL2, COL3) 3 SELECT 1, 0, 0 FROM DUAL; THEN INTO TEST1 (COL1, COL2, COL3) * ERROR at line 2: ORA-00918: column ambiguously defined SQL>
爲什麼我在這裏收到ORA-00918錯誤?是否有限制多少列我可以在INSERT時選擇...然後INTO ... SELECT模式?
注意:我使用的是Oracle 11.2.0.1.0,而我試圖在生產中執行的實際查詢更爲複雜,並引用了其他表(並且使用「VALUES」不足)。這只是簡化的情況...
+++謝謝您的解釋!這整個時間都沒有別名,現在這個效果非常好! – ManRow 2012-07-12 08:59:10