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

===============>>#1 票数:5 已采纳

通常,SQL旨在作用于数据库。 与操作系统对象进行交互并不容易。 但是,DB2 for i将允许您执行程序,包括将消息发送到数据队列的API:QSNDDTAQ。 这很丑。

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

参数为:

  1. 数据队列名称(10个字节)
  2. 数据队列库名称(10字节)
  3. 邮件长度(打包(5,0))
  4. 留言内容

如果SQL触发器使用变量而不是文字,则它不需要做任何特殊的事情来格式化长度-所显示的文字就是内部的packed(5,0)样子。

如果分配了此任务,我将创建一个CL程序并调用该程序而不是API。 然后,我将可以使用长度为packed(15,5)的长度参数,该参数是“自然的”跨语言数字长度,并提供了捕获错误。

  ask by Totty.js translate from so

未解决问题?本站智能推荐:

2回复

在AS400中插入时更新触发器

我正在尝试更新AS400中当前插入行的字段。 我正在使用版本4.5、5.3和7.1。 对于我的测试,我创建了一个包含CRTDT字段(NUMERIC 7,0)的表WC(工作中心),当在该表中插入新记录时,我想检查该字段的值是否小于200,000,如果是,加上1,000,000。 我的
1回复

pl / sql使用触发器收集队列中的排队消息

我正在尝试更改现有的排队系统...这让我很头疼... 队列中的逻辑全部包含在Oracle DB中,如下所示: 数据库1发送通知,这些通知在数据库2中的特定队列中排队,我们将其命名为Q1。 有一个常规作业,它执行程序包(DISPATCHER)中的过程,该程序基本上是一个循环
2回复

在触发器主体中指定触发器的父架构

在IBM System i的DB2中,我创建了这个触发器,用于记录在MYLOGTABLE每个插入操作的MYCHECKEDTABLE : DBMS使用硬编码的MYSCHEMA.MYLOGTABLE存储触发器主体。 现在假设我们将整个模式复制为新模式NEWSCHEMA 。 当我在NE
1回复

在Bull队列和数据库触发器之间选择

我有一个用例,必须在数据库中定期为用户创建一条记录。 假设每个星期一每周一次/每两周一次。 我可以通过两种方式实现它。 使用数据库触发器创建时间记录。 但是我不知道该如何重复。 当此触发器运行时,我必须为下一个计划创建一个触发器,我认为这不是正确的方法。 使用队列来处理
3回复

我可以使用sql在AS400中创建“逻辑文件”吗?

我需要创建as400“逻辑文件”。 我的应用程序使用jdbc连接到数据库。 是否可以使用sql语句创建“逻辑文件”? 如果是的话,我将感谢您的示例声明。 谢谢
5回复

SQL如何在AS400中选择前N个…

你如何执行 针对as400 / db2数据库的类型查询
3回复

DB2-SQL如何在AS400中删除前N个…

SELECT * FROM DB FETCH 100 ROW ONLY >确定。 delete from DB FETCH 100 ROW ONLY ->为什么不delete from DB FETCH 100 ROW ONLY ?
1回复

使用AS400数据库在SQL中包含空格的别名

我有一条SQL语句,我想使用一个别名加一个空格。 例如: 我尝试了不同的语法,但失败了。 如果我将别名更改为Alternate(例如,其中不包含空格),则效果很好。 我正在使用以下代码运行sql: System.Data.dll中发生了类型为'System.Dat
2回复

在iSeries DB2上提交事务后,我们可以配置Trigger AS400程序吗?

我们可以在事务提交后调用AS400程序的iSeries DB2表上配置触发器吗?
2回复

AS400 SQL查询类似于本机AS400中的CLRLIB(清除库)

我正在研究AS400数据库,我需要用sql操作库/集合。 我需要重新创建类似于CLRLIB命令的东西,但我找不到一个好方法来做到这一点。 有没有办法用SQL查询从库中删除所有表? 也许我可以删除该集合并创建一个具有相同名称的新集合。 但我不知道这是否是清除图书馆的好方法。