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

Berikan nama skema dan nama tabel secara dinamis di FROM dalam kueri pemilihan di Postgres

Anda tidak memerlukan variabel lokal tersebut untuk skema dan tabel. Gunakan opsi format untuk membuat kueri dan EXECUTE untuk menjalankannya secara dinamis

CREATE OR REPLACE FUNCTION xx.fn_build_test_(
 IN p_var_archive_schema character varying,
 IN  p_var_archive_table character varying )
 RETURNS record AS
 $BODY$
 DECLARE
  l_var_test VARCHAR[];

 BEGIN

 SELECT  array
  ( SELECT TO_CHAR(column_name,'YYYYMMDD')
    FROM "test_table"
   WHERE col1 = 1
   ) INTO l_var_test;

   EXECUTE format (
     'select col_name FROM %I.%I',
         p_var_archive_schema,p_var_archive_table) 
      --INTO rec_variable;
END;
$BODY$
LANGUAGE plpgsql
VOLATILE SECURITY INVOKER; 

Jika Anda ingin mengembalikan hasil kueri dinamis, Anda dapat menggunakan

RETURNS TABLE pilihan dan kemudian lakukan RETURN QUERY EXECUTE untuk mengembalikan hasil dari kueri.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hindari kesalahan PG::InvalidTextRepresentation saat menggunakan Postgres UUID di Rails

  2. Bagaimana menghitung hitungan yang tidak digelembungkan dari tabel yang didenormalisasi

  3. Bagaimana cara meminta nilai nol dalam jenis bidang json postgresql?

  4. Bagaimana sisi FROM dari UPDATE berhubungan dengan tabel yang ditargetkan untuk UPDATE?

  5. Fungsi Postgresql dengan pernyataan if