У меня есть CLOB, который я пытаюсь заменить символами перевода строки \r
или \n
, если это необходимо. Это связано с тем, что я использую SQL * Plus для экспорта данных, и он экспортирует строки в исходное значение, что означает, что мой парсер, рассматривающий форматирование пробела для определения значений полей, не работает.Oracle 8i Замените символы строки в CLOB
Я попробовал команду так:
SELECT REPLACE(DESCRIPTION, chr(10), '\n') FROM ORDESCRIPTION;
Но я получаю:
ORA-00932: inconsistent datatypes
данных:
SQL> select DESCRIPTION from ORDESCRIPTION where or_id = 'FOO/BAR/OR_000002';
DESCRIPTION
--------------------------------------------------------------------------------
1) Why don't you take this and shove it
SQL> spool off
Поле фактически содержит больше данных, как показали слегка бет er database browser GUI:
1) Why don't you take this and shove it
2) This section is particularly crap
3) Do something
Там вы идете @Polppan – deed02392
Я не уверен, как заменить разрыв строки фиксированной строкой '\ n' (что SQL * Plus сделал бы; S Разработчик QL и, возможно, другие клиенты обрабатывают '\ n' как новый символ линии в любом случае). Может быть, включение значения с разделителем (например, двойные кавычки, но это должно быть то, что не существует ни в одном из значений) тоже будет работать? Также вы можете использовать ['set long'] (http://docs.oracle.com/cd/E11882_01/server.112/e16604/ch_twelve040.htm#i2699121), чтобы увеличить количество значений, отображаемых SQL * Plus. –
Кстати, то, что вы делаете, похоже [работает в 11g] (http://sqlfiddle.com/#!4/4d91b/2); У меня нет экземпляра 8i, чтобы попробовать его (возможно, не удивительно). [Заменить значения 'clob' теперь] (http://docs.oracle.com/cd/E11882_01/server.112/e26088/functions153.htm), но я не удивлюсь, если это не произошло в 8i, хотя [это было в 9i] (http://docs.oracle.com/cd/B10501_01/server.920/a96540/functions102a.htm). –