[英]Error on Oracle : ORA-29541
我試圖通過Java腳本在oracle數據庫中調用bash腳本。 為了測試它,我只是嘗試了一個基本的腳本:
#!/bin/bash
echo "It works !"
我使用的Java腳本是:
import java.lang.*;
import java.io.*;
public class UAM_TOOLS{
public static String Toto () throws IOException {
String[] unixCommand = {"/home/oz380/toto.sh"};
String pwd;
Process p = Runtime.getRuntime().exec(unixCommand);
BufferedReader input =
new BufferedReader
(new InputStreamReader(p.getInputStream()));
pwd = input.readLine();
input.close();
return pwd;
}
};
我授予了所有必須授予的權限,並在數據庫中創建了該函數:
SQL> CREATE OR REPLACE FUNCTION TOPI RETURN VARCHAR2
2 as language java
3 name 'UAM_TOOLS.Toto() return java.lang.String';
4 /
但是然后當我調用函數時:
select TOPI from dual;
要么 :
SQL> set serveroutput on;
SQL> DECLARE
2 G VARCHAR2(50);
3 BEGIN
4 G := UAM.TOPI;
5 DBMS_OUTPUT.PUT_LINE(G);
6 END;
7 /
它不起作用並顯示錯誤:
ORA-29541: class UAM.UAM_TOOLS could not be resolved
我真的不明白問題可能是什么。 如果有人這樣做,我將非常感激。
之前
創建功能
步驟,您需要在命令行上編譯您的類
$>javac UAM_TOOLS.java
或使用Eclipse之類的IDE
將會生成擴展名為.class的編譯類。 對於您的情況,它將是UAM_TOOLS.class
而且您仍然需要通過命令行將其上載到數據庫,在該數據庫上運行數據庫的主機
$>loadjava -user yourUserName/youPass@Yourdb UAM_TOOLS.class
在這兩個步驟之后,您可以繼續執行創建功能步驟。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.