Może ktoś mi pomóc w tej sprawie: Chcę zadzwonić jeden program java z PL/SQL, Oracle RDBMS, poniżej są ustawieniaWywoływanie Javy z PL/SQL
Windows 7 maszyna jest zainstalowane Java na C: \ Program Files \ Java \ jdk1.7.0_02
Stworzyłem jeden katalog do przechowywania plików Java. D: \ Java, zawiera jeden plik hello.java.
public class Hello
{
public static String world()
{
return "Hello world";
}
}
to zostało skompilowane w porządku, a plik .class został wygenerowany w tym samym katalogu.
Ponieważ mam zadzwonić tej funkcji przy użyciu PL/SQL, tutaj jest funkcja PL/SQL pisałem:
create or replace
FUNCTION helloworld RETURN VARCHAR2 AS
LANGUAGE JAVA NAME 'Hello.world() return java.lang.String';
i jest to procedura 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;
zarówno funkcja, jak i procedura skompilowana dobrze przy użyciu SQL/programista.
Kiedy próbowałem uruchomieniem tej procedury:
set serveroutput on;
execute hellow;
następujący błąd nadchodzi:
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.
umieściłem plik .class w folderze bin również, ale wciąż ten sam błąd nadchodzi . Czy ktoś może się temu przyjrzeć.
Z której wersji bazy danych Oracle można to zrobić, jakiekolwiek inne ograniczenia? –
@SanKrish: [Zintegrowane jvm zostało wprowadzone w Oracle 8i (1999)] (http://www.orafaq.com/wiki/Oracle_8i). Potrzebujesz uprawnienia ['CREATE PROCEDURE'] (http://docs.oracle.com/cd/E11882_01/server.112/e41084/statements_5014.htm#SQLRF01211) do utworzenia źródła java lub funkcji. –
dzięki. Mam to dobrze, ale nie mogłem uruchomić funkcji za pomocą trzeciej części kodu :( –