create or replace procedure pro_name(strSql in varchar2) isv_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)
请各位解答。谢谢
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)
请各位解答。谢谢
写成select sum(a) a from .......
试试看吧,你的其他写法没错。
lsn_a number(10)这里漏掉一个分号了(;)!!
我用你的例子改成一个脚本,根本没有问题。。你看看你传进去的参数吧。。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;