--问题
-- ORA-06502: PL/SQL: 数字或值错误 : character string buffer too small
--ORA-06512: 在 "WMSYS.WM_CONCAT_IMPL", line 30
--错误 WMSYS.WM_CONCAT()
SELECT HEAD.BOOKING_HEAD_ID,
(SELECT REPLACE
(
WMSYS.WM_CONCAT( CONTAINER.CONTAINER_NO --这里改用 F_LINK_LOB(.) 处理
|| '/'
|| SEAL_NO_1
|| '/'
|| CONTAINER_TYPE
|| '/'
|| DECODE (CONTAINER_STATUS_I, 4, 'E', 7, 'L', 'F')),
',',
CHR (10)
)
FROM DOC_BK_CONTAINER CONTAINER
WHERE HEAD.BOOKING_HEAD_ID = CONTAINER.BOOKING_HEAD_ID)
AS CONTAINERS_BOX_INFO
FROM DOC_BOOKING_HEAD HEAD
WHERE HEAD.BOOKING_HEAD_ID = '2c2881d62e50c1c1012e5573b63e54c2'
ORDER BY HEAD.BL_NO;
--方法 F_LINK_LOB
CREATE OR REPLACE FUNCTION F_LINK_LOB (P_STR VARCHAR2)
RETURN CLOB
AGGREGATE USING T_LINK_LOB;
--类型T_LINK_LOB
CREATE OR REPLACE TYPE "T_LINK_LOB"
AS
OBJECT
(
V_LOB CLOB,
STATIC FUNCTION ODCIAGGREGATEINITIALIZE (SCTX IN OUT NOCOPY T_LINK_LOB)
RETURN NUMBER,
MEMBER FUNCTION ODCIAGGREGATEITERATE (SELF IN OUT NOCOPY T_LINK_LOB, VALUE IN VARCHAR2)
RETURN NUMBER,
MEMBER FUNCTION ODCIAGGREGATETERMINATE
(
SELF IN T_LINK_LOB,
RETURNVALUE OUT NOCOPY CLOB,
FLAGS IN NUMBER
)
RETURN NUMBER,
MEMBER FUNCTION ODCIAGGREGATEMERGE (SELF IN OUT NOCOPY T_LINK_LOB, CTX2 IN T_LINK_LOB)
RETURN NUMBER
)
CREATE OR REPLACE TYPE BODY T_LINK_LOB
IS
STATIC FUNCTION ODCIAGGREGATEINITIALIZE (SCTX IN OUT NOCOPY T_LINK_LOB)
RETURN NUMBER
IS
BEGIN
SCTX := T_LINK_LOB (NULL);
DBMS_LOB.CREATETEMPORARY (SCTX.V_LOB, TRUE, DBMS_LOB.SESSION);
DBMS_LOB.OPEN (SCTX.V_LOB, DBMS_LOB.LOB_READWRITE);
RETURN ODCICONST.SUCCESS;
END;
MEMBER FUNCTION ODCIAGGREGATEITERATE (SELF IN OUT NOCOPY T_LINK_LOB, VALUE IN VARCHAR2)
RETURN NUMBER
IS
BEGIN
DBMS_LOB.WRITEAPPEND (SELF.V_LOB, LENGTH (VALUE) + 1, VALUE || ',');
RETURN ODCICONST.SUCCESS;
END;
MEMBER FUNCTION ODCIAGGREGATETERMINATE
(
SELF IN T_LINK_LOB,
RETURNVALUE OUT NOCOPY CLOB,
FLAGS IN NUMBER
)
RETURN NUMBER
IS
BEGIN
DBMS_LOB.CREATETEMPORARY (RETURNVALUE, TRUE, DBMS_LOB.CALL);
DBMS_LOB.COPY (RETURNVALUE, SELF.V_LOB, DBMS_LOB.GETLENGTH (SELF.V_LOB) - 1);
RETURN ODCICONST.SUCCESS;
END;
MEMBER FUNCTION ODCIAGGREGATEMERGE (SELF IN OUT NOCOPY T_LINK_LOB, CTX2 IN T_LINK_LOB)
RETURN NUMBER
IS
BEGIN
NULL;
RETURN ODCICONST.SUCCESS;
END;
END;
分享到:
相关推荐
Oracle函数.chm
VB 调用 Oracle 函数返回数据集的例子 VB 调用 Oracle 函数返回数据集的例子 VB 调用 Oracle 函数返回数据集的例子
ORACLE函数.pdfORACLE函数ORACLE函数.pdf
Oracle函数.txt Oracle函数.txt Oracle函数.txt
oracle函数大全.chm oracle函数大全.chm
oracle 函数大全oracle 函数大全oracle 函数大全oracle 函数大全oracle 函数大全oracle 函数大全oracle 函数大全
包含hive和oracle的常用函数对比关系表,可以用于查询hive函数转换成oracle函数,或者oracle函数转换hive函数之间的相互转换。
oracle函数介绍 1 著名函数之单值函数 pdf oracle函数介绍 2 非著名函数之单值函数 pdf oracle函数介绍 3 著名函数之聚合函数 pdf oracle函数介绍 4 非著名函数之聚合函数 pdf oracle函数介绍 5 分析函数简述 ...
oracle函数大全 oracle函数大全 oracle函数大全
Oracle自定义函数返回一张表。主要用于生成一张等时间间隔的表数据。
oracle函数大全.doc oracle函数大全.doc oracle函数大全.doc oracle函数大全.doc
oracle 函数大全 参考函数 手册 速查 chm格式。。。
postgresql 兼容 oracle 函数, postgresql 兼容 oracle 函数,postgresql 兼容 oracle 函数, postgresql 兼容 oracle 函数
oracle函数大全,oracle函数大全,oracle函数大全,oracle函数大全,
自已以前学习的时候收集的! 传上来和大家分享
oracle函数大全.pdf oracle函数大全.pdf
ORACLE函数大全
用JDBC操作Oracle的存储过程返回值
Ora9iSQL参考手册 oracle函数大全 分类显示 Oracle函数大全 Oracle函数手册 ORACLE九阴真经 oracle知识库 SQLCodes Oracle错误代码与消息解释 SQL语言参考大全