首页 > 解决方案 > 如何在 oracle 中使用 `dbms_java.loadjava` 从远程系统上传 jar

问题描述

我需要使用dbms_java.loadjava远程系统在 Oracle 数据库中上传 jar 文件。

我努力了 call dbms_java.loadjava('–proxy -Dhttp.proxyHost=remote_system_ip -Dhttp.proxyPort=22 file:///home/abc.jar');

它返回Call completed.但是,虽然使用 PLSLQ 的 jar 中的函数低于错误。

ORA-29540: class com/pkg_name/class_name does not exist
29540. 00000 -  "class %s does not exist"  
*Cause:    Java method execution failed to find a class with the indicated name.
*Action:   Correct the name or add the missing Java class.

但是,当将 jar 上传到 Oracle 数据库服务器并通过使用loadjava命令执行相同操作时,它工作正常。

loadjava -user dbuser/dbpass path_to_jar/abc.jar

然后我可以从我的 PLSQL 代码中访问 jar 文件中的函数。

此外,我在运行它时注意到的另一件事,dbms_java.loadjava即使abc1.jar不是有效的文件名并且不存在,也可以成功完成以下命令。

call dbms_java.loadjava('–proxy -Dhttp.proxyHost=remote_system_ip -Dhttp.proxyPort=22 file:///home/abc1.jar');

请建议。

标签: oracleoracle12cloadjava

解决方案


据我所知,您只能从数据库服务器上传。

dbms_java.loadjava 即使文件不存在也完成的原因:询问Oracle。

但您始终可以使用 Oracle 字典进行验证,例如 USER_OBJECTS。


推荐阅读