我有一个使用 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 版本)