db2版sqlj访问oracle服务器

Ubuntu上使用SQLJ
本文介绍如何在Ubuntu系统上利用已有的Oracle精简客户端和IBM-db2的SQLJ组件实现SQLJ程序的编译和运行。通过配置环境变量并进行简单的代码示例,展示了查询Oracle数据库的具体步骤。
今天看到一本关于oracle sqlj的书于是想试一试。但我的ubuntu14只安装了oracle的精简客户端。
没有sqlj,于是想到用IBM-db2的sqlj,居然成功了。

一、从oracle服务器端把runtime12ee.jar  runtime12.jar  translator.jar拷入相应目录
我的是放在$ORACLE_HOME/sqlj/lib,其中的$ORACLE_HOME是精简客户端的安装目录
/opt/ora11g/instantclient_11_2/
二、把$ORACLE_HOME/sqlj/lib/*加入到CLASSPATH中
三、用sqlj程序转换时需要加上-compile=false -C-classpath=$ORACLE_HOME/sqlj/lib/* 选项
四、实例
import sqlj.runtime.*; //Java 运行时支持
import sqlj.runtime.ref.*;
import oracle.sqlj.runtime.*; //Oracle 扩展
#sql iterator MyIter(String empno, String ename);

class Emp
{
public static void main(String args[])
{
try {
Oracle.connect("jdbc:oracle:thin:@192.168.0.110:1521:orcl", "scott", "tiger");
Emp st = new Emp();
st.runExample();
} catch(SQLException e) {
System.err.println("Error running the example:" + e);
} finally {
try {
Oracle.close();
} catch(SQLException e) { }
}
}
void runExample() throws SQLException {
MyIter iter;
#sql iter = {select EMPNO,ENAME from emp};

while(iter.next()) {
System.out.print("EMPNO = " + iter.empno()+"      ");
System.out.println("ENAME = " + iter.ename());
}
}
}

运行:

$sqlj -compile=false -C-classpath=$ORACLE_HOME/sqlj/lib/* Emp.sqlj
$ javac Emp.java 
$ java Emp
EMPNO = 7369      ENAME = SMITH
EMPNO = 7499      ENAME = ALLEN
EMPNO = 7521      ENAME = WARD
EMPNO = 7566      ENAME = JONES
EMPNO = 7654      ENAME = MARTIN
EMPNO = 7698      ENAME = BLAKE
EMPNO = 7782      ENAME = CLARK
EMPNO = 7788      ENAME = SCOTT
EMPNO = 7839      ENAME = KING
EMPNO = 7844      ENAME = TURNER
EMPNO = 7876      ENAME = ADAMS
EMPNO = 7900      ENAME = JAMES
EMPNO = 7902      ENAME = FORD
EMPNO = 7934      ENAME = MILLER

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值