PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Предайте динамично име на схема и име на таблица във FROM в заявка за избор в Postgres

Не се нуждаете от тези локални променливи за схема и таблица. Използвайте опцията за форматиране, за да конструирате заявките и EXECUTE за да го стартирате динамично

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; 

Ако искате да върнете резултата от динамична заявка, можете да използвате

RETURNS TABLE и след това направете RETURN QUERY EXECUTE за да върнете резултати от заявката.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Psycopg2 copy_from извежда DataError:невалиден входен синтаксис за цяло число

  2. трябва ли да активирам обединяването на изрази c3p0?

  3. Аномалия при запис на изкривяване в Oracle и PostgreSQL не връща назад транзакция

  4. Как да получите състояние на изпълнявана заявка в базата данни postgresql

  5. Django:дублирана стойност на ключ нарушава уникалното ограничение