Postgres - передача имени таблицы в качестве параметра и сохранение результата в файле

    Create Or Replace Function totalRecords (tablename TEXT) Returns integer as $total$
    Declare
      total integer;

      Begin
       select count  (*)  into  total  from''|| tablename ||' 'where now() - cast(date_dimension_year||'-'||date_dimension_month||'-'||date_dimension_day AS date) < INTERVAL '3 months' ;
        RETURN total;
       END;
$total$ LANGUAGE plpgsql;

у меня есть задача, которая состоит в том, чтобы создать функцию, которая проверяет БД на наличие записей при заданном условии, если она удовлетворена, должна выводить результат в текстовый файл. Приведенный выше вставленный код - это то, что я безуспешно играл. Я получаю синтаксическую ошибку. ... может ли кто-нибудь помочь мне в этом? Я использую БД postgres.


person user3393089    schedule 25.04.2014    source источник
comment
возможный дубликат имя таблицы в качестве параметра функции PostgreSQL   -  person a_horse_with_no_name    schedule 29.04.2014


Ответы (1)


Я решил вопрос таким образом

 Begin
 execute 'select count(*) from ' ||tablename||
' where cast(date_dimension_year || ''-'' || date_dimension_month || ''-''||date_dimension_day as date) 
not between (current_date - interval ''13 months'') and current_date' into total ;

Мне пришлось присвоить целое число в конце, и правильное закрытие цитаты (') сработало для меня (я просто вставил часть функции, в которой у меня возникла проблема)

Спасибо за вашу помощь.

person user3393089    schedule 07.05.2014