ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01003: 语句未进行语法分析,救命啊!

as1245sdo 2012-12-26 06:54:26
(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 就会报上错

为什么呢?
...全文
2488 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
as1245sdo 2012-12-28
  • 打赏
  • 举报
回复
引用 1 楼 jdsnhan 的回复:
SQL code?123456789101112131415161718192021222324252627create or replace procedure ap3 is type cType is ref cursor; c1 cType; vName varchar2(10); vSql varchar2(4000); vTable va……
写法一样,不知道为什么出错。
 open c1 for select t from a02 where key = 变量;
这样是没有问题的
jdsnhan 2012-12-27
  • 打赏
  • 举报
回复
create or replace procedure ap3 is
  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

17,134

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧