【发布时间】:2015-10-30 13:49:25
【问题描述】:
我很困惑,因为我不知道如何在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 是一个表名。应该有一个字符串值。怎么做?还是有错误。
【问题讨论】:
-
请注意,这里完全没有理由(也没有好处)使用动态 SQL。如果这是真正的问题,请使用静态 SQL。并将计数放入
integer或number变量中,而不是放入varchar2(30)。
标签: sql oracle syntax plsql execute-immediate