oracle中的execute,oracle Execute Immediate(sql语句)

本文通过两个示例展示了如何使用PL/SQL中的BULK COLLECT进行数据批量收集及处理。第一个示例演示了如何将来自多个SELECT语句的结果存储在一个VARCHAR2类型的表变量中,并逐行输出。第二个示例则进一步展示了如何使用记录类型存储更复杂的数据结构,并通过循环遍历输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Example 1:

Output:

A

B

CDECLARE TYPE var_typ IS TABLE OF VARCHAR2(4000);

cVars var_typ;

cVar VARCHAR2(4000);BEGIN

EXECUTE IMMEDIATE ' SELECT ''A'' cc FROM dual

UNION

SELECT ''B'' cc FROM dual

UNION

SELECT ''C'' cc FROM dual' BULK COLLECT INTO cVars;  FOR i IN 1 .. cVars.COUNT

LOOP

cVar := cVars(i);

dbms_output.put_line (cVar);  END LOOP;END;/

Example 2:

Output:

A C

B D

C EDECLARETYPE rec IS

RECORD

(

col1 VARCHAR2(30),

col2 VARCHAR2(30) );

TYPE rec_table IS TABLE OF rec;

results rec_table;

tRow rec;BEGIN

EXECUTE IMMEDIATE ' SELECT ''A'',''C'' FROM dual

UNION

SELECT ''B'',''D'' FROM dual

UNION

SELECT ''C'',''E'' FROM dual' BULK COLLECT INTO results;  FOR i IN 1 .. results.COUNT

LOOP

tRow := results(i);

dbms_output.put_line(tRow.col1 || ' ' || tRow.col2);  END LOOP;END;/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值