搜索 | 会员  
PL SQL调用Java类
来源:    作者:  日期:2012-6-27  类别:其它语言  主题:Python  编辑:dezai
Oracle有提供一个叫“外部例程”来实现与其他编程语言的访问。例如可以将业务逻辑写在JAVA类中,通PL SQL进行调用,从而实现了逻辑层与数据库分离。
Oracle有提供一个叫“外部例程”来实现与其他编程语言的访问。例如可以将业务逻辑写在JAVA类中,通PL SQL进行调用,从而实现了逻辑层与数据库分离。
1.0创建java source
create or replace and compile java source named JTest as
public class JTest
{
public static String entry(String s,int i)
{
return "First "+i+" hello"+s;
}
}
1.1创建调用function
create or replace function read_string
(t in varchar2,i number)
return varchar2 is
language java
name ' JTest.entry(java.lang.String,int) return t';
1.2调用测试
SELECT read_string(' world',10) from dual
1.3 如果是已经编译好的class文件,也可通过enterprise manage console,在“方案”下找到“源类型”,右击”java类”,选择”加载java“,选择对应的class文件即可。
2.0上述例子比较简单,下面使用一个读写文件的例子来加强印象。
2.1创建JAVA SOURCE
create or replace and compile java source named JTest2 as
import java.io.*;
public class JTest2
{
public static String readString(String s)
{
return readFile(new File(s));
}
private static String readFile(File file){
int c;
String s = new String();
FileReader inFile;
try{
inFile = new FileReader(file);
while((c= inFile.read()) != -1){
s += (char)c;
}
}catch(IOException ex){
return ex.getMessage();
}
return s;
}
}
2.2创建包装器
create or replace function Hek_JTest2(s in varchar) return varchar
is LANGUAGE JAVA
NAME 'JTest2.readString(java.lang.String) return String' ;
2.3调用测试
select Hek_JTest2('c:\test.txt') from dual
 
德仔网尊重行业规范,每篇文章都注明有明确的作者和来源;德仔网的原创文章,请转载时务必注明文章作者和来源:德仔网;