У меня есть интерфейс, созданный с помощью Oracle Forms. У него есть base table block
, в котором есть поле (а именно col3
" имеет то же имя, что и столбец таблицы, полученный из ").
Форма имеет два других поля col1
и col2
числового типа, и эти поля также являются членами той же таблицы, имеющей столбец col3
, упомянутый выше.
Я преобразовал col3
в виртуальный столбец как сумму столбцов col1
и col2
в определении таблицы (col3 number generated always as (nvl(col1,0)+nvl(col2,0)) virtual
)
Когда я пытаюсь зафиксировать изменения в базовой таблице, появляется сообщение об ошибке
ORA-54013: Операция INSERT запрещена для виртуальных столбцов
Я знаю, что применять DML к виртуальному столбцу не имеет смысла, но даже я изменил поле col3
Query Only
свойство от No
до Yes
Update Allowed
свойство от Yes
до No
Insert Allowed
свойство от Yes
до No
Я получаю то же сообщение об ошибке. Я не хочу писать явные операторы DML, поскольку в форме есть много других полей, и они также должны быть перечислены в этих операторах.
Есть ли у вас идеи, как я могу решить эту проблему, не отказываясь от структуры base table block
? ( Я использую версию Fusion Middleware 11g )