Ошибка запроса при работе с массивами PL / pgSQL - PullRequest
2 голосов
/ 11 сентября 2010

У меня есть эта функция:

create or replace function insert_aereo( aereo_type[] ) returns text as $$
begin
   return 'ok';
end
$$ language plpgsql;

, и это тип параметра, который я создал:

create type aereo_type as (codice int, modello varchar, marca varchar);

Затем я вызываю свою функцию:

select insert_aereo('{123, "ciao", "pippo"}');

но я получаю эту ошибку:

ERROR:  function insert_aereo(unknown) is not unique at character 8
HINT:  Could not choose a best candidate function. You might need to add explicit type casts.
STATEMENT:  select insert_aereo('{123, "ciao", "pippo"}');
ERROR:  function insert_aereo(unknown) is not unique
LINE 1: select insert_aereo('{123, "ciao", "pippo"}');
               ^
HINT:  Could not choose a best candidate function. You might need to add explicit type casts.

Как я могу это исправить?Что я делаю не так?

1 Ответ

1 голос
/ 13 сентября 2010

Вы используете неверный формат для составных типов:

Правильный формат:

'{"(123, ciao, pippo)", "(...)"}

см .: http://www.postgresql.org/docs/8.4/interactive/rowtypes.html

или ARRAY [(1, 'ciao', 'pippo')] :: t []

Pavel

...