기술/programming2008. 12. 12. 13:16
download download
몇일을 고생했는지 모른다. 
DBA가 하면 금방할것 같은데 ㅡㅡ;

오라클에서 트리거를 등록하여 mssql로 데이터를 보내주어야 할일이 생기게 되었다.
오라클은 unix에 설치 되어 있고 mssql은 윈도우 서버에 설치 되어 있다.

원래는 pro-c로 짜려고 하였는데 proc는 라이센스를 사야 한다고 하여 방법을 찾다.
오라클에서 java클래스를 등록하고 procedure나 function에서 호출하여 사용하는 방법으로 하기로 했다.

사용 방법은
loadjava -user scott/tiger@tplanner -resolve -v SayHello.java

소스 내용중에 아래와 같이 mssql 드라이버를 로드 하여
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String url = "jdbc:sqlserver://10.17.0.1:1433;DatabaseName=Emer;";

보통 java 같으면 classpath에 sqljdbc.jar을 설정하고 javavm에서 실행 하면 되지만
오라클에서는 해당 jar파일을 스키마에 등록 해 줘야 한다.  이걸 몰라서 무지 고생했다.

등록하는 명령어는
loadjava -user scott/tiger -resolve -schema BLAKE serverObjs.jar

처럼 스키마에 등록을 해줘야 한다. (이걸 해결하려고 이틀을 인터넷 바다에 빠져 있었다 ㅡㅡ;)
그 후에 실행을 하면 권한이 없다 나올 경우

dba권한으로
exec dbms_java.grant_permission( 'BLAKE', 'SYS:java.net.SocketPermission', '10.17.0.1:1433', 'connect,resolve' )
를 실행시키후

실행시켜보면 잘 될것이다.

추후에 좀더 자세하게 적어 보자.

download download download
Posted by yachtie_leo