PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Mengacu pada variabel sesi (\set var='value') dari PL/PGSQL

Anda tidak dapat menggunakan variabel psql di dalam kode plpgsql secara langsung. Substitusi simbol diblokir di dalam string:

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

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

Tetapi Anda dapat mengatur variabel sesi server dan kemudian menggunakan variabel semacam ini dalam kode plpgsql (di sisi server):

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

Anda dapat menggunakan teknik yang sama dari baris perintah, lihat:http://okbob.blogspot.cz/2015/01/how-to-Push-parameters-to-do-statement.html

catatan terakhir - kode

BEGIN
  SELECT some;
END;

tidak valid di plpgsql. Hasil dari SELECT s harus disimpan dalam beberapa variabel. Postgres tidak memiliki kemungkinan untuk mengembalikan hasil SELECT free gratis ke klien - DO pernyataan tidak setara dengan prosedur 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. DROP TABLE Postgresql tidak berfungsi

  2. Bagaimana UPDATE dan PILIH secara bersamaan

  3. Pemeran tipe data Postgres

  4. Pemicu kebakaran pada pembaruan kolomA atau KolomB atau KolomC

  5. Bagaimana cara mendapatkan perbedaan hari/bulan/tahun (tanggal) antara dua tanggal?