直接使用java在Oracle数据库中创建函数

Gal*_*lal 3 java oracle plsql

我知道可以使用命令CREATE JAVA在oracle数据库中创建java函数 - 看看这里.我一直在阅读很多关于如何做到这一点的内容,但是我读的越多,看起来就越多.

我想做的很简单.由于我已经非常熟悉Java,我不想学习PL/SQL,特别是我正在研究的项目相当小.我也不想用这个功能搞得太多,我想要做的就是以下内容:

1)在连接到数据库时声明一个函数,如:

CREATE JAVA AS 
    public class Example{
        public static bool returnTrue() {
            return true;
        }
    }
Run Code Online (Sandbox Code Playgroud)

2)然后在连接时调用该函数,如:

SELECT Example.returnTrue() FROM DUAL;
Run Code Online (Sandbox Code Playgroud)

这可能吗?
怎么样?

DCo*_*kie 8

不可能,你需要另一步:

(请注意,您无法在SQL可调用函数中返回布尔类型.您必须返回有效的Oracle SQL类型,在此示例中为String).

创建你的功能:

create or replace and compile java source named returntrue as
public class example
{ public static String returnTrue() { return "TRUE"; } };
Run Code Online (Sandbox Code Playgroud)

你必须创建一个PL/SQL"包装器"来连接java函数和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
Run Code Online (Sandbox Code Playgroud)

Oracle文档中的更多信息.