我尝试对可能长度大于4000的长查询运行replace Function,该函数返回错误
ORA-01704:字符串文字太长。
在Oracle SQL中还有其他替代方法可以使用替换功能替换字符吗?
查询:
Select REPLACE('VERY_LONG_QUERY','''','''''') FROM DUAL;
答案 0 :(得分:0)
我不确定它是否适用于11g或您的Oracle版本,但这对我适用于12c(尝试从Sql developer最新版本)。
要使用BIND
变量来分配长字符串,然后运行SQL查询
VARIABLE VERY_LONG_QUERY VARCHAR2(32767);
EXEC :VERY_LONG_QUERY := 'select * from something...........greater than 4000';
Select REPLACE(:VERY_LONG_QUERY,'''','''''') FROM DUAL;
类似地,如果我在PL / SQL中这样做,它应该可以正常工作。