文档章节

db2版sqlj访问oracle服务器

wangxuwei
 wangxuwei
发布于 2014/10/03 22:06
字数 392
阅读 69
收藏 2

今天看到一本关于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/* 选项

四、实例

/* Emp.sqlj 源程序 

  

   sqlj -compile=false -C-classpath=$ORACLE_HOME/sqlj/lib/* Emp.sqlj 

   javac Emp.java

   java Emp

 */

import java.sql.SQLException; /* 导入所需的 Java 类 */

import sqlj.runtime.*; //Java 运行时支持

import sqlj.runtime.ref.*;

import oracle.sqlj.runtime.*; //Oracle 扩展

#sql iterator MyIter(String empno, String ename);


class Emp /* 主类 */

/* 定义 iterator 处理结果集 */

{

public static void main(String args[])

{

try {

/* 连接到 Oracle 数据库,这里使用的是 Thin 驱动程序 */

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 { /* 定义 runExample 函数获取并处理结果 */

MyIter iter; /* 声明 iterator 类的一个实例 */

#sql iter = {select EMPNO,ENAME from emp}; /* 执行嵌入的 SQL 语句,并返回结果给 iterator */


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


© 著作权归作者所有

共有 人打赏支持
wangxuwei
粉丝 25
博文 335
码字总数 117394
作品 0
杭州
其他
私信 提问
当下主流的数据库及其特点

网安之路不好走 当我自己陷入这么一个深坑的时候才发现 本人小白一枚 什么都不懂 内容也是网上copy的 只是总结一下 方便自己以后查看 当前主流的关系型数据库有 Oracle、 DB2、 PostgreSQL、...

董小洋
2017/09/16
0
0
最新的 DB2 Universal JDBC 驱动程序中的新增 JVM exit 属性

简介: 通过使用 DB2® Universal JDBC Driver 中新曾全局属性,现在您可以在使用完 SQLJ 工具(比如 db2sqljcustomize 和 db2sqljbind)时捕获 JVM exit 或 System.exit()。本文将介绍 JDBC...

IBMdW
2011/08/29
464
0
哪个 DB2 9.7 发行版适合您?

通过细节了解 DB2 9.7 for Linux, UNIX, and Windows 各个版本的独特之处。作者在本文中介绍了每个版本的规范、许可注意事项、贯穿 DB2 9.7 发行周期的历史变化,并提到客户使用 DB2 带来的趣...

红薯
2009/12/21
1K
0
IBM DB2 11.1与Oracle Database 12c对比

  【IT168 评论】市场形势 对于希望根据 IT 基础架构需求做出关键选择的企业来说,面临的选择从未如此 丰富。通过运用内部、云端和混合备选方案交付 IT 资源,企业能够根据自身需 求和现有...

IBM
2018/05/04
0
0
Oracle 中Java 对象与PL/SQL类型的映射及使用

一、Jpublisher概述 OracleJPublisher是一个用于在Java和SQL之间转换和交换结构化对象数据的工具,它还可以访问其他的数据库资源,如PL/SQL包和Java存储过程。它生成Java类来表示数据库实体,...

Andy市民
2015/10/21
964
0

没有更多内容

加载失败,请刷新页面

加载更多

Linux iptables之mangle表使用案例

mangle表的用途 mangle表的主要功能是根据规则修改数据包的一些标志位,以便其他规则或程序可以利用这种标志对数据包进行过滤或策略路由。 mangel表使用示例 示例1-策略路由1 内网的客户机通...

月下狼
今天
3
0
OSChina 周日乱弹 —— 兼职我想去学学布偶戏

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @clouddyy : 《火炎 - 女王蜂》 《火炎 - 女王蜂》 手机党少年们想听歌,请使劲儿戳(这里) @小鱼丁 :还在睡觉突然接到一个小哥哥电话“x...

小小编辑
今天
92
6
租房软件隐私保护如同虚设

近日,苏州市民赵先生向江苏新闻广播新闻热线025-84658888反映,他在“安居客”手机应用软件上浏览二手房信息,并且使用该软件自动生成的虚拟号码向当地一家中介公司进行咨询。可电话刚挂不久...

linux-tao
今天
3
0
分布式项目(五)iot-pgsql

书接上回,在Mapping server中,我们已经把数据都整理好了,现在利用postgresql存储历史数据。 iot-pgsql 构建iot-pgsql模块,这里我们写数据库为了性能考虑不在使用mybatis,换成spring jd...

lelinked
今天
6
0
一文分析java基础面试题中易出错考点

前言 这篇文章主要针对的是笔试题中出现的通过查看代码执行结果选择正确答案题材。 正式进入题目内容: 1、(单选题)下面代码的输出结果是什么? public class Base { private Strin...

一看就喷亏的小猿
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部