PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Tham chiếu đến các biến phiên (\ set var ='value') từ PL / PGSQL

Bạn không thể sử dụng trực tiếp các biến psql bên trong mã plpgsql. Việc thay thế biểu tượng bị chặn bên trong chuỗi:

postgres=> select :'xx';
 ?column? 
----------
 AHOJ
(1 row)

postgres=> select ' :xx ';
?column? 
----------
 :xx 
(1 row)

Nhưng bạn có thể đặt biến phiên máy chủ và sau đó sử dụng loại biến này trong mã plpgsql (ở phía máy chủ):

postgres=> set myvars.xx = :'xx';
SET
postgres=> do $$ begin 
                   raise notice '>>%<<', current_setting('myvars.xx');
                 end $$;
NOTICE:  >>AHOJ<<
DO

Bạn có thể sử dụng kỹ thuật tương tự từ dòng lệnh, xem:http://okbob.blogspot.cz/2015/01/how-to-push-parameters-to-do-statement.html

lưu ý cuối cùng - mã

BEGIN
  SELECT some;
END;

không hợp lệ trong plpgsql. Kết quả của bất kỳ SELECT nào s nên được lưu trữ trong một số biến. Postgres không có khả năng trả về kết quả của SELECT miễn phí cho khách hàng - DO câu lệnh không tương đương với thủ tục MS SQL.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Các cài đặt sẵn có cao của PostgreSQL Patroni

  2. Lỗi khi đặt n_distinction bằng biến plpgsql

  3. Cách liệt kê tất cả các chế độ xem trong cơ sở dữ liệu PostgreSQL

  4. Cách theo dõi Hiệu suất PostgreSQL 12 với OmniDB - Phần 1

  5. SQL SELECT tốc độ int so với varchar