我在Oracle Database 11g企业版11.2.0.4.0版中运行此查询 - 64位生产,PL / SQL版本11.2.0.4.0 - 生产,CORE 11.2.0.4.0生产,适用于Linux的TNS:版本11.2.0.4.0 - 生产,NLSRTL版本11.2.0.4.0 - 生产
ORA-01489: result of string concatenation is too long
01489. 00000 - "result of string concatenation is too long"
*Cause: String concatenation result is more than the maximum size.
*Action: Make sure that the result is less than the maximum size.
但我有这个错误:
SET LONG 2000000
SET pagesize 50000
set longchunk 1000
set linesize 1000
即使我设置了所有这些变量:
"WID 0.12 ;"
答案 0 :(得分:1)
错误与sqlplus设置无关,而是与Oracle DB中SQL引擎中的varchar2大小限制有关。对于11g,限制为4000字节。
在处理查询时,其中一个连接会导致字符串的长度大于限制。
乍一看
的组合... LTRIM(MAX(SYS_CONNECT_BY_PATH(rights,' / ')) ...
和
... CONCAT(CONCAT(unit.unit_name, ' - '), role3_.role_name) rights ...
可能会导致问题。你拥有很多单位的权利,或者你有一个深层次的。