Bind
Byte1('B') 将该消息标识为 Bind 命令。 Int32 消息内容的长度(以字节为单位),包括其自身。 String 目标 portal 的名称(空字符串选择未命名的 portal)。 String 源预备语句的名称(空字符串选择未命名的预备语句)。 Int16 后续参数格式代码的数量(下文以 C 表示)。可以为零,表示没有参数,或者所有参数都使用默认格式(文本);也可以为一,此时指定的格式代码应用于所有参数;还可以等于实际参数数量。 Int16[ C ] 参数格式代码。目前每个格式…
当前查看 PostgreSQL 18。
中文定义与说明
协议消息 Bind (F)。
同版本中文手册定义
- Byte1('B')
将该消息标识为 Bind 命令。
- Int32
消息内容的长度(以字节为单位),包括其自身。
- String
目标 portal 的名称(空字符串选择未命名的 portal)。
- String
源预备语句的名称(空字符串选择未命名的预备语句)。
- Int16
后续参数格式代码的数量(下文以
C表示)。可以为零,表示没有参数,或者所有参数都使用默认格式(文本);也可以为一,此时指定的格式代码应用于所有参数;还可以等于实际参数数量。- Int16[
C] 参数格式代码。目前每个格式代码必须为零(文本)或一(二进制)。
- Int16
后续参数值的数量(可以为零)。必须与查询所需的参数数量一致。
接下来,每个参数都有以下一对字段:
- Int32
参数值的长度,以字节为单位(不包括此长度字段本身)。可以为零。特殊值 -1 表示 NULL 参数值。为 NULL 时,后面不再有值的字节。
- Byte
n 参数值,格式由对应的格式代码指明。
n为上述长度。
最后一个参数之后是以下字段:
- Int16
后续结果列格式代码的数量(下文以
R表示)。可以为零,表示没有结果列,或者所有结果列都应使用默认格式(文本);也可以为一,此时指定的格式代码应用于所有结果列(如果有);还可以等于查询实际的结果列数量。- Int16[
R] 结果列格式代码。目前每个格式代码必须为零(文本)或一(二进制)。
说明
Byte1('B') 将该消息标识为 Bind 命令。 Int32 消息内容的长度(以字节为单位),包括其自身。 String 目标 portal 的名称(空字符串选择未命名的 portal)。 String 源预备语句的名称(空字符串选择未命名的预备语句)。 Int16 后续参数格式代码的数量(下文以 C 表示)。可以为零,表示没有参数,或者所有参数都使用默认格式(文本);也可以为一,此时指定的格式代码应用于所有参数;还可以等于实际参数数量。 Int16[ C ] 参数格式代码。目前每个格式代码必须为零(文本)或一(二进制)。 Int16 后续参数值的数量(可以为零)。必须与查询所需的参数数量一致。 接下来,每个参数都有以下一对字段: Int32 参数值的长度,以字节为单位(不包括此长度字段本身)。可以为零。特殊值 -1 表示 NULL 参数值。为 NULL 时,后面不再有值的字节。 Byte n 参数值,格式由对应的格式代码指明。 n 为上述长度。 最后一个参数之后是以下字段: Int16 后续结果列格式代码的数量(下文以 R 表示)。可以为零,表示没有结果列,或者所有结果列都应使用默认格式(文本);也可以为一,此时指定的格式代码应用于所有结果列(如果有);还可以等于查询实际的结果列数量。 Int16[ R ] 结果列格式代码。目前每个格式代码必须为零(文本)或一(二进制)。
- 方向
- 前端 → 后端
- 首个线上协议字段
- Byte1('B')
- 字段条目
- 11
- 手册中的交互阶段
- 扩展查询;函数调用
用法
Bind (F)消息边界与重复字段
下方完整定义保留重复项、计数与条件字段。表格行号表示文档中的字段定义,并非固定字节偏移量。整数编码与交互流程以同版本协议章节为准。
按手册顺序排列的线上协议字段
| 位置 | 格式 | 含义 |
|---|---|---|
| 1 | Byte1('B') | 将该消息标识为 Bind 命令。 |
| 2 | Int32 | 消息内容的长度(以字节为单位),包括其自身。 |
| 3 | 字符串 | 目标 portal 的名称(空字符串选择未命名的 portal)。 |
| 4 | 字符串 | 源预备语句的名称(空字符串选择未命名的预备语句)。 |
| 5 | Int16 | 后续参数格式代码的数量(下文以 C 表示)。可以为零,表示没有参数,或者所有参数都使用默认格式(文本);也可以为一,此时指定的格式代码应用于所有参数;还可以等于实际参数数量。 |
| 6 | Int16[ C ] | 参数格式代码。目前每个格式代码必须为零(文本)或一(二进制)。 |
| 7 | Int16 | 后续参数值的数量(可以为零)。必须与查询所需的参数数量一致。 |
| 8 | Int32 | 参数值的长度,以字节为单位(不包括此长度字段本身)。可以为零。特殊值 -1 表示 NULL 参数值。为 NULL 时,后面不再有值的字节。 |
| 9 | Byte n | 参数值,格式由对应的格式代码指明。 n 为上述长度。 |
| 10 | Int16 | 后续结果列格式代码的数量(下文以 R 表示)。可以为零,表示没有结果列,或者所有结果列都应使用默认格式(文本);也可以为一,此时指定的格式代码应用于所有结果列(如果有);还可以等于查询实际的结果列数量。 |
| 11 | Int16[ R ] | 结果列格式代码。目前每个格式代码必须为零(文本)或一(二进制)。 |
相关条目
文档与源码
来源构建
- 版本
- 18.6
- 构建
- https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
- 来源指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f
版本比较
PostgreSQL 17 → 18: 无变化。
比较已记录的接口与属性,排除来源指纹和构建元数据。某个样本中没有记录,不能据此判断实际引入或移除的版本。
相关条目
导出 JSON · 返回协议消息 · 收录范围为 PostgreSQL 10 至 20;最早采样版本不一定是实际引入版本。