Моя форма имеет главный блок (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
);
Когда я пытаюсь скомпилировать форму Oracle ( Ctrl + T ), я получаю ошибку, подобную этой:
FRM-30408: Invalid value.
Reference: ORDER.ORDER_ID
Block: ORDER_LINE
Procedure: ORDERING_PACKAGE.QUERY_ORDER_LINES
Form: ORDER_FORM
FRM-30085: Unable to adjust form for output.
Согласно документации, рекомендуемое решение:
Причина: значение, введенное для указанного типа данных, недопустимо.
Действие: Исправьте одно или несколько из следующих:
- Тип данных аргумента, соответствующего данному значению в списке аргументов процедуры указанной процедуры.
- Значение аргумента в списке аргументов процедуры указанной процедуры.
Ни одна из этих рекомендаций не работает:
- Тип данных аргумента в форме (
NUMBER
) идентичен типу данных параметра процедуры (NUMBER
).
- Значение аргумента (
ORDER.ORDER_ID
) также имеет тип NUMBER
(см. Первый снимок экрана)
Как мне устранить эту ошибку?