oracle 返回多条记录,用record类型和table类型存储查询语句返回的多条记录 的例子...

DECLARE

--定義一個record type

TYPE TEST_EMP IS RECORD

(

C1 gobo_sign.org_id%TYPE,

C2 gobo_sign.proc_name%TYPE

);[@more@]

--定義table type

type t_type is table of TEST_EMP;

v_type t_type;

BEGIN

--將select result寫入 定義的table

SELECT org_id,proc_name BULK COLLECT INTO v_type

FROM gobo_sign

WHERE rownum <= 6;

for v_index in v_type.first .. v_type.last loop

dbms_output.put_line(v_type(v_index).C1 || ' ' || v_type(v_index).C2);

end loop;

END;

結果:

0 OMR004

0 OMR110

1 BOMR002

1 BOMR003

1 OMR004

1 OMR110

另:

一个关于tape的procedure ,LZ可以看看

CREATE OR REPLACE PROCEDURE Zxt_type_Study Is

/*

type 的使用

*/

Testrow1 Test%ROWTYPE;

TYPE Aa IS TABLE OF Test%Rowtype;

Testrow Aa := Aa();

TYPE Bb IS TABLE OF Test.ac%Type;

Cc Bb;

Testrow2 Test%ROWTYPE;

t Test.Ac%TYPE;

BEGIN

Testrow2.Ac := 'a3';

Testrow2.Breanch := 'zxtss';

Testrow2.Amt := 5000;

--取update的结果

UPDATE Test SET ROW = Testrow2 WHERE Ac = Testrow2.Ac RETURNING Ac, Breanch, Amt INTO Testrow1;

--给type付值

FOR i IN (SELECT * FROM Test) LOOP

Testrow.EXTEND;

Testrow(Testrow.LAST) := i;

Testrow2 :=i;

Dbms_Output.Put_Line('ac1=' || Testrow2.Ac || ';breanch1=' || Testrow2.Breanch || ';amt1=' || Testrow2.Amt);

END LOOP;

Dbms_Output.Put_Line('ac=' || Testrow1.Ac || ';breanch=' || Testrow1.Breanch || ';amt=' || Testrow1.Amt);

--给type付值1

SELECT Test.Ac BULK COLLECT INTO Cc FROM Test;

--forall的使用

FORALL j IN Cc.FIRST .. Cc.LAST

UPDATE Test SET Test.Amt = 1000 WHERE Test.Ac = Cc(j);

--取type中的一个值

FOR y IN Cc.FIRST .. Cc.LAST LOOP

Dbms_Output.Put_Line('cc(y)' || Cc(y));

END LOOP;

Dbms_Output.Put_Line('t=' || t);

--打印执行前边的sql结果集的条数

Dbms_Output.Put_Line('sql=' || SQL%ROWCOUNT);

END Zxt_type_Study;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值