Я использую функцию ниже, чтобы объединить строки в одну колонку.Объединение строк в столбцы; ORA-06502: ошибка
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: numeric or value error: character string buffer too small
ORA-06512: at "xx.getconcat", line 14 (line corresponding to it value_CONCAT := value_CONCAT || ',' || cur_rec.C7;)
похоже, что оракул считает, что 1000 символов недостаточно для всех ваших 'C7', чтобы вписаться. – Hellion