项目进行对于多行数据某个列数据转换为一个字符串查询时,出现【ORA-22922: 不存在的 LOB 值】异常信息,具体异常栈

根据项目信息获取指出调剂列表: ### Error querying database. Cause: java.sql.SQLException: ORA-22922: 不存在的 LOB 值 ### The error may exist in URL [jar:file:/E:/Tomcat/Tomcat%208.5/webapps/czept/WEB-INF/lib/rap-back-czept-3.0.0-SNAPSHOT.jar!/com/ifugle/rap/czept/glzx/xml/CzeptBsdtZctjMapper.xml] ### The error may involve com.ifugle.rap.czept.glzx.mapper.CzeptBsdtZctjMapper.selectCzeptZysjZctjDetailPagination-Inline ### The error occurred while setting parameters ### SQL: select * from ( select row_.*, rownum rownum_ from ( SELECT T.* FROM V_CZEPT_ZCTJ_DETAILS T WHERE T.ID != ? AND T.LX = ? AND INSTR(T.PROGRAMCODE, ?)>0 ) row_ ) where rownum_ <= 20 and rownum_ > 10 ### Cause: java.sql.SQLException: ORA-22922: 不存在的 LOB 值 ; uncategorized SQLException for SQL []; SQL state [99999]; error code [22922]; ORA-22922: 不存在的 LOB 值 ; nested exception is java.sql.SQLException: ORA-22922: 不存在的 LOB 值

奇怪的是,核心查询sql语句为

在pl/sql执行查询时,一点问题都没有,但是一在前后台联调就发生错误!!!!

经过查询得知是:原因是用了wm_concat函数,转换后是clob类型,导致报表查询时报错。

oracle数据库在行转列函数,不但提供了wm_concat函数,也提供了listagg函数!那对该场景查询更换转换方式,把WM_CONCAT(DISTINCT M.XM_DM) AS PROGRAMCODE修改为 LISTAGG(M.XM_DM, ',')WITHIN GROUP (ORDER BY M.XM_DM) AS PROGRAMCODE,再进行执行,问题完美解决!

所以在ORACLE数据库中进行行转列一定注意用法,要不一不小心就进坑!

LISTAGG基础的用法如下:

LISTAGG(列名,分隔符) WITHIN GROUP( ORDER BY 列名)

列名:需要拼接的数据表中的字段

分隔符:以什么字符分割,例如逗号,分号等字符

它的用法就像聚合函数一样,通过Group by语句,把每个Group的一个字段,拼接起来。

总结一下:

  1. wm_cancat函数行转列后,不会按照原有查询结果排序。listagg函数行转列后,会按照原有查询结果顺序排列。
  2. 如果考虑到需要行转列,并且保持分组后顺序不变可以使用listagg来完成。

------------------------------------------------------------------------
作者:超级字节码
来源:CSDN
原文:https://blog.csdn.net/dgxin_605/article/details/110818261
版权声明:本文为博主原创文章,转载请附上博文链接!

------------------------------------------------------------------------

oracle-ORA-22922: 不存在的 LOB 值相关推荐

  1. 踩坑日记——Oracle 错误:ORA-22922 不存在的 LOB 值

    今天在系统中测试导出报表的时候,根据人名.工号.单据号.项目等条件分别导出都没有出现问题,唯独无条件导出时报以下错误: Oracle 错误:ORA-22922 不存在的 LOB 值 根据报错信息进行排 ...

  2. Oracle ORA

    ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常. ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 OR ...

  3. Oracle学习笔记 --- Oracle ORA错误解决方案

    今天在Debug的时候报错了如下信息: 后来综合了网上的东西,总结如下: ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常. ORA-000 ...

  4. 不存在lob值 java,ORA-22922: 不存在的 LOB 值

    "ORA-22922: 不存在的 LOB 值"有时和ORA-01790一起出来,01790是说类型不一致,常见的有wm_concat函数,高版本的Oracle都不再支持wm_con ...

  5. Oracle.DataAccess.Client.OracleCommand”的类型初始值设定项引发异常

    Oracle.ManagedDataAccess.dll 连接Oracle数据库不需要安装客户端 最开始,连接Oracle 数据是需要安装客户端的,ado.net 后来由于微软未来不再支持 Syste ...

  6. Oracle Ora 错误解决方案合集

    Oracle Ora 错误解决方案合集 参考文章: (1)Oracle Ora 错误解决方案合集 (2)https://www.cnblogs.com/ios9/p/8627643.html 备忘一下 ...

  7. “Oracle.DataAccess.Client.OracleConnection”的类型初始值设定项引发异常

    "Oracle.DataAccess.Client.OracleConnection"的类型初始值设定项引发异常. 这个问题是我在iis上发布后浏览网页时报的错误.而在本地浏览程序 ...

  8. Oracle用 odp.net 时出现 Oracle.DataAccess.Client.OracleConnection的类型初始值设定项引发异常 问题的解决...

    在初次使用 Oracle 时,用ado.net连接数据,出现 "Oracle.DataAccess.Client.OracleConnection"的类型初始值设定项引发异常 的提 ...

  9. oracle sql为null值,在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办

    在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1.MSSQL: ISNULL() 语法 ISNULL ( check_expression , replacem ...

最新文章

  1. 基于EMQ X,打造AIoT物联网视频接入解决方案
  2. 【AI-1000问】为什么LeNet5倒数第二个全连接层维度为84?
  3. 计算机网络总线型结构优,计算机基础知识:计算机网络总线型拓扑结构的概述及优缺点...
  4. easyui datagrid 表格组件列属性formatter和styler使用方法
  5. nosql_探索NoSQL系列
  6. 【许晓笛】 EOS 智能合约案例解析(2)
  7. 【Pytorch神经网络理论篇】 03 Pytorch快速上手(三)张量的数据操作
  8. SecureCRT 安装与配置大全
  9. 常用Linux命令:
  10. if....else的基本用法
  11. 使用 RemObjects SDK 建立 WebService 应用
  12. 1000以内完数c语言程序_C语言完数编程题目详解
  13. Android长图文截图的实现(支持截取微博,知乎,头条等第三方app)
  14. UnRaid配置文件、启动U盘定时备份方案
  15. 一步一步带你训练CTPN
  16. linux ps -ang,PS顶级一键人像修图插件-DeliciousRetouchPlus
  17. ubuntu 国内源列表
  18. MySQL报错1406_mysql报错:1406, Data too long for column
  19. python eel_python eel打包问题解决
  20. 小 tips:删除word表格下面多余的空白页

热门文章

  1. shell一键生成密钥脚本
  2. 辰视智能主办的第二届智能制造高峰论坛昨日在深圆满举行
  3. stop slave mysql_mysql执行stop slave一直卡在Killing slave的状态
  4. 24HTML5期末大作业:XXX 网站设计——指环王:护戒使者(13页) HTML+CSS+JavaScript HTML+CSS+JS网页设计期末课程大作业 web前端开发技术 web课程 网页规
  5. StopWatch的源码分析
  6. crypto buuctf rabbit
  7. Docker 搭建 EK 环境
  8. 如何提高本地文件上传至百度云的速度_上传1GB/s,下载1KB/s的原因终于找到了! | 细说网盘储存机制...
  9. 老铁,了解一下Python吗?
  10. 如何在Linux中安装jdk?