[英]Creating function in an Oracle database using java directly
I understand that it is possible to create java function in an oracle database using the command CREATE JAVA - look here . 我一直在閱讀很多關於如何做到這一點的內容,但似乎我讀的越多,要讀的東西就越多。
我想做的很簡單。 由於我已經對 Java 非常熟悉,我不想通過學習 PL/SQL 來 go 尤其是我正在從事的項目相當小。 我也不想過多地使用此功能,我想做的只是如下所示:
1)在連接到數據庫時聲明一個 function,如:
CREATE JAVA AS
public class Example{
public static bool returnTrue() {
return true;
}
}
2)然后在連接時調用 function,如下所示:
SELECT Example.returnTrue() FROM DUAL;
這可能嗎?
如何?
不是直接可能的,您需要另一個步驟:
(Note that you cannot return a boolean type in a SQL callable function. You must return a valid Oracle SQL type, in this example, a String).
創建您的 function:
create or replace and compile java source named returntrue as
public class example
{ public static String returnTrue() { return "TRUE"; } };
您必須創建一個 PL/SQL“包裝器”來連接 java function 和 PL/SQL:
SQL> CREATE OR REPLACE FUNCTION returnTrue
2 RETURN VARCHAR2
3 AS LANGUAGE JAVA
4 NAME 'example.returnTrue() return java.lang.String';
5 /
Function created
SQL> select returntrue from dual;
RETURNTRUE
--------------------------------------------------------------------------------
TRUE
Oracle 文檔中的更多信息。
您對 Oracle 投入了多少? 如果答案介於“相當數量”和“我的生活取決於它”之間,請學習 PL/SQL。 在某些方面它是一種奇怪的語言,但它做得很好,那就是在 SQL 之上提供一個程序層。 如果您的代碼所做的比“SQL 之上的過程層”更深入或更復雜,那么您根本不應該使用存儲過程。 運行您自己的 JVM 並在需要時使用 JDBC。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.