执行这条SQL语句的时候报错:ORA-01489: 字符串连接的结果过长,请怎么解决 是增加字符串链接么 5

语句:WITHDM_TBLSAS(SELECTDECODE(T.DATA_TYPE,'CHAR','''''''''||'||T.COLUMN_NAME||'||''''... 语句:
WITH DM_TBLS AS
(SELECT DECODE(T.DATA_TYPE,
'CHAR',
'''''''''||' || T.COLUMN_NAME || '||''''''''',
'VARCHAR2',
'''''''''||' || T.COLUMN_NAME || '||''''''''',
'DATE',
'''TO_DATE(''''''||to_char(' || T.COLUMN_NAME ||
',''YYYY-MM-DD HH24:MI:SS'')||'''''',''''YYYY-MM-DD HH24:MI:SS'''')''',
T.COLUMN_NAME) COLUMN_NAME,
T.COLUMN_ID,
T.TABLE_NAME,
T.OWNER,
T.COLUMN_NAME COL1,
LAG(COLUMN_ID) OVER(PARTITION BY T.TABLE_NAME ORDER BY T.COLUMN_ID) RN
FROM DBA_TAB_COLUMNS T
WHERE T.OWNER = UPPER('&V_OWNER'))
SELECT --T.TABLE_NAME,T.OWNER,
'SELECT ''INSERT INTO '||T.OWNER||'.'||T.TABLE_NAME||' (''||' ||
REPLACE(SUBSTRB(MAX(CHR(64 + LEVEL) || SYS_CONNECT_BY_PATH(T.COLUMN_NAME, '#')),
3),
'#',
'||'',''||') || '||'');'' TEXT FROM ' || T.OWNER || '.' || T.TABLE_NAME || ';' MYSQL
FROM DM_TBLS T
START WITH RN IS NULL
CONNECT BY RN = PRIOR COLUMN_ID
AND TABLE_NAME = PRIOR TABLE_NAME
GROUP BY T.OWNER,
T.TABLE_NAME;
展开
 我来答
micro0369
2017-10-23 · TA获得超过1.2万个赞
知道大有可为答主
回答量:9250
采纳率:85%
帮助的人:4069万
展开全部
应该是说,你拼接的查询结果,某些行已经超过了varchar2(4000)的最大长度。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
novia12345
2012-05-08
知道答主
回答量:14
采纳率:0%
帮助的人:5万
展开全部
这要看SQL的版本与支援厂商
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式