从PL / SQL调用Java [英] Calling Java from PL/SQL
问题描述
任何人都可以帮助我:我想从Pl / SQL,Oracle RDBMS调用一个java程序,下面是设置
Can any one please help me on this: I want to call one java program from the Pl/SQL, Oracle RDBMS, the below are the settings
Windows 7机器,Java安装在
C:\Program Files \ Java \ _jdk1.7.0_02
Windows 7 machine, Java is installed on C:\Program Files\Java\jdk1.7.0_02
我创建了一个目录来保存java文件。 D:\ Java,它有一个hello.java文件。
I created one directory to keep the java files. D:\Java, it has one hello.java file in it.
public class Hello
{
public static String world()
{
return "Hello world";
}
}
此编译正常,.class文件为在同一目录中生成。
this was compiled fine, and the .class file was generated in the same directory.
由于我必须使用PL / SQL调用此函数,这里是我编写的PL / SQL函数:
Since I have to call this function using PL/SQL, here is the PL/SQL function I've written:
create or replace
FUNCTION helloworld RETURN VARCHAR2 AS
LANGUAGE JAVA NAME 'Hello.world () return java.lang.String';
这是PL / SQL程序:
and this is the PL/SQL procedure:
create or replace
PROCEDURE hellow
AS
my_string varchar2(400 char);
begin
my_string:=helloworld();
dbms_output.put_line('The value of the string is ' || my_string);
end;
使用SQL /开发人员编译函数和过程。
both the function and the procedure compiled fine using the SQL/developer.
当我尝试运行此程序时:
When I tried running this procedure:
set serveroutput on;
execute hellow;
以下错误即将来临:
Error starting at line 2 in command: execute hellow Error report: ORA-29540: class Hello does not exist ORA-06512: at "ORACLE_SOURCE.HELLOWORLD", line 1 ORA-06512: at "ORACLE_SOURCE.HELLOW", line 5 ORA-06512: at line 1
29540. 00000 - "class %s does not exist"
*Cause: Java method execution failed to find a class with the indicated name.
*Action: Correct the name or add the missing Java class.
我也将.class文件放在bin文件夹中,但仍然会出现同样的错误。
任何人都可以看看这个。
I placed the .class file in the bin folder also, but still the same error is coming. Can anyone please have a look at this.
推荐答案
你也可以直接编译和保存你的java源代码。数据库,就像存储过程一样:
You can also compile and save your java source directly in the database, like stored procedures:
CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED "Hello" AS
public class Hello
{
public static String world()
{
return "Hello world";
}
};
/
> Java created
调用此函数非常简单,不需要其他设置:
Calling this function is straightforward and doesn't need additional settings:
CREATE OR REPLACE
FUNCTION helloworld RETURN VARCHAR2 AS
LANGUAGE JAVA NAME 'Hello.world () return java.lang.String';
/
DECLARE
my_string VARCHAR2(400 CHAR);
BEGIN
my_string := helloworld();
dbms_output.put_line('The value of the string is ' || my_string);
END;
/
> The value of the string is Hello world
> PL/SQL procedure successfully completed
这篇关于从PL / SQL调用Java的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!