此问题已在此处有答案:
LISTAGG function: "result of string concatenation is too long"(14个答案)
11小时前关闭
我想从sys表ALL_SOURCE中获取所有函数和过程的DDL。下面是代码:
SELECT OWNER,
NAME,
TYPE,
LISTAGG (TEXT, '') WITHIN GROUP (ORDER BY LINE) TEXT
FROM ALL_SOURCE WHERE OWNER = 'ITMS'
GROUP BY OWNER,
NAME,
TYPE
但是当脚本大于4000个字符时,我得到了错误:ORA-01489:字符串串联的结果太长
帮帮我
谢谢
1条答案
按热度按时间bxjv4tth1#
显然,这是行不通的。但是-也许你应该重新考虑一下你在做什么-而不是 * 聚合 * 过程的文本,使用旨在产生DDL的工具:
DBMS_METADATA.GET_DDL
例如:
您可以修改它,使它(查询)获取所有过程和函数,例如。
或者做任何你想做的事