(1).sql:='select * from users ';
open p_cursor for vSQLInfo ; --这样对
(2)。如果sql 是动态赋值的 然后就报错 java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 出现错误
ORA-01003: 语句未进行语法分析
并且 sql语句是正确的,在pl/Sql执行是对的问题补充: 在 ORACLE 动态赋值到一个参数里,然后重组sql语句,并且 组成后付给了了一个字符串
temp varchar2(4000),此时如果输出后,下面执行 open p_cursor for select * from users;
此时输出的语句在pl/SQL中执行是正确的
但是我如果执行 open p_cursr for temp 就会报上错为什么呢?
open p_cursor for vSQLInfo ; --这样对
(2)。如果sql 是动态赋值的 然后就报错 java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 出现错误
ORA-01003: 语句未进行语法分析
并且 sql语句是正确的,在pl/Sql执行是对的问题补充: 在 ORACLE 动态赋值到一个参数里,然后重组sql语句,并且 组成后付给了了一个字符串
temp varchar2(4000),此时如果输出后,下面执行 open p_cursor for select * from users;
此时输出的语句在pl/SQL中执行是正确的
但是我如果执行 open p_cursr for temp 就会报上错为什么呢?
type cType is ref cursor;
c1 cType;
vName varchar2(10);
vSql varchar2(4000);
vTable varchar2(10);
begin
vTable := 'a02';
vSql := 'select t from ';
vSql := vSql || vTable;
open c1 for vSql;
loop
fetch c1
into vName;
exit when c1%notfound;
dbms_output.put_line(vName);
end loop;
end ap3;
SQL> exec ap3;
wwwww
1
2
PL/SQL procedure successfully completed
open c1 for select t from a02 where key = 变量;这样是没有问题的