2010-06-29 6 views

답변

5

는 "나는 열의 새로운 라인을 가지고있다. 어떤 조언을?"

줄 바꿈 문자입니다. 그들을 포함하는 텍스트를 수정하려면 검색 문자열에 포함시켜야합니다. ASCII 값을 인수로 취하는 CHR()을 사용하여이를 수행 할 수 있습니다. 포함해야하는 정확한 코드는 OS에 따라 다릅니다. MS Windows에서이 예제를 실행했기 때문에 라인 피드 (ASCII = 10)와 캐리지 리턴 (ASCII = 13)을 모두 전달해야했습니다. 당신이 XML 텍스트를 저장하는 경우


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> 

는 덧붙여, 대신 CLOB의 열의로 XMLType 데이터 타입을 사용하여 가치가있을 수 있습니다. 그것은 많은 유용한 기능을 제공합니다.

+0

고마워요. :). XML 데이터 유형을 가리켜 주셔서 감사합니다. 전에 havent을 사용했지만 정의 된 try는 사용하지 않았습니다. – Hemant

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

감사합니다. :). 효과가있었습니다. 한 가지 더 의심 스럽다. 교체해야하는 경우 여러 줄 바꾸기? 내가 가지고 있다고 말해 ABCD 테이블에 있고 그것을 XYZ로 바꾸고 싶다. 시도했는데 업데이트 nnn 세트 c1 = 바꾸기 (c1, ' ABCD ', 'XYZ'); 하지만 아무 것도 업데이트하지 않았습니다. 열에 새 줄이 있습니다. 어떤 조언이 필요합니까? – Hemant

+0

잘 모르겠습니다. 잘 작동합니다. 제발, 우리에게 보여줘. –

+0

내 xml에 여러 줄을 가지고 있고 그들을 새로운 가치로 대체하고 싶습니다. 그것은 가능한가? – Hemant

0

네, 하나의 REPLACE() 함수로 가능합니다. 시도 :

update nnn set c1 = REPLACE(c1,'ABC>','XYZ>') 
관련 문제