Name
pg_select -- 循环处理一个查询的结果
Synopsis
pg_select conn commandString arrayVar procedure
描述
pg_select 向
PostgreSQL 服务器提交一个查询
(SELECT 语句),并且对结果里的每个记录执行一个给定的代码段。
commandString 必须是一个 SELECT 语句。任何其它东西都返回一个错误。
arrayVar 变量是一个在循环中使用的数组名。对每个记录,
arrayVar 都被填充为记录的字段值,
使用字段名作为数组的索引.然后执行 procedure。
除了上述字段值之外,在数组中还有下列特殊记录∶
- .headers
查询返回的字段名列表
- .numcols
查询返回的字段数目.
- .tupno
当前的行数目,从零开始,为每次循环体的迭代递增。
参数
- conn
要执行查询的连接句柄。
- commandString
要执行的 SQL 查询。
- arrayVar
用于返回行的数组变量。
- procedure
在每个返回的记录上运行的过程.
例子
如果表 table1 有字段 control 和 name
(以及可能还有其他字段)下面的东西就能运行:
pg_select $pgconn "SELECT * FROM table" array {
puts [format "%5d %s" $array(control) $array(name)]
}