我正在使用下面的函数将行连接成单个列。
CREATE OR REPLACE FUNCTION getconcat(in_c1 IN t1.c1%TYPE)
RETURN VARCHAR2
IS
value_concat VARCHAR2(1000);
BEGIN
FOR cur_rec IN (SELECT c7
FROM t1
WHERE c1 = in_c1
ORDER BY c1, c2, c3, c4, c5)
LOOP
value_concat := value_concat || ',' || cur_rec.c7;
END LOOP;
RETURN substr(LTRIM(value_concat, ','), 1, 400);
END;
我在主存储过程中调用这个函数
SELECT
C1,
getconcat (C1) AS After_concat,
..............
FROM T1
GROUP BY C1
错误:
ORA-06502:PL/SQL:数字或值错误:字符串缓冲区太小
ORA-06512:在“xx.getconcat”,第 14 行(与其对应的行 value_CONCAT := value_CONCAT || ',' || cur_rec.C7 ;)