38.4. PL/Tcl 裡的全局量

有時候在兩次過程函數調用或者不同的函數之間保存一些全局數據是非常有用的。 因為所有在一個後端運行的PL/Tcl過程共享同一個安全 Tcl 解釋器。 所以實現這個目標相當容易。 因此,任何全局 Tcl 變量都是可以被所有PL/Tcl過程調用訪問的, 並且將在該次 SQL 會話過程中保持一致。(請注意PL/TclU函數也類似地共享全局數據, 但是它們在一個不同的 Tcl 解釋器裡並且無法和PL/Tcl函數通訊。)

為了保護 PL/Tcl 過程相互之間不至于互相幹擾, 每個過程可以通過upvar命令訪問一個全局數組。 此變量的全局名稱是過程的內部名稱,其局部名稱是GD。 我們建議使用GD作為存儲過程的私有狀態數據的數組。 而把普通的 Tcl 全局變量只用于那些你想在多個過程之間共享的變量。

一個使用 GD 的例子在下面的 spi_execp 例子裡顯示。