44.11. PL/Tcl 配置

本节列出了影响 PL/Tcl 的配置参数。

  • pltcl.start_proc ( string )
    • 如果将此参数设置为非空字符串,则该参数指定无参数 PL/Tcl 函数的名称(可能是模式限定的),每当为 PL/Tcl 创建新的 Tcl 解释器时,该函数将被执行。这样的功能可以执行每个会话的初始化,例如加载其他 Tcl 代码。当在数据库会话中首次执行 PL/Tcl 函数时,或者由于新的 SQL 角色调用 PL/Tcl 函数而必须创建其他解释器时,会创建一个新的 Tcl 解释器。

引用的函数必须用pltcl语言编写,并且不能标记为SECURITY DEFINER。 (这些限制确保了它在应该初始化的解释器中运行.)当前用户也必须具有调用它的权限。

如果函数失败并出现错误,它将中止导致新解释器创建的函数调用,并传播到调用查询,从而导致当前事务或子事务中止。 Tcl 中已经执行的任何操作都不会撤消;但是,该解释器将不再使用。如果再次使用该语言,将在新的 Tcl 解释器中再次尝试初始化。

只有超级用户可以更改此设置。尽管可以在会话中更改此设置,但此类更改不会影响已经创建的 Tcl 解释器。

  • pltclu.start_proc ( string )
    • 该参数与pltcl.start_proc完全一样,只不过它适用于 PL/TclU。引用的函数必须使用pltclu语言编写。