Это, конечно, не способ заполнять блок данных в Oracle Forms.Даже если вам удастся это сделать, формы будут рассматривать эти строки new и - если вы попытаетесь их сохранить - вы получите нарушение первичного / уникального ключа.
Вы должны были использоватьМастер блоков данных, который проведет вас через процесс создания мастер-блока (который обычно находится в макете формы с отображением одной записи).
Затем снова запустите мастер, чтобы создать блок сведений (который обычно отображается в виде таблицы с несколькими записями).Убедитесь, что создали отношения между этими двумя блоками.
Если эти таблицы созданы надлежащим образом (т.е. имеют первичные ключи, а также внешний ключ, который устанавливает отношение мастер-подробности), формы автоматически предложат, какие столбцы следует объединить.
Как толькоМастер готов, эта форма будет работать во всех отношениях - вам не нужно писать ни одной строки кода.Таким образом, вы можете
- запросить эти таблицы
- запрашивающий мастер получит свои данные автоматически , без каких-либо циклов, записанных в вашей собственной программной единице
- введите новые значения,
- обновите или удалите существующие.
В коде, который вы написали: Барбарос сказал вам, как это исправить, ноон все равно не будет работать в триггере WHEN-VALIDATE-ITEM
, поскольку вы не можете использовать в нем ограниченные процедуры (например, GO_BLOCK
или FIRST_RECORD
).Это действительно не имеет значения, так как то, как вы хотите это сделать, совершенно неверно.