操作在数据库客户端进行。
主要步骤:1.编写Java类,测试的Java程序如下;
public class EmailTest {
public static void test(){
System.out.println("test only");
};
public static void main (String args[]) {
test();
}
}
2.编译Java文件;
在dos命令行编译,因数据库版本是11g release2,对应数据库内部jdk版本为1.5,因此要使用如下编译。否则在使用loadjava时会出现下面的错误:
ORA-29552: 验证警告: java.lang.UnsupportedClassVersionError
3.用loadjava命令载入Oracle数据库;
loadjava命令是在dos命令行输入而非sqlplus命令行。输入loadjava -help,提示错误“loadjava 不是内部或外部命令 ”,说明客户端没有正确安装或path环境变量没有设置好。
要使用Oracle 的loadjava命令,必须安装Oracle server 或者client,安装instant clinet是不行的。Oracle 11g Realease 2 Client下载
安装的时候选择管理员安装,不要选择安装instant client;安装成功后会自动添加path环境变量。这样就可以在dos命令行使用loadjava命令了。
使用loadjava命令若出现ORA-00942:表或视图不存在错误,则加-force参数解决,如下截图。
Error while dropping JAVA$CLASS$MD5$TABLE
ORA-00942: table or view does not exist
4.建立PLSQL调用程序(调用Java方法)即PL/SQL Wrapper;
包声明程序 PROCEDURE EMAIL_TEST;
包体程序 PROCEDURE EMAIL_TEST AS LANGUAGE JAVA
NAME 'EmailTest.test()';
5.执行PLSQL程序;