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

use \ set biến bên trong khối khai báo plpgsql

Giải thích là, theo hướng dẫn sử dụng :

Phần thân của DO câu lệnh là một chuỗi được trích dẫn bằng đô la. Vì vậy, không có nội suy bên trong chuỗi.

Vì nó phải là một chuỗi theo nghĩa đen, bạn cũng không thể nối các chuỗi một cách nhanh chóng. Hướng dẫn:

Nhưng bạn có thể nối chuỗi và sau đó thực thi nó.

Tôi nhấn mạnh đậm. Bạn chỉ cần lấy đúng trích dẫn:

test=# \set test 'some value'
test=# \set code 'DECLARE v_test text := ' :'test' '; BEGIN RAISE NOTICE ''test var is: %'', v_test; END'
test=# DO :'code';
NOTICE: test var is: some value
DO
test=#

Nhưng tôi muốn tạo một hàm (tạm thời) và chuyển giá trị làm tham số (nơi nội suy psql hoạt động). Chi tiết trong câu trả lời liên quan này trên dba.SE:




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để thiết lập đường dẫn cho ứng dụng postgresql heroku?

  2. Lọc ra các bản ghi tiếp theo trùng lặp trong một CHỌN

  3. Liệt kê tất cả các khóa ngoại PostgreSQL

  4. LỖI:kế hoạch đã lưu trong bộ nhớ cache không được thay đổi loại kết quả khi trộn DDL với SELECT qua JDBC

  5. Bắt đầu và điền vùng chứa Postgres trong Docker