DECLARE @n_book nvarchar(100),
@n_isbn varchar(13)
DECLARE cur_book CURSOR
FOR
SELECT N_ISBN,
N_BOOK
FROM BOOK_MAST
OPEN cur_book
FETCH NEXT FROM cur_book INTO @n_isbn, @n_book
WHILE @@FETCH_STATUS = 0
BEGIN
update BOOK_DTL
set n_book = @n_book
where N_ISBN = @n_isbn
FETCH NEXT FROM cur_book INTO @n_isbn, @n_book
END
CLOSE cur_book
DEALLOCATE cur_book
위와 같은 쿼리를 실행시킬때,
fetch 시 @n_book에는 아랍어로 유니코드형태의 'คนจิ๋วตะลุยโลกวิทย์ ตอน ท่องดินแดนแห่งพืช (ฉบับการ์ตูน)' 가 값으로 등록되어 있고
이값을 읽어서 BOOK_DTL의 N_BOOK 필드에 UPDATE 를 하고 싶습니다.
상수와 같은 경우에는 상수앞에 N을 붙여서 N'คนจิ๋วตะลุยโลกวิทย์ ตอน ท่องดินแดนแห่งพืช (ฉบับการ์ตูน)' 이렇게 사용하면 될것같은되요
위와 같이 변수에 할당된 사항에서는 어떻게 되는지요?
위와 같이 실행시키면 BOOK_DTL 의 N_BOOK 에는 '???????????????????????????' 이렇게 저장됩니다.
물론 BOOK_MAST 의 N_BOOK 의 데이터 형태는 nvarchar(100) 이구요
마찬가지로 BOOK_DTL의 N_BOOK도 같은 데이터 형태인 nvarchar(100) 으로 되어 있습니다.
고수님들 부탁드립니다.
Comment 1
-
항해자™
2016.07.25 18:47
자료형 확실히 nvarchar 맞나요?