↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

已结束支持的版本: 7.4 / 7.3 / 7.2 / 7.1 / 7.0 / 6.5 / 6.4
历史版本。 PostgreSQL 7.2 已结束支持。 请参阅 当前版本手册.

第 4 章 pgtcl - Tcl 绑定库

目录

4.1. 简介
4.2. 把 pgtcl 装载进你的应用程序
4.3. pgtcl 命令参考信息
pg_connect — 打开一个到后端服务器的连接
pg_disconnect — 关闭一个到后端服务器的连接
pg_conndefaults — 获取关于默认连接参数的信息
pg_exec — 向服务器发送一个命令字符串
pg_result — 获取关于查询结果的信息
pg_select — 循环遍历 SELECT 语句的结果
pg_listen — 设置或更改异步 NOTIFY 消息的回调
pg_lo_creat — 创建一个大对象
pg_lo_open — 打开一个大对象
pg_lo_close — 关闭一个大对象
pg_lo_read — 读取一个大对象
pg_lo_write — 写入一个大对象
pg_lo_lseek — 在大对象中定位到某个位置
pg_lo_tell — 返回大对象的当前寻位位置
pg_lo_unlink — 删除一个大对象
pg_lo_import — 从文件导入一个大对象
pg_lo_export — 把大对象导出到文件

4.1. 简介 #

pgtcl 是一个 Tcl 包,供客户端程序与 PostgreSQL 服务器交互。它使 Tcl 脚本可以使用 libpq 的大部分功能。

本包最初由 Jolly Chen 编写。

表 4.1概述了 pgtcl 中可用的命令。这些命令将在后续页面中进一步描述。

表 4.1. pgtcl 命令

命令描述
pg_connect打开一个到后端服务器的连接
pg_disconnect关闭一个连接
pg_conndefaults获取连接选项及其默认值
pg_exec向后端发送一个查询
pg_result操作查询的结果
pg_select循环遍历 SELECT 语句的结果
pg_listen为 NOTIFY 消息建立回调
pg_lo_creat创建一个大对象
pg_lo_open打开一个大对象
pg_lo_close关闭一个大对象
pg_lo_read读取一个大对象
pg_lo_write写入一个大对象
pg_lo_lseek在大对象中定位到某个位置
pg_lo_tell返回大对象的当前寻位位置
pg_lo_unlink删除一个大对象
pg_lo_import把 Unix 文件导入为大对象
pg_lo_export把大对象导出到 Unix 文件

pg_lo_* 例程是 PostgreSQL 大对象特性的接口。这些函数的设计模仿标准 Unix 文件系统接口中的类似文件系统函数。pg_lo_* 例程应当在 BEGIN/COMMIT 事务块内使用,因为 pg_lo_open 返回的文件描述符只在当前事务内有效。pg_lo_import 和 pg_lo_export 必须在 BEGIN/COMMIT 事务块内使用。

例 4.1展示了一个使用这些例程的小例子。

例 4.1. pgtcl 示例程序

# getDBs :
#   get the names of all the databases at a given host and port number
#   with the defaults being the localhost and port 5432
#   return them in alphabetical order
proc getDBs { {host "localhost"} {port "5432"} } {
    # datnames is the list to be result
    set conn [pg_connect template1 -host $host -port $port]
    set res [pg_exec $conn "SELECT datname FROM pg_database ORDER BY datname"]
    set ntups [pg_result $res -numTuples]
    for {set i 0} {$i < $ntups} {incr i} {
	lappend datnames [pg_result $res -getTuple $i]
    }
    pg_result $res -clear
    pg_disconnect $conn
    return $datnames
}

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.