使用to_char(wm_concat(item))的时候报ORA-64203错误
出错原因:由于concat的item项目太多,导致合成后的字符串长度超出数据库char字段的缓冲区限制
通过DBMS_LOB.SUBSTR把wm_concat(item)分成10块,取到后再拼接起来
DBMS_LOB.SUBSTR(wm_concat(item),1000,1),
DBMS_LOB.SUBSTR(wm_concat(item),1000,1001),
DBMS_LOB.SUBSTR(wm_concat(item),1000,2001),
DBMS_LOB.SUBSTR(wm_concat(item),1000,3001),
DBMS_LOB.SUBSTR(wm_concat(item),1000,4001),
DBMS_LOB.SUBSTR(wm_concat(item),1000,5001),
DBMS_LOB.SUBSTR(wm_concat(item),1000,6001),
DBMS_LOB.SUBSTR(wm_concat(item),1000,7001),
DBMS_LOB.SUBSTR(wm_concat(item),1000,8001),
DBMS_LOB.SUBSTR(wm_concat(item),1000,9001),
DBMS_LOB.SUBSTR(wm_concat(item),1000,10001)
或者直接在oracle中用||连接起来,直接返回
DBMS_LOB.SUBSTR(wm_concat(item),1000,1) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,1001) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,2001) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,3001) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,4001) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,5001) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,6001) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,7001) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,8001) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,9001) ||
DBMS_LOB.SUBSTR(wm_concat(item),1000,10001)
参考oracle官网
http://download.oracle.com/docs/cd/E11882_01/server.112/e17766/e60000.htm:
ORA-64203: Destination buffer too small to hold CLOB data after character set conversion.
Cause: An attempt was made to convert CLOB to CHAR, where the LOB size was bigger than the buffer limit for CHAR types or the CHAR buffer was not big enough to hold all data after character set conversion.
Action: Do one of the following:
* Make the LOB smaller before performing the conversion. for example, by using SUBSTR on CLOB
* Use DBMS_LOB.SUBSTR to convert CLOB to CHAR.
DBMS_LOB.SUBSTR函数参考:
This function returns amount bytes or characters of a LOB, starting from an absolute offset from the beginning of the LOB.
lob_loc:Locator for the LOB to be read.
amount:Number of bytes (for BLOBs) or characters (for CLOBs) to be read.
offset:Offset in bytes (for BLOBs) or characters (for CLOBs) from the start of the LOB (origin: 1).
http://www.cs.umbc.edu/portal/help/oracle8/server.815/a68001/dbms_lob.htm#1009072
分享到:
相关推荐
ORA-00904 WMSYS.WM_CONCAT标识符无效解决方案
oracle19c缺少的函数
ORA-06512 数字或值错误,字符缓冲区太小的解决方法。 有图有真相,希望对你有帮助。
解决ORA-00904: "WMSYS"."WM_CONCAT": 标识符无效 在sqlplus中执行包里的owmctab.plb、owmaggrs.plb、owmaggrb.plb三个脚本即可。 简单来说,用PL/SQL执行下一下几个脚本就可以了。 特别要注意:PL/SQL登录时,要...
BLOG_Oracle_wm_concat包的订制.pdfBLOG_Oracle_wm_concat包的订制.pdf
wmsys_wm_concat函数结果拆解/wmsys_wm_concat函数结果拆解/wmsys_wm_concat函数结果拆解/wmsys_wm_concat函数结果拆解/
* 可自定义指定排序字段sequence,对于数字或日期类型的字段,先转为字符串,比如to_char(line, 'FM000') * 由于聚合函数只支持一个参数,这里使用对象类型实现传入多个参数 * Oracle11g Release2版本引入了...
-- 解决ORA-00904: "WMSYS"."WM_CONCAT": 标识符无效 的文件包....... -- 解决ORA-00904: "WMSYS"."WM_CONCAT": 标识符无效 的文件包....... -- 解决ORA-00904: "WMSYS"."WM_CONCAT": 标识符无效 的文件包....... ...
Oracle新版中不支持 WM_CONCAT的处理方法,直接创建一个自定义函数代替
wmsys_wm_concat的几个用法/wmsys_wm_concat的几个用法/wmsys_wm_concat的几个用法/wmsys_wm_concat的几个用法/wmsys_wm_concat的几个用法
资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:flake8_no_implicit_concat-0.1.4-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
非常方便的一个oracle管理工具,数据库开发和管理员都适用,可以进行数据库的日常开发,管理,优化工作,功能很全,对于dba来说,可以进行一些高级功能比如,awr, ash, 10046等功能。
功能强大的wmsys.wm_concat详细示例。
wm_concat函数在oracle 10G以下版本是没有的,这个就需要我们自己来创建,有需要的就下载下来,直接运行就行了,如果在运行中出中,请分开运行,不要一次性运行哟
系统会提示异常:ORA-00904: "WM_CONCAT": invalid identifier 因此需单独重建此函数,方法如下: 解压附件,在sqlplus中执行包里的owmctab.plb、owmaggrs.plb、owmaggrb.plb三个脚本即可, sqlplus / as sysdba ...
Oracle 11g之后取消了wm_concat函数,12C及以后版本需要使用的话,需要自定义新建这个函数,提供DDL给需要用到的兄弟们。
Oracle从12C版本开始,不支持wm_concat函数,我们可以采取的办法有使用listagg函数代替wm_concat函数,或者为了减小修改程序的工作量,可以通过手工创建wm_concat函数来解决这个问题。
vgg16_datapre_image_concat-modelsave.ipynb
是处理wm_concat中以varchar处理合并列字段过小。 clob 可以加大处理。 oracle 9I oracle 10G 必备