|
DB2 Federation을 사용하면 간단하겠지만 비싸서 잘 안사죠..
간단한 연동의 경우 java를 이용하면 될 것 같습니다.
허접하지만 쉽게 작성해 봤습니다.
1. ora_db2.java (오라클 데이터 값을 리턴하는 java 프로그램. 소스 아래) 컴파일
/home/db2inst1/java에 저장되어 있다고 가정.
2. sqllib/function에 연결 :
cd ~/sqllib/function; ln -s /home/db2inst1/java/ora_db2.class
3. db2 9.7에 함수등록
create or replace function ora_db2(v_parm1 varchar(20))
language java
parameter style java
external name 'ora_db2.test(v_parm1)'
returns varchar(20);
4. db2 9.7에서 사용
db2 "select ora_db2(4) from dual"
ora_db2.java
---------------------
public class ora_db2
{
//public static void main (String args[]) throws Exception
public static String test(String v_parm1) throws Exception
{
String v_ret="";
java.sql.Connection conn;
java.sql.PreparedStatement pstmt;
java.sql.ResultSet result;
Class.forName("oracle.jdbc.OracleDriver").newInstance();
conn = java.sql.DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORATST1","scott","tiger");
pstmt = conn.prepareStatement("select * from a where i=?");
pstmt.setString(1,v_parm1);
result = pstmt.executeQuery();
while (result.next())
{
v_ret = result.getString(1);
}
conn.close();
return v_ret;
}
}
-----------------------------------------------
 |
KDUG |
|