Trong PL/SQL của Oracle, tôi có thể tạo một biến toàn cầu dựa trên phiên với định nghĩa gói. Với PLPG/SQL của Postgresql, nó dường như không thể vì không có gói nào, chỉ có các thủ tục và hàm độc lập.Biến toàn cầu dựa trên phiên trong thủ tục lưu trữ Postgresql?
Đây là cú pháp cho PL/SQL để khai báo g_spool_key như một toàn cầu ...
CREATE OR REPLACE PACKAGE tox IS
g_spool_key spool.key%TYPE := NULL;
TYPE t_spool IS REF CURSOR RETURN spool%ROWTYPE;
PROCEDURE begin_spool;
PROCEDURE into_spool
(
in_txt IN spool.txt%TYPE
);
PROCEDURE reset_spool;
FUNCTION end_spool
RETURN t_spool;
FUNCTION timestamp
RETURN VARCHAR2;
END tox;
Làm thế nào tôi sẽ thực hiện một phiên biến toàn cầu có trụ sở với PLpg/SQL?
Là những tùy chỉnh-biến-lớp học có thể thay đổi? – dacracot
có, tôi có một lớp "imos" - đầu ra psql: imos => đặt imos.testvar thành 'foobar'; SET imos => hiển thị imos.testvar; imos.testvar -------------- foobar imos => đặt imos.testvar thành 'bazbar'; SET imos => hiển thị imos.testvar; imos.testvar -------------- bazbar –
BTW, từ PostgreSQL 9.2 bất kỳ cài đặt nào có thể được đặt trước bởi bất kỳ tên lớp nào và hỗ trợ tham số custom_variable_classes đã bị xóa. (Xem https: // www.postgresql.org/docs/current/static/release-9-2.html#AEN111020) – Nashev