修改别人写的oracle数据库调用java代码,换了一个环境,死去活来之后,发现了问题所在,现纪录如下:
需求:
通过oracle调用java的方式,把oracle中的纪录插入到mysql库中
步骤如下:
1.存储过程代码如下
CREATE OR REPLACE
procedure sp_sendSMS(content VARCHAR2,sendtype VARCHAR2,receiver VARCHAR2) as language
java name 'OracleToMysql.sendSMS(java.lang.String,java.lang.String,java.lang.String)';
2.准备mysql的驱动包,并利用oracle的loadjava命令导入oracle数据库(经测试官网3.x驱动包加载后是不报错的,但是用5.x加载就会报错),进入oracle安装的bin目录,执行如下的命令:
./loadjava -u qadb/qadb@qadb -o -v -r mysql-connector-java-3.0.17-ga-bin.jar
加载mysql驱动包
3.编写你的OracleToMysql.java类,并编译,同样进入oracle安装的bin目录,执行命令:
./loadjava -u qadb/qadb@qadb -o -v -r OracleToMysql.jar
4.执行grant javauserpriv to oracle用户;
这条命令如果不执行的话,会出现无法正常调用java代码并且不报错的情况
5.执行call sp_sendSMS('1','2','3'); 调用成功!
需求:
通过oracle调用java的方式,把oracle中的纪录插入到mysql库中
步骤如下:
1.存储过程代码如下
CREATE OR REPLACE
procedure sp_sendSMS(content VARCHAR2,sendtype VARCHAR2,receiver VARCHAR2) as language
java name 'OracleToMysql.sendSMS(java.lang.String,java.lang.String,java.lang.String)';
2.准备mysql的驱动包,并利用oracle的loadjava命令导入oracle数据库(经测试官网3.x驱动包加载后是不报错的,但是用5.x加载就会报错),进入oracle安装的bin目录,执行如下的命令:
./loadjava -u qadb/qadb@qadb -o -v -r mysql-connector-java-3.0.17-ga-bin.jar
加载mysql驱动包
3.编写你的OracleToMysql.java类,并编译,同样进入oracle安装的bin目录,执行命令:
./loadjava -u qadb/qadb@qadb -o -v -r OracleToMysql.jar
4.执行grant javauserpriv to oracle用户;
这条命令如果不执行的话,会出现无法正常调用java代码并且不报错的情况
5.执行call sp_sendSMS('1','2','3'); 调用成功!