誰でもこれについて私を助けてくれますか: Pl/SQL、Oracle RDBMS から 1 つの Java プログラムを呼び出したいのですが、以下は設定です
Windows 7 マシン、Java は C:\Program Files\Java\jdk1.7.0_02 にインストールされています
Java ファイルを保持するためのディレクトリを 1 つ作成しました。D:\Java には、hello.java ファイルが 1 つあります。
public class Hello
{
public static String world()
{
return "Hello world";
}
}
これは問題なくコンパイルされ、同じディレクトリに .class ファイルが生成されました。
PL/SQLを使用してこの関数を呼び出す必要があるため、作成したPL/SQL関数は次のとおりです。
create or replace
FUNCTION helloworld RETURN VARCHAR2 AS
LANGUAGE JAVA NAME 'Hello.world () return java.lang.String';
これは PL/SQL プロシージャです。
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/開発者を使用して正常にコンパイルされました。
この手順を実行しようとしたとき:
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 フォルダーに配置しましたが、それでも同じエラーが発生します。どなたか、これを見てください。