oracle - 如何在 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');
请建议。
解决方案
据我所知,您只能从数据库服务器上传。
dbms_java.loadjava 即使文件不存在也完成的原因:询问Oracle。
但您始终可以使用 Oracle 字典进行验证,例如 USER_OBJECTS。
推荐阅读
- azure-devops - Azure Pipelines - 从 SQL 脚本记录命令
- symfony - 用于生成迁移的 Symfony 学说专栏跳过
- r - 根据增加的最小值查找范围
- json - 根据来自第一个存储过程 #1 的输入触发另一个存储过程 #1 中的存储过程 #2
- c# - How to test if two collections of objects are in a different order based on one of the objects' properties?
- javascript - 反应 setTimeout 钩子 onclick
- c# - 为什么以不同的方式添加字节会产生不同的结果?
- angular - 每 x 分钟刷新一次 ionic 应用程序中的页面数据
- node.js - 如何将本地文件附加到嵌入?
- latex - 如何在乳胶中突出显示`\cite`(保留换行符)