1

我在 DB2 的 SQLRPGLE 中有以下查询:

    INSERT INTO ITEMS2 (PROGRAM, VLDFILE, VLDFLD, 
    SELFILE, SELFLD) VALUES(:SCAPP   , 'CSTMR', 'CYC',
    'BYC', 'BYCC');  

我希望此查询在 FIRST/ITEMS2 和 SECOND/ITEMS2 中的 2 个库中运行

其中 FIRST 和 SECOND 是库名称。这可以在一个查询中实现吗?

对于那些不了解 iSeries 的人:上面的插入语句类似于对 2 个表进行插入查询。

4

4 回答 4

2

INSERT语句不支持插入多个表。

但是,您可以创建一个触发器FIRST/ITEMS2以自动将记录插入/更新/删除到SECOND/ITEMS2.

有关详细信息,请参阅CREATE TRIGGER语句。

于 2013-09-27T12:16:40.130 回答
1

你可以像这样创建一个 QMQuery

    INSERT INTO &LIB/ITEMS2 
             (PROGRAM, VLDFILE, VLDFLD, SELFILE, SELFLD)
      VALUES (&SCAPP, 'CSTMR',  'CYC',  'BYC',   'BYCC');  

然后

STRQMQRY myQmQry  SETVAR(('LIB' 'FIRSTLIB')('SCAPP' &VAR))
STRQMQRY myQmQry  SETVAR(('LIB' 'SECONDLIB')('SCAPP' &VAR))
于 2013-09-27T23:44:54.690 回答
1

如果这将经常运行,请考虑将 INSERT 设置为存储过程,然后通过 SET SCHEMA 设置目标模式:

set schema=first;
call my_insert_proc(:scapp);
set schema=second;
call my_insert_proc(:scapp);
于 2013-09-27T14:27:13.300 回答
0

从 IBM 的语法图INSERThttp://pic.dhe.ibm.com/infocenter/iseries/v7r1m0/index.jsp?topic=%2Fdb2%2Frbafzbackup.htm),我想说你必须使用两个查询。

但在第一次执行此查询后,您可以尝试更改当前库(http://publib.boulder.ibm.com/infocenter/iadthelp/v7r1/topic/com.ibm.etools.iseries.langref2.doc/ chglibl.html)。

于 2013-09-27T11:44:58.823 回答