
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_dirVARCHAR2(255):='DIR_A';
in_file_nameVARCHAR2(255):='TEST.txt';
io_stsnumber;
io_msgVARCHAR2(255);
io_msgcdVARCHAR2(10);
BEGIN
PROC9999( in_file_dir, in_file_name, io_sts, io_msg, io_msgcd );
END;
同じことをしていると思うのですが何故pro*cではエラーになるのでしょうか?
No.1ベストアンサー
- 回答日時:
>実行するとora-01458エラーが発生してしまいます。
このエラーコードの意味は自分で調べましたか?
「可変長文字列の長さが無効です。」です。
http://otn.oracle.co.jp/document/msg/index.html
#要ユーザ登録(無料)
vErrMsg.lenとか初期化してないですよね。100+1より大きな不正な値が入ってるんじゃないですか?
参考URL:http://otn.oracle.co.jp/document/msg/index.html
回答ありがとうございます。
ご指摘の通りvErrMsg,vErrCodeの初期値がまずかったようで、修正後すんなり正常動作しました。
今回初めてこのサイトを利用させていただきましたが、初回から大ヒットです。今後活用させていただくよいきっかけになりました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ORA-01013のエラーについて経験...
-
CASE文のエラーについて
-
ORA-01843: 指定した月が無効で...
-
はじめまして!
-
シェルスクリプトでオラクルの...
-
PL/SQL PLS-00103エラーについて
-
PCC-S-02201エラーの対処を教え...
-
dmpファイルのインポート時にで...
-
ORA-06502のエラー
-
ACCESSでパススルークエリにパ...
-
sqlのエラーハンドリングについ...
-
PL-SQLでORA-01013エラー
-
オラクル表領域データファイル...
-
ORA-14459: GLOBALキーワードが...
-
【Minecraft】GL ERROR
-
「ORA-00907: 右カッコがありま...
-
10gで動いていたSELECT文が11g...
-
HAVING句でのBETWEEN演算子
-
ExcelVBAからOracleストアド実行
-
パーティション、未割当ての利...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ORA-01013のエラーについて経験...
-
CASE文のエラーについて
-
はじめまして!
-
PL/SQL PLS-00103エラーについて
-
「ORA-00907: 右カッコがありま...
-
ORA-01843: 指定した月が無効で...
-
ORA-06502のエラー
-
PCC-S-02201エラーの対処を教え...
-
シェルスクリプトでオラクルの...
-
PL/SQLによるCREATE TABLE後のI...
-
DATABSE LINKについて
-
PL/SQLのコンパイルエラーにつ...
-
エラーコードについて
-
SQLLOADER
-
sqlのエラーハンドリングについ...
-
ビューが作成できない
-
データベースのカラムの型がCHA...
-
ORA-12571パケット書き込みエラ...
-
PL-SQLでORA-01013エラー
-
PL/SQLでPLS-00201のエラー
おすすめ情報