【问题标题】:How can I insert a record using Form Builder and PL/SQL?如何使用 Form Builder 和 PL/SQL 插入记录?
【发布时间】:2009-02-27 16:31:11
【问题描述】:

我正在慢慢学习 SQL 以及如何使用表单构建器 6。情况是我在表中有一个名为“玩家”的简单表,我有三列:

  • player_no(主键)
  • 位置
  • 目标

在表单生成器 6 中,我使用这三个字段创建了一个非常简单的表单。该表格被命名为“团队”。在表格的底部,我有一个标有“添加”的按钮。目标是让用户输入 player_no、位置和目标,然后单击“添加”。然后将这些信息放入我的表中。

到目前为止,所有尝试都以惨败告终。我在按钮(WHEN_MOUSE_CLICK)上设置了一个触发器。然后我输入了以下代码:

BEGIN
  INSERT INTO players ( player_no )
  VALUES ( :TEAM.player_no )
END

为了进行测试,我只使用了一个 (player_no) 字段。然后当我运行表单并输入 player_no 并点击按钮时编译没有错误,我在状态栏中收到以下错误:

frm-40735:WHEN-MOUSE-CLICK 触发器引发未处理的异常 ORA-01400

我做错了什么可怕的事情吗?我对 SQL 和 Form Builder 非常陌生,因此我们将不胜感激。

【问题讨论】:

    标签: sql oracle formbuilder ora-01400


    【解决方案1】:

    ORA-01400: cannot insert Null 似乎您的某个字段不为空,并且您在插入时省略了它们。或值 :TEAM.player_no 在插入期间为空。

    另外,来自网络的某个地方:

    FRM-40735:ON-INSERT 触发器引发 未处理我们有类似的问题 从 11.5.9 开始。我们清除 Jinitiator 缓存和临时 Internet 文件 (工具>互联网选项然后在 临时互联网文件清晰 文件按钮)。似乎有效。

    【讨论】:

      【解决方案2】:

      使用表单生成器的好处之一是您几乎总是不需要自己编写 DML 语句。

      只需根据表创建块 - 然后用户可以添加和修改任意数量的记录,然后当他们保存(即 COMMIT)时,Forms 运行时会自动计算出保存所需的 INSERT 和 UPDATE变化。

      【讨论】:

        猜你喜欢
        • 2014-12-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-02
        • 1970-01-01
        • 2017-01-31
        相关资源
        最近更新 更多