游标中嵌套游标 oracle,Oracle嵌套游标

我想从列中存在的模式中的每个表中获取名为“YMDH”的列中的不同日期。我想我需要使用嵌套游标(我以前没有做过的),并提出了以下代码:

CREATE OR REPLACE PROCEDURE DistinctDates AS

sql_statement1 varchar2(200);

sql_statement2 varchar2(200);

results varchar2(15);

ColumnExist integer;

BEGIN

for cursor_rec in (SELECT * FROM user_objects WHERE object_type='TABLE'

AND object_name NOT LIKE 'TM%') loop

sql_statement1 := 'select count (*) from user_tab_columns where table_name=' || '''' || cursor_rec.object_name || '''' || ' and column_name=' || '''' ||'YMDH' || '''';

execute immediate sql_statement1 into ColumnExist;

if ColumnExist = 1 then

for inner_cursor_rec in (select distinct(ymdh) from cursor_rec.object_name) loop

null;

end loop;

end if;

end loop;

END DistinctDates;SQL Developer正在抱怨内部游标的select语句。错误消息是:

Error(18,32): PL/SQL: SQL Statement ignored

Error(18,70): PL/SQL: ORA-00942: table or view does not exist

所以它不会识别对外部游标的引用。我如何将表名(这是cursor_rec.object_name)传递给内部游标?

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值