Oracle 8i 內建 JVM,支援直接以 Java 撰寫預存程序/函數,突破 PL/SQL 語言限制,可在資料庫層執行複雜運算、存取外部資源。
-- 1. 編譯並載入 Java 類別
CREATE OR REPLACE AND COMPILE JAVA SOURCE NAMED "PF" AS
package org.oraclejava.pro;
public class JavaCreateProc {
public static String test(int num) {
return num + "的平方為:" + (num * num);
}
}
-- 2. 發布為可呼叫的 SQL 函數
CREATE OR REPLACE FUNCTION PF_FUN(p_num INTEGER) RETURN VARCHAR2
AS LANGUAGE JAVA
NAME 'org.oraclejava.pro.JavaCreateProc.test(java.lang.Integer) return java.lang.String';
-- 3. SQL 中直接呼叫
SELECT PF_FUN(10) FROM dual;
-- 結果:10的平方為:100
注意:資料庫 JVM 版本通常較舊,需確認相容性;大量運算仍建議在應用層完成,避免佔用資料庫 CPU。