要求
以下是简化要求。最终目标是能够显示有关项目的数据,或使用保存的数据打印标签。该解决方案正在Oracle Forms Builder中创建
:INVENTORY_ITEM_ID
之类的标记,并将替换为。{
SQL评估时表单的值。问题
我们不希望表单将SQL派生值保存到表中。
有没有办法让某些行上的特定列不在数据库中存储值?这些行包含SQL派生值,这些值显示在禁用的值单元格中,并在查询项目或分配属性时派生。
答案 0 :(得分:0)
这是可能的,但你真的应该为你的表格实现表处理程序,而不是依靠Oracle Forms来为你做DML。
通过“实现表处理程序”,我的意思是,将块的“DML Data Target Type
”属性设置为“Use Transactional Triggers
”。
然后,为您的块代码ON-INSERT
,ON-UPDATE
等触发器调用PL / SQL(从块中传入适当的值以插入,更新等)。
在PL / SQL中,您可以准确地将每列插入到您想要的位置,或者根本不插入列,这就是您在此处所做的。
如果您使用的是Oracle电子商务套件,请参阅 Oracle Applications Developer's Guide ,第10章(“在Oracle电子商务套件中使用PL / SQL:编码项目,事件”和表处理程序“)。