关于执行动态SQL问题??
create or replace procedure pro_name(strSql in varchar2) is
v_sql varchar(2000);
lsn_a number(10)
begin
v_sql:= 'select sum(a) as a from tablename where '||strSql;
Execute Immediate v_sqlstr Into lsn_a;
end pro_name;
编译通过,但测试出现错误:未预期的 SQL 命令结尾(指向这行 Execute Immediate v_sqlstr Into lsn_a)
请各位解答。谢谢
------解决方案--------------------你贴一个编译通过的,还有一种可能,你传进去的strsql有问题。
我用你的例子改成一个脚本,根本没有问题。。你看看你传进去的参数吧。。
Declare
strwhere Varchar2(400);
v_sql varchar(2000);
lsn_a number(10);
begin
strwhere := 'tabtype = ' 'TABLE ' ' ';
v_sql:= 'select count(*) a from tab where '||strwhere;
Execute Immediate v_sql Into lsn_a;
dbms_output.put_line(lsn_a);
End;