create or replace and compile java source named "JavaCase"
as
package com.test;
public class JavaCase {
public static String getName(String name){
return "This method returns:"+ name;
}
}
而稍微复杂的类则需要通过JDK自己编译,使用oracle提供的loadjava utility命令把已经编译完成的clas
s文件上传到数据库服务器上。对于已经上传的jar或者class文件,可以使用dropjava命令进行删除:
SQL> show errors java source JavaCase;
没有错误。
随后,创建可以调用Java方法的函数:
create or replace function JavaCase(v_name in varchar2)
return varchar2
as
language java name 'com.test.JavaCase.getName(java.lang.String) return java.lang.String';
创建完毕之后,即可调用该函数来执行对应的Java程序方法:
SQL> select JavaCase('yanh') from dual;
JAVACASE('YANH')
------------------------------------------------------------------------
This method returns:yanh
同样,使用Java程序也可以调用已经的PL/SQL程序片段;首先在PL/SQL中创建一个函数:
create or replace function searchEmp(no in number) return varchar2 is
emp_record emp%rowtype;
empInfo varchar2(600);
begin
select * into emp_record from emp where empno=no;
empInfo:='name:'||to_char(emp_record.ename)||', empno:'
||to_char(emp_record.empno)||', job:'||to_char(emp_record.job);
return(empInfo);
end searchEmp;
该函数接收一个数值类型的参数,返回通过查询语句执行的员工信息字符串。将在Java程序中调用该函数: