oracle 动态游标问题,在线等

yuppy 2012-06-14 07:25:35
问题是这样:


OPEN OUT_DATA FOR DBMS_LOB.substr(V_SQL,
DBMS_LOB.getlength(V_SQL),
1);


V_SQL是一块在存储过程中拼起来的SQL语句,现在在OPEN游标的时候老是报错说语法错误,

问题是我直接执行这个V_SQL可以得到结果集!!!

请高手指教。

会不会因为V_SQL长度问题? 里面的空白字符问题? 换行?

...全文
105 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wqkjj 2012-06-15
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
问题是这样:


OPEN OUT_DATA FOR DBMS_LOB.substr(V_SQL,
DBMS_LOB.getlength(V_SQL),
1);


V_SQL是一块在存储过程中拼起来的SQL语句,现在在OPEN游标的时候老……
[/Quote]

跟一下DBMS_LOB.substr(V_SQL,DBMS_LOB.getlength(V_SQL),1);这个结果咯

顺便说一下,如果你的V_SQL中存在汉字,getlength(....)恐怕返回的是字符数目,而不是字节数目,这样截取的字符串不是你所想像长度的字符串

yuppy 2012-06-15
  • 打赏
  • 举报
回复
open 游标的时候 报错 ORA-00921: 意外的 SQL 命令结尾
jdsnhan 2012-06-15
  • 打赏
  • 举报
回复
具体内容
hupeng213 2012-06-15
  • 打赏
  • 举报
回复
strCursorSql := 'select distinct ' || secondField || ' from ' || strTable;
OPEN cur FOR strCursorSql;

loop
Fetch cur into secondFieldValue;
Exit when cur%notfound;
...
end loop;

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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