本文主要内容
经常与Oracle Database打交道,难免会遇到这样一些需求,使用PL/SQL处理起来不是那么方便,而用Java处理起来特别容易。本文主要介绍了Oracle如何调用Java来完成一些特别需求,例如:扩展PL/SQL等。
基础知识
这一节主要是介绍如何把Java源码文件打包成JAR包。熟悉这一步的同志可以直接跳过本节。
源文件内容
/**
* FileName: Author.java
* Date: 2014-10-26
* Version: 1.0
* /
public class Author {
private String name;
public Author(String name) {
this.name = name;
}
public String getAuthorName() {
return this.name;
}
}
编译Java文件
> javac Author.java
打包成JAR包
> jar cvf AuthorDemo.jar Author.class
将JAR包导入到Oracle数据库
> loadjava -r -f -o -user username/password@sid AuthorDemo.jar
成功执行完该命令后,在数据库sqlplus执行一下SQL应该可以看到如下图结果。
> select * from user_java_classes;
调用JAR中的方法
创建java source
create or replace and compile java source named demo as
import java.lang.String;
public class SomeAuthor
{
public static String getName()
{
return new Author("John").getAuthorName();
}
}
封装成PL/SQL函数
create or replace function getAuthorName return varchar2 as
language java name 'SomeAuthor.getName() return java.lang.String';
调用过程
select getAuthorName from dual;