我有以下查詢的Oracle 11g PL/SQL光標,相交查詢
select distinct name from table1
intersect
select distinct name from table2;
我的結果集加載到光標的PL/SQL程序中,像這樣:
cursor c1 is (select distinct name from table1
intersect
select distinct name from table2);
對於一些原因結果集中的最後一個值在遊標中重複。這在運行查詢本身時不會發生。任何想法爲什麼發生這種情況?
代碼迴路:
var table.col%type;
BEGIN
OPEN c1;
LOOP
BEGIN
exit when c1%NOTFOUND;
FETCH c1 into var;
INSERT INTO table values (col1, var);
commit;
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
CONTINUE;
END;
END LOOP;
END;
它是一個SQL集操作,它只從兩個不同的SELECT語句中選擇公共元素 – user2001117 2013-02-13 04:06:35
你如何循環遊標?你能告訴我們一些代碼嗎? – 2013-02-13 05:11:10
循環代碼添加到問題中。在我運行該過程後,當我查詢數據被插入到的表時,最後的值被插入兩次。 – sotn 2013-02-13 09:30:15