text 또는 ntext 데이터 유형에 대한 REPLACE의 대안
datatable.column의 데이터를 업데이트 / 교체해야합니다. 테이블에는이라는 필드가 Content
있습니다. REPLACE
기능을 사용하고 있습니다. 열 데이터 유형이 NTEXT
이므로 SQL Server에서는 REPLACE
함수 를 사용할 수 없습니다 .
이 데이터베이스는 타사 소프트웨어 테이블이므로 데이터 유형을 변경할 수 없습니다. 데이터 유형을 변경하면 응용 프로그램이 실패합니다.
UPDATE [CMS_DB_test].[dbo].[cms_HtmlText]
SET Content = REPLACE(Content,'ABC','DEF')
WHERE Content LIKE '%ABC%'
이 오류가 발생합니다.
메시지 8116, 수준 16, 상태 1, 줄 1 인수 데이터 형식 ntext가 바꾸기 함수의 인수 1에 대해 잘못되었습니다.
- T-SQL로이 문제를 해결할 수 있습니까? 누군가 읽고 반복하는 방법에 대한 예가 있습니까?
- 이것은 일회성 변환이므로 다른 유형으로 변경할 수는 있지만 데이터가 엉망이 될 것 같습니다.
기본 키 필드가 있습니다. 이름 : ID-정수-ID입니다 .... 그래서 이것도 생각해야합니다. ID를 N 임시로 설정할 수 있습니다.
REPLACE 기능을 달성하는 방법에 대해 조언 해주십시오.
대략. 3000 개의 문을 새 솔루션으로 업데이트해야합니다.
경우 데이터가 4000 자 오버 플로우하지 않습니다 그리고 당신은 SQL Server 2000 또는 2000 8 또는 SQL 서버의 호환성 수준에있어 :
UPDATE [CMS_DB_test].[dbo].[cms_HtmlText]
SET Content = CAST(REPLACE(CAST(Content as NVarchar(4000)),'ABC','DEF') AS NText)
WHERE Content LIKE '%ABC%'
SQL Server 2005+의 경우 :
UPDATE [CMS_DB_test].[dbo].[cms_HtmlText]
SET Content = CAST(REPLACE(CAST(Content as NVarchar(MAX)),'ABC','DEF') AS NText)
WHERE Content LIKE '%ABC%'
SQL Server 2000을 가정하면 다음 StackOverflow 질문 이 문제를 해결해야합니다.
SQL Server 2005/2008을 사용하는 경우 다음 코드를 사용할 수 있습니다 ( 여기 에서 가져옴 ).
select cast(replace(cast(myntext as nvarchar(max)),'find','replace') as ntext)
from myntexttable
참고 URL : https://stackoverflow.com/questions/4341613/alternatives-to-replace-on-a-text-or-ntext-datatype
'programing tip' 카테고리의 다른 글
iOS는 입력에 둥근 모서리와 눈부심을 강제합니다. (0) | 2020.09.03 |
---|---|
Angular 2 : 태그를 사용자에게 표시하지 않고 JSON 응답에서 HTML을 어떻게 렌더링합니까? (0) | 2020.09.03 |
시뮬레이터에서 앱을 실행할 수 없음 : 실행 중 오류가 발생했습니다 (도메인 = LaunchServicesError, 코드 = 0). (0) | 2020.09.02 |
한 번에 여러 주석을 표시하도록 MKMapView 배치 (0) | 2020.09.02 |
Java를 사용하여 파일이있는 폴더를 삭제하는 방법 (0) | 2020.09.02 |