- PR -

別パッケージの定数を呼び出す方法。

1
投稿者投稿内容
キヨ
ベテラン
会議室デビュー日: 2004/08/24
投稿数: 65
投稿日時: 2005-11-18 13:42
お世話になります。

PL/SQLで別パッケージの定数を呼び出すとエラーとなる現象になるのですが、
このような現象にあわれた方はいらっしゃいますか??

エラー名
ORA-06502: PL/SQL: 数値または値のエラー: 文字列バッファが小さすぎます。が発生しました

この方法は変えずに、解決方法を探しています。
解決方法をご存知の方がおりましたら、教えてください。

よろしくお願いします。
117
ベテラン
会議室デビュー日: 2005/05/09
投稿数: 94
お住まい・勤務地: 大阪府
投稿日時: 2005-11-18 14:12
そのエラーコードはは別パッケージの定数云々よりは
文字列変数に長さを超えた値を代入しようとした際(例えば CHAR(1) の変数に 'XX' を
代入する等)に発生するものだったと思いますが、その辺りはご確認されてますか?
_________________
# Future Is On Fire !
キヨ
ベテラン
会議室デビュー日: 2004/08/24
投稿数: 65
投稿日時: 2005-11-18 15:08
ご返答ありがとうございます。

>文字列変数に長さを超えた値を代入しようとした際(例えば CHAR(1) の変数に 'XX' を
>代入する等)に発生するものだったと思いますが、その辺りはご確認されてますか?

はい、オーバーフローはしてません。

詳しくは、
--**********************************************************
-- 共通パッケージ
--**********************************************************
CREATE OR REPLACE PACKAGE P_COMMON IS
/* ------------------------------------------- */
/* 定数定義(処理モード) */
/* ------------------------------------------- */
C_A CONSTANT CHAR(2) := '00';
END P_COMMON;
/

メインパッケージにて「P_COMMON.C_A」って呼び出すと、エラーになるのです。
エラーといっていますが、なる時とならない時とバラバラで不安定な動きをしています。


117
ベテラン
会議室デビュー日: 2005/05/09
投稿数: 94
お住まい・勤務地: 大阪府
投稿日時: 2005-11-18 15:51
メインパッケージ側で長さの不足している変数に代入してたりとか
長さを超える文字列結合したり ということもないわけですよね.
となるとちょっとわからない
_________________
# Future Is On Fire !
あんとれ
ぬし
会議室デビュー日: 2004/01/14
投稿数: 556
投稿日時: 2005-11-18 16:45
もし、お使いのバージョンが 10.1.0.4 なら PL/SQL で CHAR 型を利用したときで、特定の条件を満たす場合に発生する不具合が公開されています。
1

スキルアップ/キャリアアップ(JOB@IT)