暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

使用JDK 11在Oracle上使用Java UDF

askTom 2021-08-24
1580

问题描述

我是一名开发人员,与使用不同版本Oracle DB的多个客户合作。我的问题与Java UDF (而不是ODBC )有关。

我能够在我的Oracle 11 DB服务器( Red Hat, AWS托管)上构建一个简单的Java程序,并使用sqlplus命令来访问用户定义函数(UDF)。工作很好!下面是一个简单的代码示例:

SQL> CREATE OR REPLACE FUNCTION udfversion RETURN VARCHAR2 AS LANGUAGE JAVA NAME 'UDFtest.version() return java.lang.String';
/
SQL> VARIABLE myString VARCHAR2(20); 
SQL> CALL udfversion() INTO :myString;
SQL> PRINT myString;


但是现在我的Java程序需要使用JDK11编译,并且我想执行相同的UDF调用。我想在RedHat上运行的Oracle 19c DB上尝试此操作(我的客户要求)。我的问题是,对于这些类型的测试,我有哪些选项可以获得对Oracle 19c的访问权限?

我是否可以使用Oracle云门户在Red Hat服务器上设置19c DB、编译Java-11测试程序并运行sqlplus?或者,最好还是安装一个安装程序,然后下载到我的红帽子服务器上?我需要什么类型的许可才能完成面向开发人员的工作?

专家解答

据我所知, 19c数据库内的java版本仍然是1.8

SQL> SELECT dbms_java.get_jdk_version JDK_Version FROM dual;

JDK_VERSION
-------------------------------------------------------------
1.8.0_291


但是绝对最便宜的方法可能是下载免费的18c XE ,并且里面有Java选项(加上几乎所有其他选项)。

下载你自己的19c并做一些原型制作的问题是,你*可能*违反了许可条款(它讨论了很多关于你是在探索、原型还是为商业用途构建应用程序等方面的事情).

对于云,对于一次性测试,您可能可以设置托管数据库服务或在IaaS上构建自己的数据库服务,但它们仍然需要许可。就我所知,自由选项(自主)不包括Java。
文章转载自askTom,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论