안녕하세요..
이번에 프로젝트를 하다 외국 현지어를 사용하는 ERP 시스템과 연동을 하게 되었습니다.
해외 시스템들이 현지어를 이용하여 사용자 정보를 저정하고 있는데요....
저희가 수행하는 프로젝트에서 해외 ERP 시스템의 정보를 조회하는 기능이 필요해서
ERP(SAP 4.7) 시스템의 DB를 직접 접근해서 조회를 하게 되었습니다.
하지만, SAP에서 사용하는 DB(Oracle 9i)에서는 NLS_CHARACTERSET이 WE8DEC으로 되어있더군요.
java를 이용하여 개발하게되어 JDBC로 SAP DB의 테이블을 조회하는데....
현지어로 적용된 문자들이 모두 깨지더군요.....
인터넷에 찾아보니 Java에서는 WE8DEC를 지원하지 않는다.
Oracle의 DB_LINK를 이용하여 UTL_RAW.CAST_TO_RAW() 함수를 이용하면 된다고하는데...
모두해봤는데 안되더군요....
jco를 이용할 수도 없고 참...답답하네요.....
조회용 테이블은 SAP의 여러 테이블 정보를 ABAP을 이용해서 gathering 후 SAP DB(Oracle 9i)에 임시 테이블을 만들어 넣고 있습니다.
(당연 ABAP을 이용하여 gathering하고 있구요.)
만든 테이블을 SAP GUI로 보면 문자가 모두 정상인데.......JDBC를 이용하여 SELECT하면 모두 깨지네요....;;
TOAD로 보면 前園 哲平 문자가 ?O?? ?N?½ 이렇게 보이더군요...
ABAP에 보니 cl_abap_conv_out_ce 이런 문자 변환 클래스가 있던데....
cl_abap_conv_out_ce 이 클래스를 이용하면 해결이 가능할까요?
ABAP도 제가 건딜 수 없으니 테스트도 못하네요......ㅜㅜ
SAP 고수님들의 많은 도움 부탁드립니다...ㅜ.ㅜ
댓글 3
-
야생이
2010.05.29 00:07
-
홍길동전
2010.05.29 02:09
SAP DB에 붙어서 정보를 가져옵니다.
데이터 처리 순서를 설명드리면....
1) ABAP으로 SAP 정보를 Gathering 해서 SAP DB에 만든 임시테이블에 저장합니다.
2) Java를 이용하여 (물론 다른 서버구요) SAP DB에 만든 임시 테이블 정보를 가져옵니다.
3) 내부 업무 처리가 되구요.....
-
야생이
2010.05.31 18:02
==> SAP DB에 바로 붙어 가져오신다는 말씀이시지요?
그렇다면 ABAPER 와 상의해서 데이터를 가져오는 RFC 를 만들어서
그 RFC를 통해 데이터를 가져오는 방법은 테스트를 해보셨는지요?
C#이나 JAVA 모두 SAP의 RFC를 부르는 방법이 있는걸로 알고있습니다.
도움이 될지 모르겠네요...
저도 외국 SAP에서 작업을 해본적이 있는데 SAP는 각 언어별 패치가 있어서
같은 SAP라도 그 언어 패치가 없으면 데이터가 깨져 보일수도 있고요
DB에는 정상적으로 박혀있는데 화면 출력시 깨지는 경우도 있더군요...
원하시는 정확한 해답은 아니지만 우선 RFC 테스트 해보시고
안돼시면 다른 고수분들의 의견을 들어봐야 할거 같습니다.
(물론 저는 초급입니다 -_-;;)
==> 궁금한 점이 있는데요
java를 통해 개발하신다고 했는데
SAP상의 데이터를 읽을때 RFC 를 통해 가져오나요?
아니면 바로 SAP DB에 붙어 가져오나요?
-_-;;해결은 못드리고 질문을 드려 죄송합니다.