假设我有一个物理存储在数据库服务器上的SQL脚本。我可以从应用程序发送Oracle来告诉它执行该脚本的SQL命令吗?
(是的,我知道这听起来很荒谬。我正在考虑将它作为解决一个非常讨厌的问题的一部分,该问题“不应发生”,但确实如此。)
最简单的选择通常是使用该dbms_scheduler
程序包运行外部作业。这将使您调用启动SQL * Plus,连接到数据库并运行.sql脚本的Shell脚本。
也可以创建一个Java存储过程,该存储过程使用Java调用操作系统来运行相同的Shell脚本的功能。但是,这往往会带来更多的安全问题,因为您最终将授予该过程的所有者特权,以oracle
用户身份在数据库服务器上运行任何命令。这将包括诸如以SYSDBA身份连接到数据库或意外(有意或无意)破坏数据库之类的事情,因此审计人员通常会对此感到厌烦。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句