2010-06-29 16 views

Répondre

5

"i ont nouvelle ligne dans la colonne. des conseils?"

Les nouvelles lignes sont des caractères; Si vous voulez modifier un texte qui les contient, vous devez les inclure dans la chaîne de recherche. Vous pouvez le faire en utilisant le CHR() qui prend une valeur ASCII comme argument. Les codes précis que vous devez inclure varient en fonction du système d'exploitation. Parce que j'ai exécuté cet exemple sur MS Windows, j'ai dû passer à la fois le saut de ligne (ASCII = 10) et le retour chariot (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> 

Soit dit en passant, si vous stockez texte XML il pourrait être utile en utilisant le type de données XMLType pour la colonne au lieu de CLOB. Il vient avec beaucoup de fonctionnalités utiles.

+0

Merci qui a fonctionné. :). merci de pointer le type de données XML que je n'ai pas utilisé avant mais défini try. – Hemant

6

Pourquoi ne pas l'essayer?

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> 
+0

merci :). ça a marché. un plus de doute. si je dois remplacer remplacer plusieurs lignes? disons que j'ai ABCD dans la table et je veux le remplacer par XYZ. J'ai essayé mise à jour nnn ensemble c1 = remplacer (c1, ' ABCD ', 'XYZ'); mais il n'a rien mis à jour. J'ai une nouvelle ligne dans la colonne. un conseil? – Hemant

+0

Je ne suis pas sûr de comprendre, cela fonctionne très bien. S'il vous plaît, montrez-nous votre essai. –

+0

dans mon xml j'ai plusieurs lignes et je veux les remplacer par une nouvelle valeur. c'est possible? – Hemant

0

Oui, c'est possible avec une fonction REPLACE(). Essayez:

update nnn set c1 = REPLACE(c1,'ABC>','XYZ>')