Oracle 和 DB2 数据库中调用Java函数

举个例子,例如从长整型时间(毫秒数)转为java.util.Date对象:

Oracle9:

使用PL/SQL,创建Java函数:

create or replace and compile java source named long2date as
public class Long2Date
{
  public static java.lang.String entry(long dt)
  {
         java.text.DateFormat formate = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
         java.util.Date d1 = new java.util.Date(dt);
         return formate.format(d1);
  }
}


在SQLPlus中(应该在别的里边也可以,但是不明白为什么不行)执行下面的语句,创建函数
CREATE OR REPLACE FUNCTION F_LONG2DATE_JAVA (dt NUMBER) RETURN VARCHAR2 AS LANGUAGE JAVA NAME 'Long2Date.entry(long) return java.util.Date';



如果以普通用户的身份运行这些创建命令,在其它用户使用这个函数时必须加上它的owner,即如下:

select ower.F_LONG2DATE_JAVA(11111111) from dual;

如果以SYSDBA方式来创建,则可以直接使用,如:
select F_LONG2DATE_JAVA(11111111) from dual;

从表中查询:

select c.F_LONG2DATE_JAVA( table.field) from table

DB2 V9.1
(1)编写Java源文件,编译为class
(2)将这个class(如果有pakage的话,目录要按照pakage来建),放到DB2目录的function目录下
(3)创建DB2的函数,可以写成sql文件,然后用"db2 -tf <sqlfile>"的方式来建立函数
(4)如果创建出错,可以使用drop function <function name>命令来删除函数
(5)此后就可以在select查询中使用这个函数

猜你喜欢

转载自windshome.iteye.com/blog/1846931
今日推荐