CREATE OR REPLACE PROCEDURE PRO_PROJECT IS TYPE P_PROJECT IS TABLE OF JG_PROJECT%ROWTYPE; V_PROJET P_PROJECT; BEGIN V_PROJET := P_PROJECT(); SELECT * bulk collect into V_PROJET FROM JG_PROJECT T WHERE T.ID = 199; for j in 1..V_PROJET.count loop dbms_output.put_line(v_projet(j).id); end loop;
END PRO_PROJECT;
多谢楼主的回答,赞一个 本人犯了个错, bulk collect into 返回的是集合,不能单个取值,循环取值就行了,CREATE OR REPLACE PROCEDURE PRO_PROJECT IS TYPE P_PROJECT IS TABLE OF JG_PROJECT%ROWTYPE; V_PROJET P_PROJECT; BEGIN V_PROJET := P_PROJECT(); ---这个是啥意思,去掉不会影响效果哦,, SELECT * bulk collect into V_PROJET FROM JG_PROJECT T WHERE T.ID = 199; for j in 1..V_PROJET.count loop dbms_output.put_line(v_projet(j).id); end loop;
CREATE OR REPLACE PROCEDURE PRO_PROJECT IS
TYPE P_PROJECT IS TABLE OF JG_PROJECT%ROWTYPE;
V_PROJET P_PROJECT;
BEGIN
V_PROJET := P_PROJECT();
SELECT * bulk collect into V_PROJET FROM JG_PROJECT T WHERE T.ID = 199;
for j in 1..V_PROJET.count loop
dbms_output.put_line(v_projet(j).id);
end loop;
END PRO_PROJECT;
本人犯了个错, bulk collect into 返回的是集合,不能单个取值,循环取值就行了,CREATE OR REPLACE PROCEDURE PRO_PROJECT IS
TYPE P_PROJECT IS TABLE OF JG_PROJECT%ROWTYPE;
V_PROJET P_PROJECT;
BEGIN
V_PROJET := P_PROJECT(); ---这个是啥意思,去掉不会影响效果哦,,
SELECT * bulk collect into V_PROJET FROM JG_PROJECT T WHERE T.ID = 199;
for j in 1..V_PROJET.count loop
dbms_output.put_line(v_projet(j).id);
end loop;
END PRO_PROJECT;