오라클 특수 문자 insert관련 질문~!? 0 2 4,948

by 블루오션 [SQL Query] [2012.06.21 15:56:06]


안녕하세요 오라클 사용시 특수 문자 관련 insert 질문이 있어 이렇게 글을 올립니다.

XML 파일에서  정보를 추출 해서 insert 하려고 보니 아래와 같은 오류 가 나더군요 

--- Cause: java.sql.SQLException: ORA-31061: XDB 오류: XML event error
ORA-19202: XML 처리
In line 2 of orastream:
LPX-00217: 부적합한 문자 129(U+0081) 중 오류가 발생했습니다.


그래서 원인을 찾아보니 제목에 특수 문자로 ' . '  요런 점이 들어 가있더군요 일반 마침표랑 좀 다른 거 같더군요

저 점을 없애고 다시 입력하면 제대로 들어 가더군요..

궁금한점은 원래 저 XML을 뽑아오는 DB에는 똑같이 저런 문자가 들어 가 있는대.. 새로 넣으려고 하는 DB에서는

에러를 뿜어서... ㅜㅜ 초보이다 보니 정확히 알 길이 없습니다. 고수 님들 조언좀 부탁드립니다.


p.s : 추가 합니다. 운영할 DB는 오라클 11g를 사용중입니다. 그런대 테스트 DB는 10g입니다. 10g에서는 잘 들어 갑니다.
       저런 메세지 없이...  점'.' 이 문제 같진 않내요 ㅜㅜ XML을 먼가 입력시 문제 같은대 10g에서는 아무 문제 없이되고
       11g에서는 에러라고.... ㅜㅜ
     
by 비니 [2012.06.21 17:27:25]

이상하네요. 일단 말씀하신 부분인 저 점으로 하면 정상적으로 insert는 됩니다.

!@#$%^&*() 이런 특수문자들도 들어가구요

싱글 쿼테이션인 ' 의 경우는
insert into tab (a) values('''');

이런식으로 하면 정상적으로 인서트 됩니다.

오라클 버전이 달라서 그런건지 아니면 정확이 어떤건지 알려주셔야 ..

제가 테스트 해본 오라클 버전은 9i , 11g입니다 .


by 손님 [2012.06.22 10:32:39]


제 짧은 의견으로는 캐릭터셋 문제가 아닌까 싶습니다.

조회하는 db와 입력하는 db를 자세히 적어주시면 좋겠지만

임시로 테이블을 만들어서

insert into temptemp(aa) values('.');
insert into temptemp(aa) values('.');

위와 같이 데이터를 넣었구요

SQL> select ascii(aa) from temptemp;

 ASCII(AA)
----------
41902
    46

아스키값을 조회하면 저렇게 나오는데요~

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입