Re: Dynamic SQL - transition from ms to pg

Поиск
Список
Период
Сортировка
От Erik Darling
Тема Re: Dynamic SQL - transition from ms to pg
Дата
Msg-id CAO+EYw+J8=ayhjET8X66bzTm6jv-G+=doCWjAHnAm92aA1sWzg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Dynamic SQL - transition from ms to pg  (Pavel Stehule <pavel.stehule@gmail.com>)
Список pgsql-general

Thank you Pavel. That's exactly what I needed to get started.

On Jan 6, 2014 3:25 AM, "Pavel Stehule" <pavel.stehule@gmail.com> wrote:
Hello



2014/1/6 Erik Darling <edarling80@gmail.com>

Hi,

I've been developing for MS SQL around four years. I'm starting out with some work in Postgresql next week, and I'd like to know if there's any equivalent way to do something like this (from my word press)

http://sqldriver.wordpress.com/2013/12/09/generating-inserts-dynamically/

My question is mainly about creating comma delimited column names as variables and executing dynamic SQL with them. I've spent some time trying to find an answer and I seem to keep running into the same few stack questions.

Any advice is appreciated. I think I'm going to end up needing dynamic queries like what I've written for similar tasks moving data from files to staging tables and then to a larger set of data warehouse tables and setting up either views (perhaps materialized?) or more tables for reporting.


It can look some like

CREATE OR REPLACE FUNCTION sample_insert_noflag(table_from text, table_to text, query_filter text)
RETURNS void AS $$
DECLARE
  sql text;
  column_names text;
BEGIN
  column_names = (SELECT string_agg(quote_ident(t.column_name), ',')
                    FROM information_schema.tables t
                   WHERE t.table_name = table_from
                     AND t.column_name <> 'STATUSFLAG');
  sql := format('INSERT INTO %I(%s) SELECT %s FROM %I %s',
             table_to, column_names, table_from, query_filter);
  RAISE NOTICE '%', sql;
  EXECUTE sql;
  RETURN;
END;
$$ LANGUAGE plpgsql STRICT;
 
Regards

Pavel Stehule

Thanks,
Erik


В списке pgsql-general по дате отправления:

Предыдущее
От: Shuwn Yuan Tee
Дата:
Сообщение: postgres_fdw foreign table performance Issue
Следующее
От: "Pfuntner, John"
Дата:
Сообщение: Do I have to free storage in a UDF if I raise an error?