sql >> Databasteknik >  >> RDS >> PostgreSQL

Skicka ett schemanamn och tabellnamn dynamiskt i FROM i en urvalsfråga i Postgres

Du behöver inte dessa lokala variabler för schema och tabell. Använd formatalternativet för att konstruera frågorna och EXECUTE för att köra den dynamiskt

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; 

Om du vill returnera resultatet av en dynamisk fråga kan du använda

RETURNS TABLE alternativet och gör sedan RETURN QUERY EXECUTE för att returnera resultat från frågan.



  1. När jag väl har aktiverat modeller i django, varför kan jag inte fråga dem direkt i postgresql pgAdmin UI?

  2. Hur skapar och lagrar jag md5-lösenord i mysql

  3. anslutande orakel från r

  4. Oracle Database Security – Kryptering och dekryptering