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