受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: devel

42.12. Tcl 过程名 #

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

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

提交更正

如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。