当前位置:首页 > Oracle > 正文内容

Oracle中使用调用java功能

管理员7年前 (2013-06-14)Oracle156

PLSQL可以完成很多的工作,但是在处理一些逻辑时,高级语言的一些特性,还是很有优势的。

如果我们有一些现成的 java 方法,不想也没有必要再用 PLSQL再写一遍时,可以直接在SQL或PLSQL调用他们,这里提供一个示例:

1、先定义一个 java source ,包含了三个方法,方法名要用 static 来修饰一下。

一个是返回一个固定的字符串。

一个返回传入字符串的长度。

一个返回传入字符串包含的子串的个数。

create or replace and compile java source
named test
as
public class test {
    // 不带参数
    public static String getString() {
         return "This is a String";
    }
    // 带参数
    public static Integer getLen(String name){
         return name.length();
    }
    // 带参数
    public static Integer getCount(String name){
         String[] ids= name.split(",");
         return ids.length;
    }
}
/

2、根据三个方法,来定义三个函数,这个函数是数据库的函数

create or replace function fn1
return varchar2
as language java 
name 'test.getString() return java.lang.String';
/

create or replace function fn2(a varchar)
return number
as language java
name 'test.getLen(java.lang.String) return java.lang.Integer';
/

create or replace function fn3(a varchar)
return number
as language java
name 'test.getCount(java.lang.String) return java.lang.Integer';
/

3、调用一下,看下效果

SQL> select fn1 from dual;

FN1
----------------------------------------------------
This is a String

SQL> select fn2('11111') from dual ;

FN2('11111')
------------
           5

SQL> select fn3('c,c,c,c,c,c,c,c,d') from dual;

FN3('C,C,C,C,C,C,C,C,D')
------------------------
                       9
打赏 支付宝打赏 微信打赏
    扫描二维码至手机访问

    扫描二维码推送至手机访问。

    版权声明:本文由卖水果的net发布,如需转载请注明出处。

    转载请注明出处:http://www.msgde.net/oracle/oracle_use_java.html

    分享给朋友:

    发表评论

    访客

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。