postgres - ОШИБКА: синтаксическая ошибка в или около "COST" - PullRequest
0 голосов
/ 19 апреля 2010

РЕДАКТИРОВАТЬ Извлечение COST 100 заставило команду пройти, однако я все еще не могу выполнить свой запрос, потому что он выдает эту ошибку:

ERROR:  function group_concat(character) does not exist
HINT:  No function matches the given name and argument types. You may need to add explicit type casts.

Запрос, который я запускаю, таков:

select tpid, group_concat(z) as z,                                                                                                                                                    
    group_concat(cast(r as char(2))) as r,                                                                                                                                   
    group_concat(to_char(datecreated,'DD-Mon-YYYY HH12:MI am')) as datecreated,                                                                                                        
    group_concat(to_char(datemodified,'DD-Mon-YYYY HH12:MI am')) as datemodified                                                                                                       
    from tpids group by tpid order by tpid, zip

Кажется, эта функция работает локально, но ее перемещение в сети приводит к этой ошибке ... Я что-то упускаю?

CREATE OR REPLACE FUNCTION group_concat(text, text)
  RETURNS text AS
$BODY$
SELECT CASE
WHEN $2 IS NULL THEN $1
WHEN $1 IS NULL THEN $2
ELSE $1 operator(pg_catalog.||) ',' operator(pg_catalog.||) $2
END
$BODY$
  LANGUAGE 'sql' IMMUTABLE
  COST 100;
ALTER FUNCTION group_concat(text, text) OWNER TO j76dd3;

1 Ответ

1 голос
/ 19 апреля 2010

Как говорится в сообщении с подсказкой, в вашей хранимой процедуре отсутствует аргумент. Ожидается 2 аргумента, но в вашей колонке указано:

group_concat(cast(r as char(2))) as r,
group_concat(to_char(datecreated,'DD-Mon-YYYY HH12:MI am')) as datecreated,
group_concat(to_char(datemodified,'DD-Mon-YYYY HH12:MI am')) as datemodified        

Вы поставляете только один.

Начиная с PostgreSQL 8.4 допускаются значения по умолчанию для аргументов. Посмотрите на ссылку для получения дополнительной информации и примеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...