【问题标题】:DB2 AS400 TriggersDB2 AS400 触发器
【发布时间】:2016-03-23 17:55:10
【问题描述】:

我的任务是寻找一种将数据迁移到 DB2 AS400 数据库中的方法。当在前端输入数据(当前是手动)时,系统会进行一些计算并将结果插入表格中。

我的理解是它使用触发器来做到这一点。我对这些东西不太了解,但我已经编写了代码来直接将值插入到同一个表中。有没有办法让我弄清楚当用户手动输入数据时触发了什么触发器?

我查看了 QSYS2/SYSTRIGGERS,除了对我没有多大意义之外,我没有看到属于包含我的表的 SCHEMA 的触发器。

这里的任何帮助都会很棒,因为我被困住了。

【问题讨论】:

  • entered (currently manually) on the front end 是什么意思?数据输入到格式化屏幕?如果是这样,那么“触发”似乎不太可能。
  • 这是一个古老的油气分配软件。从系统菜单中输入“CALL ARTESIA”,然后浏览各种菜单,直到您手动输入纸上信息。当您按下回车键时,信息将插入到与该屏幕关联的文件(表)中。您只输入大约 8 条数据。根据您输入的内容,填充了 60 列,其中一些正在计算中(特别是在 60 度之外测量的 API 的油体积校正因子)。我使用前端来描述用户界面。
  • 所以,这是一个 BEFORE INSERT 触发器?这很有意义。
  • 我希望我知道的足以回答这个问题,但我始终无法找到正确的触发器。它肯定在做点什么,因为大约 12 条用户输入变成了一个有 60 列的表中的一个条目,并且所有列都被填写了。
  • 听起来像是一个旧的绿屏 (5250) 程序。使用触发器是不寻常的。所有逻辑都在程序本身中。这就是 20 年前的做法。

标签: db2 ibm-midrange db2-400


【解决方案1】:
SELECT *
FROM QSYS2.SYSTRIGGERS
WHERE TABSCHEMA = 'MYSCHEMA' 
      AND TABNAME = 'MYTABLE'

应该可以正常工作。

如果您更喜欢使用 5250 命令行,显示文件描述 (DSPFD) 命令将显示文件(表)上的触发器

DSPFD FILE(MYSCHMA/MYTABLE) TYPE(*TRG)

最后,触发器信息可通过 IBM i Navigator GUI 获得。较旧的胖客户端版本或较新的基于 Web 的版本。

【讨论】:

  • 我查看了 QSYS2.SYSTRIGGERS 中的每个触发器,现在我想触发器并不是实际发生的事情,但您的回答绝对正确,所以谢谢。
猜你喜欢
  • 1970-01-01
  • 2018-08-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多