お世話になります。VBからストアドプロシージャを呼び出してCLプログラムを動かそうとしているのですが、CPYFRMIMPFがCPF2817でエラーとなってしまいます。呼び出すコマンドは以下でCPYFRMIMPF FROMFILE(HOGE/DATA) TOFILE(HOGE/LDATA) MBROPT(*REPLACE) STRDLM(*NONE)コマンドラインからのコマンド実行や、CLプログラムからの実行は正常に処理されました。ちなみにストアドプロシージャを作成したときにコマンドは以下です。CREATE PROCEDURE HOGE/PVBTEST LANGUAGE CL NOT DETERMINISTIC CONTAINS SQL EXTERNAL NAME HOGE/VBTEST PARAMETER STYLE GENERAL プロシージャからはCPYFRMIMPFは正常に動かせないのでしょうか?
DSPCMD でコマンドを調べればそのコマンドが実行可能な環境を知ることができますが CPYFRMIMPF も他のコマンドと同じであり特に実行環境が制限されているわけではありません。それより CPF2817 は「エラーのために、コピーコマンドが終了した。」というメッセージですので、これより以前に送出されているエラーの内容をお調べになればエラーの真の原因を知ることができます。幸い対話式環境では実行できた、とのことですのでバッチ・ジョブでの権限の問題も予想されますが恐らくジョブログにも報告されているはずですのでジョブログを調べて原因をまず調査することが先決かと思われます。
ジョブログを確認したところSQLが実行できないとのエラーが出ていました。CREATE PROCEDUREのSQL使用状況を4:MODIFIES SQL DATAにしないといけないようです。ありがとうございました。