替换功能对ORACLE / PLSQL中的长查询不起作用?

时间:2018-10-01 05:22:55

标签: sql oracle replace

我尝试对可能长度大于4000的长查询运行replace Function,该函数返回错误

  

ORA-01704:字符串文字太长。

在Oracle SQL中还有其他替代方法可以使用替换功能替换字符吗?

查询:

Select REPLACE('VERY_LONG_QUERY','''','''''') FROM DUAL;

1 个答案:

答案 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中这样做,它应该可以正常工作。