如何在AS400中创建一个由SQL触发器触发的数据队列



我需要做一个数据队列,由我的SQL触发器触发;SQL触发器已经完成,但我不知道如何实现数据队列

一般来说,SQL是用来操作数据库的。与操作系统对象进行交互并不容易。但是,DB2 for i允许执行程序,包括将消息发送到数据队列的API: QSNDDTAQ。它是丑陋的。

call qsnddtaq ('DTAQ      ', 'LIBRARY   ', x'0008F', 'From SQL')

参数为:

  1. 数据队列名称(10字节)
  2. 数据队列库名称(10字节)
  3. 消息长度(打包(5,0))
  4. 消息内容

如果SQL触发器使用变量而不是字面量,则不需要做任何特殊的操作来格式化长度-所显示的字面量是内部打包(5,0)的样子。

如果我被分配这个任务,我会创建一个CL程序并调用它,而不是API。然后,我将能够使用packed(15,5)作为长度参数,这是"自然的"跨语言数字长度,并提供捕获错误。

最新更新