暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 动态传递序列名称以获取currval

ASKTOM 2020-08-10
336

问题描述

我正在尝试获取架构中所有用户序列的currval。当我运行下面的sql它给我无效的sql语句。
我不确定下面的内容是否是实现它的正确方法。请指教。
假设: 序列的当前值已经在会话中设置。

set serveroutput on;
declare
sq number;
sqnm varchar2(50); 
stmt varchar2(1000);

cursor sqnc is (select sequence_name from user_sequences);
begin
    for row in sqnc loop
    sqnm := row.sequence_name;
    stmt := 'SELECT' || sqnm ||'.currval into' || sq || 'from dual';
    execute immediate stmt;
   dbms_output_put_line(sqnm || ' ' ||sq);
    end loop;
end;


专家解答

选择...进入...是一个PL/SQL构造。

使用execute立即运行SQL into子句是此语句的一部分:

execute immediate stmt
  into ...;


文章转载自ASKTOM,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论