用WM_CONCAT查询数据的时候超过10条报不存在的lob值, 弄了一上午终于搞定了!
2016-12-20 18:18
351 查看
我原先的sql:
SELECT ut.userid AS USERID,
ut.operatorname AS USERNAME,
ut.operatorid AS OPERATORID,
upt1.posicode AS POSICODES,
ot.orgseqname AS ORGDEPT,
ot.orgname AS OFFICE
FROM bpm_user ut
RIGHT JOIN (select upt.operatorid as operatorid,
to_char(substr(WM_CONCAT(upt.posicode), 1, 4000)) as posicode
from bpm_user_position upt
where upt.flag = 'Y'
group by upt.operatorid) upt1 ON upt1.operatorid =
ut.operatorid
INNER JOIN bpm_org ot ON ot.orgid = ut.orgid
where 1 = 1
AND upt1.posicode like '%10008%';
这段sql在数据库执行没有问题,但是在程序一直报错;
然后分析问题发现在WM_CONCAT 之后在to_char的时候就会报错,如果不to_char 返回的数据又是clob的路径;
最后小小的修改了下,卧槽 问题就解决了! 但是具体原因 我也不明白,有知道的大神可以告诉我下吗?
修改后的代码:
SELECT ut.userid AS USERID,
ut.operatorname AS USERNAME,
ut.operatorid AS OPERATORID,
to_char(substr(upt1.posicode, 1, 4000)) AS POSICODES,
ot.orgseqname AS ORGDEPT,
ot.orgname AS OFFICE
FROM bpm_user ut
RIGHT JOIN (select upt.operatorid as operatorid,
WM_CONCAT(upt.posicode) as posicode
from bpm_user_position upt
where upt.flag = 'Y'
group by upt.operatorid) upt1 ON upt1.operatorid =
ut.operatorid
INNER JOIN bpm_org ot ON ot.orgid = ut.orgid
where 1 = 1
AND upt1.posicode like '%10008%';
网上查了各种资料还是没找到能解决我问题的,最后自己解决了 哈哈! 记录下以便有遇到相同的问题的人能有个参考!
SELECT ut.userid AS USERID,
ut.operatorname AS USERNAME,
ut.operatorid AS OPERATORID,
upt1.posicode AS POSICODES,
ot.orgseqname AS ORGDEPT,
ot.orgname AS OFFICE
FROM bpm_user ut
RIGHT JOIN (select upt.operatorid as operatorid,
to_char(substr(WM_CONCAT(upt.posicode), 1, 4000)) as posicode
from bpm_user_position upt
where upt.flag = 'Y'
group by upt.operatorid) upt1 ON upt1.operatorid =
ut.operatorid
INNER JOIN bpm_org ot ON ot.orgid = ut.orgid
where 1 = 1
AND upt1.posicode like '%10008%';
这段sql在数据库执行没有问题,但是在程序一直报错;
然后分析问题发现在WM_CONCAT 之后在to_char的时候就会报错,如果不to_char 返回的数据又是clob的路径;
最后小小的修改了下,卧槽 问题就解决了! 但是具体原因 我也不明白,有知道的大神可以告诉我下吗?
修改后的代码:
SELECT ut.userid AS USERID,
ut.operatorname AS USERNAME,
ut.operatorid AS OPERATORID,
to_char(substr(upt1.posicode, 1, 4000)) AS POSICODES,
ot.orgseqname AS ORGDEPT,
ot.orgname AS OFFICE
FROM bpm_user ut
RIGHT JOIN (select upt.operatorid as operatorid,
WM_CONCAT(upt.posicode) as posicode
from bpm_user_position upt
where upt.flag = 'Y'
group by upt.operatorid) upt1 ON upt1.operatorid =
ut.operatorid
INNER JOIN bpm_org ot ON ot.orgid = ut.orgid
where 1 = 1
AND upt1.posicode like '%10008%';
网上查了各种资料还是没找到能解决我问题的,最后自己解决了 哈哈! 记录下以便有遇到相同的问题的人能有个参考!
相关文章推荐
- oracle数据库查询多行数据使用wmsys.wm_concat()合并
- DNS同时占用UDP和TCP端口53——传输数据超过512时候用tcp,DNS服务器可以配置仅支持UDP查询包
- 在SQL server 2000中打开表查看数据的时候,提示说“无法执行查询,因为一些文件缺少或未注册”
- 终于搞定了, 用VBA直接读取Perkin Elmer二进制*.sp文件中的数据
- 终于搞定在ubuntu下访问vbox分配的数据空间了
- 查询大于10条的数据
- 在myeclipse6.5 中运行main函数测试webservice服务端利用hql语句查询数据库里的数据的时候的问题
- 查询存在表1但不存在表2的所有数据
- .NET sql查询返回DataTable数据量大的时候有严重的效率问题
- Gridview分页查询数据,当数据为空时候在查询语句中的判断
- oracle查询date类型的数据的时候的小问题
- Asp.net数据查询中SQL查询语句中存在某个字段,但是显示时提示某字段不存在表中
- SQL 数据库表修复(LOB 数据类型节点的数据库 ID 30,页 (1:438),槽 7 不存在)
- 查询数据库的数据,是个比较费时的工作,在使用线程查询的时候显示个进度条,并允许终止查询的实现
- 疑惑:如何用hql语句查询前10条数据??求解!!!
- 终于搞定,希望自己有空的时候能多写点
- 查了一天业务数据,终于搞定了
- 查询日程的时候返回的数据
- 查询数据的时候 提示事务(进程 ID **)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。
- 制单表查询all终于搞定了辅助核算显示