1

我很困惑,因为我不知道如何在execute immediate子句中使用变量作为字符串。

declare
  variable1 varchar2(30):
  cur sys_refcursor;
begin
  open cur for
    select tablename from table1;

  loop
    fetch cur into variable1;
    exit when cur %notfound;

    execute immediate 'select count(*)
                         into variable1
                         from user_tables
                        where table_name =''' || variable1 || '''';
  end loop;

  close cur;

end;

variable1是一个表名。应该有一个字符串值。怎么做?还是报错。

4

1 回答 1

1

立即执行语句应如下所示:

execute immediate 'select count(*) from user_tables where table_name ='''||variable1||'''' into variable1;

用 into xxx 查询后。

于 2015-10-30T14:01:10.993 回答