5

XML データを含む 1 つの clob 列を持つテーブルがあります。clob 列の XYZ を ABC に置き換えたいとします。sqlplus を使用することは可能ですか?

4

3 に答える 3

6

試してみませんか?

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>
于 2010-06-29T10:53:40.380 に答える
5

「コラムに新しい行があります。何かアドバイスはありますか?」

改行は文字です。それらを含むテキストを修正したい場合は、それらを検索文字列に含める必要があります。これは、ASCII 値を引数として取る CHR() を使用して行うことができます。含める必要がある正確なコードは、OS によって異なります。この例は 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 テキストを格納する場合は、列に CLOB の代わりに XMLType データ型を使用する価値があります。便利な機能がたくさん付いています。

于 2010-06-29T11:54:17.033 に答える