为了账号安全,请及时绑定邮箱和手机立即绑定

oracle Execute Immediate(sql语句)

oracle Execute Immediate(sql语句)

杨__羊羊 2018-08-12 10:13:27
Execute Immediate(sql语句),执行后返回多条数据,怎么遍历其数据
查看完整描述

1 回答

?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

Example 1:

Output:
A
B
C

DECLARE 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 E

DECLARETYPE 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;/


查看完整回答
反对 回复 2018-08-30
  • 1 回答
  • 0 关注
  • 1333 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信