簡體   English   中英

直接使用 java 在 Oracle 數據庫中創建 function

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM