os_command.exec
を使用して、Linuxシェルにコマンドを送信しました。私はOracle 12cを使用しています。ここでOracleストアドプロシージャからos_command.execを呼び出す
が正常に動作サンプルコードです:
select os_command.exec('/home/smucha/app/smucha/product/12.1.0/dbhome_1/bin/sqlldr userid=system/password control=/home/smucha/load_data.cmt')
from dual
私は、ストアドプロシージャに類似したコマンドを実行したいと思います。これを行う方法はありますか?
私は以下を試しましたが、動作しません。私の手続きはエラーなく実行されますが、レコードはロードされません。
execute immediate 'select os_command.exec(''/home/smucha/app/smucha/product/12.1.0/dbhome_1/bin/sqlldr userid=system/acorp56k control=/home/smucha/IZ/load_data.cmt'') from dual';
おそらく、 'os_command'はPL/SQLの機能ラッパーを持つJavaストアドプロシージャですか?そのデータ型はどのようなものですか?少なくともPL/SQL仕様を示すことは有用かもしれません。 (これは[this one](http://www.oracle.com/technetwork/database/enterprise-edition/calling-shell-commands-from-plsql-1-1-129519.pdf)なので、 int?) –