update - replace : 기존의 데이터 변경하기 > 기술자료 | 해피정닷컴

update - replace : 기존의 데이터 변경하기 > 기술자료

본문 바로가기

사이트 내 전체검색

update - replace : 기존의 데이터 변경하기 > 기술자료

MSSQL update - replace : 기존의 데이터 변경하기

페이지 정보


본문

특정 컬럼의 문자들을 부분적으로 변경하고 싶을때 자바, 오라클, mssql 도 replace함수를 사용합니다.
SQL 인젝션 복구에 활용하면 매우 효과적으로 대응이 가능합니다.

사용법
문법 :  replace( '대상문자열', '기존데이터', '바꿀데이터')
확인 :  select replace([칼럼명], '기존데이터', '바꿀데이터'), * from [테이블명]
적용 :  update [테이블명] set [컬럼명] = replace([컬럼명],'기존데이터','바꿀데이터')


1. 일반컬럼 : varchar, char, nvarchar, char
subject 라는 칼럼 내용중에 '변경전' 를 '변경후' 로 변경
변경될 자료 미리 확인
select replace(subject, '변경전', '변경후'), * from 테이블 where idx = '68'

위에서 변경될 자료를 미리 본후 이상없으면 아래 쿼리 실행
update 테이블 set subject= replace(subject, '변경전', '변경후') where idx = '68'


2. 날짜컬럼 : datetime
regDate 라는 datetime 컬럼에 '2012-01-17 12:22:35:66' 의 자료에서
2012-01-17 만 2008-03-21 로 변경하고자 할때

select replace(regDate, '2012-01-17', '2008-03-21'), * from 테이블 where idx = '68'

update tblBoard set regDate = replace(regDate, '2012-01-17', '2008-03-21') where idx = '68'
요렇게 하면 변경이 안됩니다.
날짜 형식은 저장되는 순서가 다르기 때문에 아래와 같이 convert 함수를 함께 사용해야 합니다.

update 테이블 set regDate = replace(convert(char(10), regDate, 112), '20120117', '20080321') where idx = '68'
update 테이블 set regDate = replace(convert(char(10), regDate, 20), '2012-01-17 13:50:45', '2008-03-21 13:50:45') where idx = '68'
update 테이블 set regDate = replace(convert(char(10), regDate, 20), '2012-11-05', '2012-07-09') where idx ='4' and idx = '17'

결과값이 아래와 같이 보여도 정상변경된것입니다.
(186 row(s) affected)


3. 텍스트컬럼 : text, ntext
update 테이블 set subject = replace(bd_content,'변경전','변경후') where idx='4'
요렇게 하면 에러가 뜹니다.
replace 함수의 인수 1에 대한 인수 데이터 형식 text이(가) 잘못되었습니다.

text 칼럼을 varchar(max) 로 임시 변경후 replace가 처리되어야 합니다.
update 테이블 set subject = replace(convert(varchar(max), subject),'변경전','변경후')  where idx='4'


관련자료
http://ellieya.tistory.com/66
http://blog.naver.com/westlee25/150078828020
http://egloos.zum.com/littletrue/v/4144042 

댓글목록

등록된 댓글이 없습니다.


Total 2,643건 1 페이지
  • RSS
기술자료 목록
2643
PHP   540  2025-02-07 09:27 ~ 2025-02-07 16:59  
2642
그누보드   471  2025-02-07 08:55 ~ 2025-02-07 17:04  
2641
그누보드   721  2024-11-26 21:14 ~ 2024-11-26 21:22  
2640
그누보드   816  2024-11-22 10:52 ~ 2024-11-22 11:03  
2639
호스팅   808  2024-11-19 14:41 ~ 2024-11-19 21:17  
2638
Linux   641  2024-11-18 15:45 ~ 2024-11-18 15:48  
2637
일반   601  2024-11-15 16:45 ~ 2024-11-15 16:46  
2636
Secure   604  2024-11-06 18:48 ~ 2024-11-06 18:50  
2635
영카트   839  2024-10-21 13:44 ~ 2024-10-21 19:42  
2634
전자결제   1713  2024-09-05 09:30  
2633
MySQL   1484  2024-03-29 14:14 ~ 2024-03-29 14:14  
2632
그누보드   1708  2024-02-23 18:40 ~ 2024-02-24 06:13  
2631
JavaScript   1815  2024-02-16 18:50 ~ 2024-02-16 20:37  
2630
Java   1807  2024-02-06 16:49  
2629
PHP   2003  2024-02-06 16:42  
2628
호스팅   1760  2024-01-29 12:54  
2627
PHP   1653  2024-01-26 11:04 ~ 2024-01-26 11:13  
2626
MySQL   1788  2024-01-08 17:37 ~ 2024-03-14 16:00  
2625
SQL   2118  2024-01-08 12:36  
2624
영카트   2118  2024-01-04 14:57  

검색

해피정닷컴 정보

회사소개 회사연혁 협력사 오시는길 서비스 이용약관 개인정보 처리방침

회사명: 해피정닷컴   대표: 정창용   전화: 070-7600-3500   팩스: 042-670-8272
주소: (34368) 대전시 대덕구 대화로 160 대전산업용재유통단지 1동 222호
개인정보보호책임자: 정창용   사업자번호: 119-05-36414
통신판매업신고: 제2024-대전대덕-0405호 [사업자등록확인]  
Copyright 2001~2025 해피정닷컴. All Rights Reserved.