【问题标题】:FRM-40501 in oracle forms甲骨文形式的 FRM-40501
【发布时间】:2019-08-09 17:55:58
【问题描述】:

from 子句查询我提出了一个查询以从两个表中获取数据检查该代码

select empno,ename,job,mgr,hiredate,sal,comm,deptno,grade gr 
  from emp 
  left outer join salgrade on ( emp.sal between losal and hisal)

我还将属性更改为可见和不可见,就像该代码一样

if   get_item_property('text_item17', visible) = 'TRUE' then
     set_item_property('text_item17', visible, property_false);  
else
     set_item_property('text_item17', visible, property_true);
     set_item_property('text_item17',enabled,property_true);
     set_item_property('text_item17',enabled,property_true);
     set_item_property('text_item17',NAVIGABLE ,property_true);
     set_item_property('text_item17',UPDATE_ALLOWED,property_true);
     set_item_property('text_item17',QUERYABLE,property_true);
     set_item_property('text_item17',UPDATE_NULL,property_true);
end if;

当我运行表单时出现无法更新数据的错误

【问题讨论】:

    标签: oracle oracle11g oracleforms


    【解决方案1】:

    Forms 不知道这些列属于哪个表,因此无法执行更新。

    我建议您创建一个视图,基于该视图创建一个数据块,创建一个INSTEAD OF 触发器,该触发器可以负责正确插入、更新和删除两个表中的行。

    SET_ITEM_PROPERTY 您发布的电话与它没有任何关系(即不会解决您的问题)。

    [编辑]

    说你想在没有视图的情况下解决它,我建议你不要花太多时间在这上面。如果您打开在线表单帮助并搜索“选择块数据源的指南”,您会看到 FROM 子句作为数据源允许查询,但 不允许 > 允许 DML(插入、更新和删除)。

    【讨论】:

    • 我想在不创建视图的情况下解决它,如果我没有成功,我会先尝试,我将创建一个视图,非常感谢
    • 我的朋友,我做到了,我可以更新和删除,而无需从 dml 数据目标类型中创建视图选择表并输入表名,然后转到项目 text_item17 属性仅将查询更改为是,我工作得很好
    • 你删除了什么?您的 FROM 子句中有 2 个表。您是否从他们两个中删除了一行?你应该有(如果 - 你在说什么 - 是正确的)。
    【解决方案2】:

    从 dml 数据目标类型中选择表并输入表名,然后转到项目 text_item17 属性将查询仅更改为是

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-20
      • 2021-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多