为什么字符串的值变成(long value)了?

麻子Mozart 2009-03-03 06:41:05
变量: varSQL 类型是: VARCHAR2(20000)

varSQL := varSQL || ' select ';
varSQL := varSQL || 很多列名;
varSQL := varSQL || ' from ';
varSQL := varSQL || 很多表名;
.
.
.
.
varSQL 在前几行还有值,为什么到后来值就变成'long value'了?

...全文
82 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdsnhan 2009-03-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hdhai9451 的回复:]
1.varchar2的最大长度为4000,可是你定义为20000,超长了;
2.varSQL所有字符连接起来可能已经超过了4000个字符,那你只能改为另一种办法解决
execute immediate varSQL1||varSQL2||varSQL3; -->这样来运行sql语句
[/Quote]

应该说varchar2作为变量定义的时候最大长度为32767,但作为列处理的时候最大长度是4000
Andy__Huang 2009-03-03
  • 打赏
  • 举报
回复
1.varchar2的最大长度为4000,可是你定义为20000,超长了;
2.varSQL所有字符连接起来可能已经超过了4000个字符,那你只能改为另一种办法解决
execute immediate varSQL1||varSQL2||varSQL3; -->这样来运行sql语句

17,089

社区成员

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

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