Действительно ли возможно обновить данные в CLOB использование SQL?

У меня есть таблица, имеющая один clob столбец, который имеет данные XML в ней. Скажите, что я хочу заменить XYZ ABC в clob столбце. Это - возможное использование sqlplus?

5
задан APC 16 October 2014 в 21:13
поделиться

2 ответа

"У меня новая строка в столбце. Любой advice? "

Новые строки - это символы; если вы хотите изменить текст, который их содержит, вам нужно включить их в строку поиска. Вы можете сделать это с помощью функции CHR (), которая принимает значение ASCII в качестве аргумента. Точные коды вам необходимо включить различные параметры в зависимости от ОС. Поскольку я запускал этот пример в MS Windows, мне нужно было передать как перевод строки (ASCII = 10), так и возврат каретки (ASCII = 13).

SQL> select * from t42
  2  /

TXT
--------------------------------------------------------------------------------
<ABC> ABCD
  </ABC>


SQL>  update t42 set txt=replace(txt,'ABCD'||chr(10)||chr(13), 'APC woz here')
  2  /

1 row updated.

SQL> select * from t42
  2  /

TXT
--------------------------------------------------------------------------------
<ABC> APC woz here </ABC>

SQL>

Между прочим, если вы храните текст XML, это может целесообразно использовать тип данных XMLType для столбца вместо CLOB. Он обладает множеством полезных функций.

5
ответ дан 13 December 2019 в 19:20
поделиться

Почему бы не попробовать?

SQL> create table nnn(c1 clob);

Table created.

SQL> insert into nnn values ('text ABC end');

1 row created.

SQL> select * from nnn;

C1
-------------------------------------------------
text ABC end

SQL> update nnn set c1=replace(c1,'ABC','XYZ');

1 row updated.

SQL> select * from nnn;

C1
-------------------------------------------------
text XYZ end

SQL>
6
ответ дан 13 December 2019 в 19:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: