私のフォームには、マスター ブロック ( ORDER
) と詳細ブロック ( ORDER_LINE
) があります。ORDER
ブロックには、次のように定義された項目ORDER_ID
(主キー) があります。
ORDER_LINE
ブロックはORDER.ORDER_ID
アイテムを引数として使用して、そのレコードを照会します。
プロシージャは次のORDERING_PACKAGE.QUERY_ORDER_LINES
ように宣言されます。
PROCEDURE
query_order_lines
(
order_lines IN OUT ORDER_LINE_CURSOR_TYPE,
order_id NUMBER,
line_number VARCHAR2,
bin VARCHAR2,
plu VARCHAR2,
description VARCHAR2
);
CtrlOracle フォーム ( + )をコンパイルしようとするとT、次のようなエラーが表示されます。
FRM-30408: 値が無効です。 参照: ORDER.ORDER_ID ブロック: ORDER_LINE 手順: ORDERING_PACKAGE.QUERY_ORDER_LINES フォーム: ORDER_FORM FRM-30085: 出力のフォームを調整できません。
ドキュメントによると、推奨される解決策は次のとおりです。
原因: 指定されたデータ型に入力された値が無効です。
処置: 次の1つ以上を修正してください。
- 指定されたプロシージャのプロシージャ引数リスト内の指定された値に対応する引数のデータ型。
- 指定されたプロシージャーのプロシージャー引数リスト内の引数の値。
これらの推奨事項はどちらも機能しません。
- 形式の引数のデータ型 (
NUMBER
) は、プロシージャのパラメーターのデータ型 ( ) と同じですNUMBER
。 - 引数の値 (
ORDER.ORDER_ID
) もタイプですNUMBER
(最初のスクリーン ショットを参照) 。
このエラーを解決するにはどうすればよいですか?