您好: 謝謝, 1.其中 DML 只能接1行吧? 2.上述程式碼中, FOR i IN l_desc_tab.first .. l_desc_tab.last LOOP INSERT INTO t1 VALUES (t1_seq.nextval, l_desc_tab(i)) /*使用自動序號*/ RETURNING id, description BULK COLLECT INTO l_tab; END LOOP;我接著用 DBMS_OUTPUT.put_line(l_tab.count); //-->??只有1筆 請問這正確嗎? 那如何能讓他 RETURNING 實際寫入 筆數?謝謝!
你的意思是插入一条,然后界面显示一次,那不就失去bulk into的意义了吗,直接用cursor就好了 bulk into本身是批量处理的语句,整个批次执行完成后才会再进行响应的 bulk into 固定和for all 搭配使用,改成loop end loop的模式应该语法上都过不去 for all 后面只能跟1个sql语句
不好意思,沒說清楚, 當 FOR i IN l_desc_tab.first .. l_desc_tab.last LOOP INSERT INTO t1 VALUES (t1_seq.nextval, l_desc_tab(i)) /*使用自動序號*/ RETURNING id, description BULK COLLECT INTO l_tab; END LOOP;執行完畢後, l_tab 為何只有1筆資料?? 若INSERT 3筆,應該是 l_tab.count =3 才對,但卻=1所以要如何寫,才會等於3 ? 謝謝!
謝謝,
1.其中 DML 只能接1行吧?
2.上述程式碼中,
FOR i IN l_desc_tab.first .. l_desc_tab.last LOOP
INSERT INTO t1
VALUES (t1_seq.nextval, l_desc_tab(i)) /*使用自動序號*/
RETURNING id, description BULK COLLECT INTO l_tab;
END LOOP;我接著用 DBMS_OUTPUT.put_line(l_tab.count); //-->??只有1筆
請問這正確嗎? 那如何能讓他 RETURNING 實際寫入 筆數?謝謝!
bulk into本身是批量处理的语句,整个批次执行完成后才会再进行响应的
bulk into 固定和for all 搭配使用,改成loop end loop的模式应该语法上都过不去
for all 后面只能跟1个sql语句
當
FOR i IN l_desc_tab.first .. l_desc_tab.last LOOP
INSERT INTO t1
VALUES (t1_seq.nextval, l_desc_tab(i)) /*使用自動序號*/
RETURNING id, description BULK COLLECT INTO l_tab;
END LOOP;執行完畢後, l_tab 為何只有1筆資料??
若INSERT 3筆,應該是 l_tab.count =3 才對,但卻=1所以要如何寫,才會等於3 ?
謝謝!