更新時間:2022-05-23 09:43:39 來源:動力節點 瀏覽1761次
你可以運行Java存儲過程的方式與 PL/SQL 存儲過程相同。通常,對 Java 存儲過程的調用是數據庫操作的結果,因為它通常是觸發器或 SQL DML 調用的結果。要調用 Java 存儲過程,您必須通過調用規范發布它。
在調用 Java 存儲過程之前,您必須將它們加載到 Oracle 數據庫實例中并將它們發布到 SQL。加載和發布是單獨的任務。許多僅由其他 Java 類引用的 Java 類從未發布過。
要自動加載 Java 存儲過程,您可以使用loadjava命令行實用程序。它將 Java 源文件、類和資源文件加載到系統生成的數據庫表中,然后使用 SQLCREATE JAVA {SOURCE | CLASS | RESOURCE}語句將 Java 文件加載到 Oracle 數據庫實例中。您可以從文件系統、流行的 Java IDE、Intranet 或 Internet 上傳 Java 文件。
創建、加載和調用 Java 存儲過程涉及以下步驟:
第 1 步:創建或重用 Java 類
第 2 步:加載和解析 Java 類
第 3 步:發布 Java 類
第 4 步:調用存儲過程
第 5 步:如有必要,調試存儲過程
第 1 步:創建或重用 Java 類
使用首選的 Java IDE 創建類,或重用滿足您要求的現有類。Oracle 數據庫支持許多 Java 開發工具和客戶端編程接口。例如,Oracle JVM 接受在流行的 Java IDE 中開發的程序,例如 Oracle JDeveloper、Symantec Visual Cafe 和 Borland JBuilder。
在以下示例中,您將創建public類Oscar。它有一個名為 的方法quote(),該方法返回 Oscar Wilde 的引用。
public class Oscar
{
// return a quotation from Oscar Wilde
public static String quote()
{
return "I can resist everything except temptation.";
}
}
將類保存為Oscar.java. 使用 Java 編譯器,.java在您的客戶端系統上編譯該文件,如下所示:
javac Oscar.java
編譯器輸出一個 Java 二進制文件,在本例中為Oscar.class.
第2步:負載和 R解決 Java 類
使用該loadjava實用程序,您可以將 Java 源文件、類和資源文件加載到 Oracle 數據庫實例中,并在其中存儲為 Java 模式對象。您可以loadjava從命令行或應用程序運行,并且可以指定多個選項,包括解析器。
在以下示例中,loadjava使用默認的 JDBC OCI 驅動程序連接到數據庫。您必須指定用戶名和密碼。默認情況下,Oscar該類被加載到您登錄的用戶的架構中,在本例中為scott.
$ loadjava -user scott/tiger Oscar.class
當您調用該quote()方法時,服務器會使用解析器來搜索支持類,例如String. 在這種情況下,將使用默認解析器。默認解析器首先搜索當前模式,然后搜索SYS所有核心 Java 類庫所在的模式。如有必要,您可以指定不同的解析器。
第 3 步:發布 Java 類
對于可以從 SQL 調用的每個 Java 方法,您必須編寫一個調用規范,該規范將方法的頂級入口點暴露給 Oracle 數據庫。通常,只需要幾個調用規范。如果愿意,您可以使用 Oracle JDeveloper 生成這些調用規范。
在以下示例中,您從 SQL*Plus 連接到數據庫,然后為方法定義頂級調用規范quote():
SQL> 連接 scott/tiger
SQL> CREATE FUNCTION oscar_quote RETURN VARCHAR2
2 AS LANGUAGE JAVA
3 NAME 'Oscar.quote() return java.lang.String';
第 4 步:調用存儲過程
您可以從 SQL DML 語句、PL/SQL 塊和 PL/SQL 子程序調用 Java 存儲過程。使用 SQLCALL語句,您還可以從頂層調用存儲過程,例如從 SQL*Plus。存儲過程也可以從數據庫觸發器中調用。
在以下示例中,您聲明了一個 SQL*Plus 主變量:
SQL> VARIABLE 引用 VARCHAR2(50);
然后,調用該函數oscar_quote(),如下所示:
SQL> CALL oscar_quote() INTO :theQuote;
SQL> PRINT theQuote;
THEQUOTE
第 5 步:調試存儲過程,如果需要的話
調試存儲過程是強制性的。您的 Java 存儲過程在位于單獨計算機上的服務器上遠程運行。但是,JDK 調試器jdb無法調試遠程 Java 程序。因此,在將存儲過程加載到數據庫之前,您需要在客戶端計算機上對其進行調試。
以上就是關于“Java存儲過程的步驟”介紹,大家如果想了解更多相關知識,不妨來關注一下動力節點的Java在線學習,里面的課程內容從入門到精通,細致全面,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助哦。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習