在我的代碼中,我試圖根據行號在for循環中插入數據。我想使用它的原因是因爲否則我得到一個「單行子查詢返回多個行」的錯誤,因爲我的select子查詢返回多於一行,實際上,顯然我想一次插入一行。在Oracle中使用ROWNUM插入行
declare
begin
for x in (select * from PilotKeyLookup) loop
if x.p2id != null then
insert into BridgeTable (groupid, pilotid) values (sqBridgeGroupID.nextval, (select p1id from PilotKeyLookup));
insert into BridgeTable (groupid, pilotid) values (sqBridgeGroupID.currval, (select p2id from PilotKeyLookup));
else
insert into BridgeTable (groupid, pilotid) values (sqBridgeGroupID.nextval, (select p1id from PilotKeyLookup));
end if;
end loop;
end;
而且這是我想使用的rownum:
declare
begin
for x in (select * from PilotKeyLookup) loop
if x.p2id != null then
insert into BridgeTable (groupid, pilotid) values (sqBridgeGroupID.nextval, (select p1id from PilotKeyLookup where rownum = x));
insert into BridgeTable (groupid, pilotid) values (sqBridgeGroupID.currval, (select p2id from PilotKeyLookup where rownum = x));
else
insert into BridgeTable (groupid, pilotid) values (sqBridgeGroupID.nextval, (select p1id from PilotKeyLookup where rownum = x));
end if;
end loop;
end;
不過,我得到一個「表達式類型錯誤」的錯誤。 有什麼建議嗎?
這是一個不錯的解決方案! –
謝謝,它像一個魅力。我決定選擇這個解決方案,因爲它似乎比下面的更快。 – Istvan