在2个表之间具有JOIN的游标上的更新操作是什么?
问题:是否可以更新在2个表ORDERS和TRANSACTIONS上使用JOIN的CURSOR?为什么或者为什么不?我们如何进行这些表的更新?
解
每当我们在两个或多个表(在这种情况下为ORDERS和TRANSACTIONS)中的游标中使用JOIN时,就会在虚拟内存中生成一个临时表。但是,由于这是一个临时表,我们可以从该表中获取数据,但是无法更新该表。
如果要更新JOIN中使用的任何表,则必须为所有表声明一个单独的游标,并且必须构建单独的逻辑以更新每个DB2表。例如,如果我们想创建一个UPDATE游标来更新ORDERS表,那么我们将如下声明游标。
示例
EXEC SQL
DECLARE ORDER_CUR CURSOR WITH HOLD FOR
SELECT * FROM ORDERS
FOR UPDATE OF ORDER_TOTAL, ORDER_STATUS
END-EXEC但是,如果我们希望更新该表的所有列,则不应在“FORUPDATE”OF子句中指定任何列名。类似地,如果我们要更新TRANSACTIONS表,则需要一个单独的更新游标,如上。
热门推荐
10 祝女儿简短祝福语大全
11 大学新年祝福语简短创意
12 元旦适合的祝福语简短
13 朋友出远门祝福语简短
14 初六简短的祝福语
15 祝男孩生日祝福语简短
16 同事调离的祝福语简短
17 拜年红包的祝福语简短
18 妈妈生日祝福语简短励志