| PostgreSQL 8.0.0 中文文件(轉譯自 PostgreSQL 中國 製作的簡體中文版本) | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 36. PL/Tcl - Tcl 過程語言 | Fast Forward | Next |
有時候在兩次過程函數調用或者不同的函數之間保存一些全局資料是非常有用的。 因為所有在一個後端執行的PL/Tcl過程共享同一個安全 Tcl 解釋器。 所以實現這個目標相當容易。 因此,任何全局 Tcl 變量都是可以被所有PL/Tcl過程調用訪問的, 並且將在該次 SQL 會話過程中保持一致。(請注意PL/TclU函數也類似地共享全局資料, 但是它們在一個不同的 Tcl 解釋器裡並且無法和PL/Tcl函數通訊。)
為了保護 PL/Tcl 過程相互之間不至於互相干擾, 每個過程可以透過upvar命令訪問一個全局數組。 此變量的全局名稱是過程的內部名稱,其局部名稱是GD。 我們建議使用 GD 作為函數的永久私有狀態資料的儲存。 而把普通的 Tcl 全局變量只用於那些您想在多個過程之間共享的變量。
一個使用 GD 的例子在下面的 spi_execp 例子裡顯示。