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

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

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4

42.12. Tcl 过程名 #

在 PostgreSQL 中,如果函数位于不同模式中,或者参数个数或参数类型不同,就可以复用同一个函数名。不过,Tcl 要求所有过程名都必须不同。PL/Tcl 处理这一问题的方式是:在内部 Tcl 过程名中包含参数类型名,并在必要时把函数对象 ID(OID)追加到内部 Tcl 过程名后面,以确保它与同一 Tcl 解释器中所有先前已装载的函数名都不同。因此,名称相同但参数类型不同的 PostgreSQL 函数,也会对应不同的 Tcl 过程。这通常不是 PL/Tcl 程序员需要关心的事情,但在调试时可能会看见。

因此,再加上其他一些原因,一个 PL/Tcl 函数不能在 Tcl 内部直接调用另一个 PL/Tcl 函数。如果确实需要这样做,就必须通过 SQL 并使用 spi_exec 或相关命令来实现。

报告文档问题

阅读 上游文档. 通过 PostgreSQL 文档反馈表单.