1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > oracle matlab函数返回值 如何实现在Oracle中应用存储过程调用MatLab函数(2)

oracle matlab函数返回值 如何实现在Oracle中应用存储过程调用MatLab函数(2)

时间:2020-11-26 06:36:30

相关推荐

oracle matlab函数返回值 如何实现在Oracle中应用存储过程调用MatLab函数(2)

今天讲解讲解如何在oracle中 即实现 PLSQL 中调用java 方法。

当这个方式实现了,就可以结合(1)中讲的方法,将matlab实现的算法写到 oracle 数据库中,利用触发器和存储过程自动运行了。。。。

对于JAVA的方法一定要是STATIC的,参数可以有,可以没有,但是PLSQL中的FUNCTION或者PROCUDRE

要和JAVA方法保持一致。

实现方法

1,创建JAVA CLASS

a)对于简单的CLASS,我们可以直接在PLSQL里定议,如下

create or replace and compile java source named “HelloWorld”

as

package com.test;

public class HelloWorld {

public static String sayHello(String name){

System.out.println(“hello::”+ name);

return “hello::”+ name;

}

}

b)第二个方法,就是可以先创建和编译好CLASS,如:

package com.test;

public class HelloWorld {

public static String sayHello(String name){

System.out.println(“hello::”+ name);

return “hello===”+ name;

}

}

然后用oracle提供的loadjava utility把CLASS上传到ORACLE SERVER上(第三方JAR包也可以这样传上去)

可以用dropjava utility把CLASS从SERVER删除

loadjava -user username/pass@ORACLE_SERVER {dir}\HelloWorld.class

如果是远程oracle服务器:

loadjava -user jwfzxt/fz@10.18.47.200:1521:ORCL -o -v -f -r C:\Users\guest116\Oracle\Test.class;

此处的.class 文件必须使用javac辨析过得:

远程oracle服务器是否必须安装jdk?不用。并且与客户端机子jdk版本一致,oracle11G必须使用jdk1.5版本的,否则出现以下错误:

正确配置jdk之后,正确显示如下:

2)创建对就的SQL FUNCTION如:

create or replace function HelloWorld(p_name in varchar2)

return varchar2

as

language java name ‘com.test.HelloWorld.sayHello(java.lang.String) return java.lang.String’;

执行成功之后,你可以能过TOAD,发现上传的CLASS在JAVA这个目录里

除了用上面的SQL创建FUNCTION外,我们也可以通过TOAD的快捷方式,如

3)通过select HelloWorld(‘java’) from dual;看看是不是成功了

PS:oracle11g 支持的jdk版本不高,eclipse中编译的时候必须用jdk1.5等版本,eclipse3.5等。oracle如果为64位的,则jdk,eclipse也都为64bit的。

总体结果如下:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。