--java source hasn't return value
create or replace and compile java source named TestJava1 as
public class TestJavaHank1
{
public static void entry()
{
System.out.println("I am maxiaohu!");
}
}
--java source has return value
create or replace and compile java source named TestJava2 as
public class TestJavaHank2
{
public static String entry(String name)
{
return "你好:"+name;
}
}
create or replace procedure testjava as language java name 'TestJavaHank.entry()';
create or replace function testjava2(name varchar2) return varchar2
as language java name 'TestJavaHank2.entry(java.lang.String) return java.lang.String';
--在oracle中加载编译过的class文件
create or replace function testCode(name varchar2) return varchar2
as language java name 'test.getCode(java.lang.String) return java.lang.String';
--外部java类 启动enterprise manageconsole,
--在“方案”下找到“源类型”,右击”java类”,
--选择”加载java“,选择对应的class文件即可。
public class test
{
public static String getCode(String name)
{
return "123"+name;
}
}
--call procedure
begin
testjava;
end;
--command window
SET SERVEROUTPUT ON;
CALL dbms_java.set_output(2000);
exec testjava;
--call function
begin
dbms_output.put_line(testCode('maxiaohu'));
end;
create or replace and compile java source named TestJava1 as
public class TestJavaHank1
{
public static void entry()
{
System.out.println("I am maxiaohu!");
}
}
--java source has return value
create or replace and compile java source named TestJava2 as
public class TestJavaHank2
{
public static String entry(String name)
{
return "你好:"+name;
}
}
create or replace procedure testjava as language java name 'TestJavaHank.entry()';
create or replace function testjava2(name varchar2) return varchar2
as language java name 'TestJavaHank2.entry(java.lang.String) return java.lang.String';
--在oracle中加载编译过的class文件
create or replace function testCode(name varchar2) return varchar2
as language java name 'test.getCode(java.lang.String) return java.lang.String';
--外部java类 启动enterprise manageconsole,
--在“方案”下找到“源类型”,右击”java类”,
--选择”加载java“,选择对应的class文件即可。
public class test
{
public static String getCode(String name)
{
return "123"+name;
}
}
--call procedure
begin
testjava;
end;
--command window
SET SERVEROUTPUT ON;
CALL dbms_java.set_output(2000);
exec testjava;
--call function
begin
dbms_output.put_line(testCode('maxiaohu'));
end;
本文介绍如何在Oracle数据库中创建和使用Java存储过程及函数。通过具体示例展示了如何编写Java类,并将其编译为可在Oracle中调用的形式。此外还提供了加载已编译的Java类到Oracle的方法。
2100

被折叠的 条评论
为什么被折叠?



