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

时间:2011-05-05 14:48:12

标签: java oracle plsql

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

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

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

CREATE JAVA AS 
    public class Example{
        public static bool returnTrue() {
            return true;
        }
    }

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

SELECT Example.returnTrue() FROM DUAL;

这可能吗?
怎么样?

2 个答案:

答案 0 :(得分:8)

不可能,你需要另一步:

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

创建你的功能:

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

你必须创建一个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

Oracle documentation中的更多信息。

答案 1 :(得分:3)

您对甲骨文的投资情况如何?如果答案是在“相当数量”和“我的生活依赖于它”之间的任何地方,那么学习PL / SQL。它在某些方面是一种奇怪的语言,但是它做得很好,而且它提供了一个基于SQL的过程层。如果您的代码所做的事情比“基于SQL的过程层”更深入或更复杂,那么您根本不应该使用存储过程。运行您自己的JVM并在需要时使用JDBC。