2016-07-22 45 views
0

我正在使用Oracle SQL Developer中的LONG列,此列包含需要删除的回车符。使用后,我发现了错误:无法使用REPLACE函数删除LONG数据类型列中的回车符

REPLACE (col_name , CHR(13) , '')是:

ORA-00932:不一致的数据类型:预期CHAR了LONG 00932. 00000 - “不一致的数据类型:有望%S得了%的”

有没有解决方法?

回答或建议将不胜感激!

回答

0

对于LONG数据类型列,您几乎不能执行任何操作。您应该将它们转换为CLOB。你只是找到了一个原因。

https://docs.oracle.com/cd/B28359_01/appdev.111/b28393/adlob_long_lob.htm

有一个to_lob()函数LONG转换为CLOB,但只能在一个insert语句的select部分被使用(即,它只能被用于将LONG列转换为CLOB列)。转换后,在生成的CLOB上使用文本函数应该没有问题。你可能也想看看具体CLOB函数在DBMS_LOB包:

http://docs.oracle.com/cd/E11882_01/appdev.112/e40758/d_lob.htm#ARPLS600

+0

非常感谢!我可以使用插入语句将其转换为CLOB,然后使用TO_LOB函数。 –

+0

酷!现在真正的问题是:你是否经常使用LONG值,或者这是一件非常罕见的事情?如果您需要经常与他们合作,您可能需要转换为CLOB(因为Oracle在过去的20年中一直在催促我们),或者影响那些有权做出这一决定的人。寻找与LONG一起工作的变通办法浪费了更多的时间,资源和金钱,而不是一劳永逸地转变成LONG的过程。祝你好运! – mathguy

相关问题