2011년 10월 26일 수요일

replace 함수의 인수 1에 대한 인수 데이터 형식 text이(가) 잘못되었습니다.

text 형식 replace() 사용시 오류 해결방법

UPDATE
테이블명
SET
수정할 컬럼명 = replace(수정할 컬럼명, '변경할 문자', '변경될 문자)
WHERE
수정할 컬럼명 LIKE '%변경할 문자%'

replace 함수의 인수 1에 대한 인수 데이터 형식 text이(가) 잘못되었습니다.

컬럼 형식이 text 형식일 경우 위의 오류가 발생함.
(text, ntext 형식이 오류 발생한다고함.. )


UPDATE
테이블명
SET
수정할 컬럼명 = replace ( convert ( varchar ( max ) , 수정할 컬럼명 ) , ' 변경할 문자 ' , ' 변경될 문자 ' )
WHERE
수정할 컬럼명 LIKE ' % 변경할 문자 % '

update tableName set columnName = replace(convert(varchar(max), columnName ), 'aaa', 'bbb') 
where columnName like '%aaa%'


UPDATETEXT 란 놈을 찾았으나 복잡해 ㅋㅋ 2005이후 버전에서 안된다해서 
찾아보니 convert 하니까 됨 ㅋㅋ

UPDATETEXT [BULK] { table_name.dest_column_name dest_text_ptr }
 { NULL | insert_offset }      
 { NULL | delete_length }      
 [ WITH LOG ]
 [ inserted_data | { table_name.src_column_name src_text_ptr } ]
참고 : http://msdn.microsoft.com/ko-kr/library/ms189466.aspx



댓글 없음:

댓글 쓰기