db2版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/* 选项

四、实例

/* 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

时间: 2024-08-28 19:15:45

db2版sqlj访问oracle服务器的相关文章

sql server中使用链接服务器访问oracle数据库

一.  安装配置oracle客户端 要访问orcale数据,必须在访问的客户端机器上安装oracle客户端. Orcale有两种形式的客户端: l         完整的客户端 包括访问服务器端数据库的基本Oracle 的 Microsoft OLE DB 访问接口需要 Oracle Client Software Support File以及 SQL*Net .还包括用于配置客户端设置的工具.sqlplus.企业管理器等一系列的工具. l         立即客户端(instant clien

Apache2.4.x版wampserver本地php服务器如何让外网访问及启用.htaccess

http://www.jb51.net/article/61193.htm ———————————————————————————————————————————— 这篇文章主要介绍了Apache2.4.x版wampserver本地php服务器如何让外网访问及启用.htaccess,需要的朋友可以参考下 Apache 从2.2升级到 Apache2.4.x 后配置文件 httpd.conf 的设置方法有了大变化,以前是将 deny from all 全部改成 Allow from all 实现外

SQL Server 通过链接服务器访问Oracle

数据库:SqlServer2005 .Oracle 11gR2 系统环境:windows Server 2008R2 32位. 最近在做项目时,需要通过sql的链接服务器访问Oracle.以前弄过sql访问sql,感觉挺简单的,以为访问Oracle也差不多,实际做过后才发现存在很多差距. 步骤: 1.SQL Server端Windows需装对应版本的Oracle客户端.(我安装Oracle9i客户端后通过PL/SQL访问Oracle11gR2,没有问题,但是通过链接服务器访问就无法查询) 2.O

C# 访问Oracle数据库

关于C#访问Oracle数据库的时候,必须安装Oracle客户端,而且必须安装和服务器相同的版本,否则会出现各种版本的不兼容问题,所以很多时候我们并不需要去安装完整的Oracle客户端,为了方便部署连接oracle的.net程序,oracle官方提供了一个简化版的client,即instant client.通过instant client和ODP.net中的Oracle.DataAccess.dll,我们就可以方便的部署.net应用程序或者站点. 1 下载和服务器对应的instant clie

IIS网站程序无法访问oracle

系统环境: win7 + iis7 asp.net应用程序访问oracle数据库时,报ORA-12560: TNS: 协议适配器错误. 使用c/s程序访问数据库没有问题,plsql也没问题,说明oracle驱动安装没有问题. 使用visual studio开发服务器没有问题,因此确定是iis设置或权限的问题. 接着,按常规做法,将oralce安装目录授权给network service,以及iis中匿名用户所指定的用户, 结果还是一样报错: 最后,更改应用程序池的用户标识为local syste

运行于64操作系统上的C#客户端通过WCF访问Oracle数据库不兼容问题

运行平台: Windows 7  64位操作系统 运行环境: IIS 7 编程语言:C# 数据库: 32位的Oracle 10g 运行原因:64位操作系统C#客户端程序通过WCF访问ORACLE数据库 结果产生异常:System.InvalidOperationException: 未在本地计算机上注册“MSDAORA”提供程序 客户端程序在本地运行能够正常访问Oracle数据库数据, 但通过WCF连接不上Oracle数据库, 一开始以为是"MSDAORA"驱动没装上,通过检查,MSD

客户端如何访问访问oracle 12c 64位的数据库

服务器A安装的oracle 12c 64位的数据库,机器B如何访问oracle数据库. 准备: 1.下载instantclient-basic-nt-12.1.0.2.0.zip,下载地址:http://pan.baidu.com/s/1c04lzSO 2.下载plsql,下载地址:http://pan.baidu.com/s/1bnHKDOj 安装步骤 1.安装orcle客户端 将下载的 instantclient-basic-nt-12.1.0.2.0.zip解压到机器B中非中文路径的目录下

从sqlserver通过linkserver访问Oracle

完整图文版:http://note.youdao.com/share/?id=e0d195e84962dbf4997925bc6e1b929b&type=note 1.在windows操作系统上,安装Oracle Client. 这里可以到官网去下载客户端. 这里可以参考我的另外一篇文章:http://blog.csdn.net/whiteoldbig/article/details/21718519 2.设置tnsnames.ora erpdb=(description =(address =

Debian下无root权限使用Python访问Oracle

这篇文章的起因是,在公司的服务器上没有root权限,但是需要使用 Python 访问 Oracle,而不管是使用 pip 安装组件还是安装 Oracle 的 client,都需要相应权限.本文即解决该问题. 使用 virtualenv 使用系统自带 Python 和 pip 安装组件时,默认会安装到系统目录下,需要 root 权限才能执行写操作. 不管是从资源隔离的角度,还是从绕过 root 的角度,你都需要一套顺手的 Python 虚拟环境工具:virtualenv. 去求运维哥哥帮忙安装 v