方法です:あなたは、実行時に長さを条件に、EMPLOYEE_NAMEをconacatenating停止する場合
SELECT SUBSTR(LISTAGG(EMPLOYEE_NAME,', ') WITHIN GROUP
(ORDER BY EMPLOYEE_NAME), 1, 1000) AS NAMES FROM TB_EMPLOYEE;
、あなたがあなた自身のPLの\ SQL procを、LISTAGGのconcatsすべてのデータを書き込む必要があります。
さて、単一のクエリで作成したい場合は、これを試してください。まず第一に、すべての連結文字列プラスのための2のカルク全体の長さ「」記号:
SELECT EMPLOYEE_NAME, SUM(LENGTH(EMPLOYEE_NAME)+2) over (ORDER BY EMPLOYEE_NAME) FROM TB_EMPLOYEE;
は、このサブクエリのためLISTAGGを呼び出す:
SELECT LISTAGG(EMPLOYEE_NAME,', ') WITHIN GROUP
(ORDER BY EMPLOYEE_NAME) AS NAMES FROM (
SELECT EMPLOYEE_NAME, SUM(LENGTH(EMPLOYEE_NAME)+2) over
(ORDER BY EMPLOYEE_NAME) slide_length FROM TB_EMPLOYEE)
WHERE slide_length < 1000;
現在のクエリが(もっとして4000個の文字を得ることができますか12cで32k)、エラーが発生しましたか?あなたはミドルネームをやめたいのですか?あなたが生産している価値は、非常に役に立つとは思われません。 –