Oracle
如何正確地從 Oracle 數據庫中刪除 java 源?
我的 Java 原始碼有點卡在這裡。首先我想從數據庫中完全刪除它,因為我想重新編譯它,但我不能刪除它,因為如果我執行這個命令:
drop java source "SCHEMA.JAVASOURCENAME";
我收到此錯誤:
ORA-04043: object JAVASOURCENAME does not exist
Javasource 本身俱有這種結構(這是它的 plsql/java 程式碼):
create or replace and compile java source named myjavasource as import java.io.*; import some.custom.jar.one.*; import some.custom.jar.two.*; import some.custom.jar.three.*; public class MyJavaClass { public static String myjavafunction(String connectString, String identity, String password) { ... } }
我以 DBA 身份和我的使用者執行了這個“創建或替換並編譯 java 原始碼…”命令,我不知道這是否是問題所在。
所以我的問題是,我怎樣才能刪除這個 java 源?
我的第二個問題是誰可以處理自定義罐子?我用這個命令導入了它們:
call dbms_java.loadjava('-genmissing -r -v -force -grant SCHEMA ./some.custom.jar.one.jar');
我還以 DBA 身份和我的使用者執行了此操作。如果是檢查無效對象:
SELECT * FROM user_objects WHERE object_type like '%JAVA%' AND status = 'INVALID'
作為 DBA,我看到整個世界都是無效的(很多 Java 類),但是當我以使用者身份檢查時,我只會在無效列表中獲得 javasource 和 java 類名(我認為它需要更多外部 jar,我能做到的)現在找不到)。
那麼,為什麼無效的 java 對象列表與 DBA 和使用者不同?我是否需要執行 Java 源創建和 jar 導入作為 DBA(並且僅與 DBA 一起),或者如果我想與所有模式使用者一起使用它(java 函式,使用外部 jar 的內容),還是與數據庫使用者一起執行?
非常感謝!
名稱的每個元素都必須單獨引用:
drop java source "SCHEMA"."JAVASOURCENAME";
標識符
"SCHEMA.JAVASOURCENAME"
是指目前SCHEMA.JAVASOURCENAME
模式中的 java 源名稱,例如"VORIAND"."SCHEMA.JAVASOURCENAME"