先编写java类:
import java.util.UUID; //jdk1.5以上
import COM.ibm.db2.app.UDF;
public class UDFUUID extends UDF{
public static String uuid(){
UUID uuid = UUID.randomUUID();
String uid = uuid.toString().replaceAll("-", "");
return uid;
}
}
然后用db2自带的jdk(比如D:\IBM\SQLLIB\java\jdk\bin)编译成class
下面有两种方法:
第一种:
直接把UDFUUID.class拷贝到D:\IBM\SQLLIB\FUNCTION下。
然后执行:
drop function uuid;
create function uuid()
returns char(32)
fenced
variant
no sql
language java
parameter style java
external name 'UDFUUID!uuid';
第二种:
把此类打成jar包(最好用db2的jdk打包),比如叫UUIDUDF.jar 并放在d盘,然后在命令行调用
Db2 call sqlj.install_jar('file:d:\customfunction.jar', 'UUIDUDFJAR')
然后执行
drop function uuid;
create function uuid()
RETURNS char(32)
LANGUAGE JAVA
PARAMETER STYLE JAVA
NOT DETERMINISTIC NO EXTERNAL ACTION NO SQL
EXTERNAL NAME 'UUIDUDFJAR:UDFUUID.uuid';
最后像使用一般函数一样使用,比如select uuid() from 表名