DB2에서 한글을 불려오면 글자가 깨져 나옵니다 . 이런식으로요 -> DVI~h1//
지금까지 알아본봐로는 db2세서는 한글입력시 특수문자가 앞뒤로 들어 간다고 하는데
이것 때문이라고 애기 들었습니다
그 특수문자가 무엇인지 알고 싶습니다..그리고 그것을 어떻게 처리해야 되는지....고수님의 답변을 부탁드립니다
두가지를 의심해 볼수 있습니다.
1. 필드타입을 확인해 보시면 character-O 라구 되어있으면 한글이 정상적으로 입출력 되고,그냥 character 타입이면 영어만 들어갑니다.
=>전 as400 db2를 사용하는데, 이경우에는 테이블을 다시 만드셔야 합니다.
2. 깨져서 들어가도 임시방편으로 일단 보이게만 하려면
=> select vargraphic(필드명) from 테이블
이렇게 하면 보이기는 할것입니다.
영문전용(A type)으로 작성한 필드에서 실제로는 한글(O type)을
사용하는 경우 몇몇가지 문제가 있으므로 한글을 사용하는 필드는 반드시
O type으로 선언한다.
[ A type 한글 문제 ]
1. Native AS/400 DFU에서 한글 입력 및 수정 불가
2. PowerBuilder data window에서 Display 않됨
3. PowerBuilder 프로그램에서 입력 및 수정 불가
[ CCSID 확인 하기 ]
1. DSPFD FILE(lib_name/obj_name)
2. 결과화면을 두 페이지 뒤로 가면 Coded character set identifier . . . . . . : CCSID 833
[ Type 변경 하기 ]
1. STRSQL 명령어로 SQL 실행
2. 해당 필드의 type을 A(English Only) -> O(Open) 으로 변경
ALTER TABEL lib_name/obj_name
ALTER COLUMN field_name SET DATA TYPE CHARACTER(length_of_field)
CCSID 933 NOT NULL WITH DEFAULT
3. 사용중인 프로그램이 Type 변경 무시 하도록 처리
CHGPF FILE(lib_name/obj_name) LVLCHK(*NO)
입력하실때 Graphic 으로 입력하셨는지...
ibm에서는 한글에 so,si를 붙여야 보입니다.
hex 값으로 보시고 한글 앞 뒤로 '0E' '0F' 를 붙이면 한글이 보일겁니다...