如何使用shell脚本循环访问db2结果集来处理查询返回的每条记录?

时间:2015-07-23 08:56:52

标签: sql shell unix db2

我有一个db2数据库,我想通过unix中的shell脚本执行以下操作:

(1)运行查询

SIGSEGV

(2)然后对于此查询返回的每条记录,我想以这种方式更新它:

SELECT MEMBERID FROM MEMBERS WHERE AGE<16

我已经知道如何连接到db2并运行SELECT并获取MEMBERID的值进行处理。但是,我无法弄清楚如何循环查询返回的多个记录的结果集。谁能帮助我如何去做呢? 如何在unix中循环遍历db2结果集以便可以完成此操作?

2 个答案:

答案 0 :(得分:0)

我不使用db2,但在Oracle中它将是

me.googlemap

答案 1 :(得分:0)

为什么要循环结果集?

简单地:

UPDATE members
SET adult = 'N'
WHERE age < 16

SQL是一种基于集合的语言...循环遍历结果集,如果可能的话,应该避免为每一行运行更多的SQL。对于习惯用程序语言编写的人来说,这是一个常见的错误。在SQL,RBAR:Row-By-Agonizing-Row

中有一个值得记住的首字母缩略词

Google SQL RBAR 了解更多信息......请务必查看此处的示例 RBAR vs. Set based programming for SQL