oracle “ora-01489字符串串联过长”的问题

我写了这样一条语句:SELECTY2.stu_id,Y2.stu_nameFROM(selectto_blob(rawtohex(y1.stu_id))asstu_id,... 我写了这样一条语句:
SELECT Y2.stu_id, Y2.stu_name
FROM (select to_blob(rawtohex(y1.stu_id)) as stu_id,
to_blob(rawtohex(listagg('学号:' || y1.stu_id || ',姓名:' || y1.stu_name,';') within group(order by y1.stu_id))) as stu_name
from zb_1007 y1
group by y1.stu_id) Y2;
查询结果大概有20万条记录记录,结果也是我想要的,但只能看2000条左右,我想获取查询结果的全部数据时,就提示“ora-01489:字符串串联过长”,这有什么办法解决呢?哪位高手可以指点指点,先谢谢啦!
展开
 我来答
匿名用户
2014-02-25
展开全部
listagg聚合的结果列大小限制在varchar2类型的最大值内(比如4000).
'学号:' || y1.stu_id || ',姓名:' || y1.stu_name 这一部分超长了 用substr截取下substr('学号:' || y1.stu_id || ',姓名:' || y1.stu_name ,1,2000)
百度网友0597f80
2015-09-28 · TA获得超过324个赞
知道小有建树答主
回答量:194
采纳率:0%
帮助的人:75.4万
展开全部
找了些方法都不能实现,加一层嵌套,把源表要拼接的字段先截取一下,在外层用listagg,colb类型看着太不舒服了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
那时花开应自在
2014-02-22 · 超过40用户采纳过TA的回答
知道小有建树答主
回答量:94
采纳率:0%
帮助的人:72.4万
展开全部
1、在Oracle PL/SQL中输入缓冲开始命令,并指定输出的文件路径和文件名
spool d:\output.txt
2、在命令中输入相应的SQL查询命令
你的命令...

3、在命令行中输入缓冲结果命令
spool off;
系统将缓冲池的结果输出到“output.txt”中,并以TAB分隔。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式