pro*c で pl/sql に変数を渡すとora-01458発生
oracle初心者です。よろしくお願いします。
oracleのバージョンは 10.1.0.2.0
開発言語はpro*c pl/sql です。
テキストファイルを処理するAPを作成しています。
ディレクトリオブジェクト名を、pro*cからpl/sqlを呼び出す際に変数として渡していますが、実行するとora-01458エラーが発生してしまいます。
pro*cのコーディングは以下の通りです。
EXEC SQL BEGIN DECLARE SECTION;
char Pass[50+1];
char Txtnm[20+1];
int nStatus;
VARCHAR vErrMsg[100+1];
VARCHAR vErrCode[10+1];
EXEC SQL END DECLARE SECTION;
ZeroMemory( Pass, sizeof( Pass ) );
strcpy( Pass, "DIR_A" );
ZeroMemory( Txtnm, sizeof( Txtnm) );
strcpy( Txtnm, "TEST.txt" );
EXEC SQL EXECUTE
BEGIN
proc9999( :Pass, :Txtnm, :nStatus, :vErrMsg, :vErrCode );
END;
END-EXEC;
しかし、このpl/sqlをsqlplusから下記の内容で実行すると正常に動作します。
DECLARE
in_file_dir VARCHAR2(255) :='DIR_A';
in_file_name VARCHAR2(255) :='TEST.txt';
io_sts number;
io_msg VARCHAR2(255);
io_msgcd VARCHAR2(10);
BEGIN
PROC9999( in_file_dir, in_file_name, io_sts, io_msg, io_msgcd );
END;
同じことをしていると思うのですが何故pro*cではエラーになるのでしょうか?