How to return ARRAY from SQL function?

Поиск
Список
Период
Сортировка
От Alexander Farber
Тема How to return ARRAY from SQL function?
Дата
Msg-id CAADeyWgc-dXvuPP+Sq-xsLiauKdTZYmuco9xePa2y0a0x1PTKw@mail.gmail.com
обсуждение исходный текст
Ответы Re: How to return ARRAY from SQL function?  (Laurenz Albe <laurenz.albe@cybertec.at>)
Список pgsql-general
Hello,

in PostgreSQL 10.8 the following works -

words_ru=>         SELECT ARRAY[
words_ru->                 '*', '*', 'А', 'А', 'А', 'А', 'А', 'А', 'А', 'А',
words_ru->                 'Б', 'Б', 'В', 'В', 'В', 'В', 'Г', 'Г', 'Д', 'Д',
words_ru->                 'Д', 'Д', 'Е', 'Е', 'Е', 'Е', 'Е', 'Е', 'Е', 'Е',
words_ru->                 'Е', 'Ж', 'З', 'З', 'И', 'И', 'И', 'И', 'И', 'Й',
words_ru->                 'К', 'К', 'К', 'К', 'Л', 'Л', 'Л', 'Л', 'М', 'М',
words_ru->                 'М', 'Н', 'Н', 'Н', 'Н', 'Н', 'О', 'О', 'О', 'О',
words_ru->                 'О', 'О', 'О', 'О', 'О', 'О', 'П', 'П', 'П', 'П',
words_ru->                 'Р', 'Р', 'Р', 'Р', 'Р', 'С', 'С', 'С', 'С', 'С',
words_ru->                 'Т', 'Т', 'Т', 'Т', 'Т', 'У', 'У', 'У', 'У', 'Ф',
words_ru->                 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ы', 'Ь', 'Ь',
words_ru->                 'Э', 'Ю', 'Я', 'Я'
words_ru->         ];
                                                                                                       array
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
-------------------
 {*,*,А,А,А,А,А,А,А,А,Б,Б,В,В,В,В,Г,Г,Д,Д,Д,Д,Е,Е,Е,Е,Е,Е,Е,Е,Е,Ж,З,З,И,И,И,И,И,Й,К,К,К,К,Л,Л,Л,Л,М,М,М,Н,Н,Н,Н,Н,О,О,О,О,О,О,О,О,О,О,П,П,П,П,Р,Р,Р,Р,Р,С,С,С,С,С,Т,Т,Т,Т,Т,У,У,У,У,Ф,Х,Ц,Ч,Ш,Щ,
Ъ,Ы,Ы,Ь,Ь,Э,Ю,Я,Я}
(1 row)

But creating an SQL function fails -

words_ru=> CREATE OR REPLACE FUNCTION words_all_letters()
words_ru->         RETURNS array AS
words_ru-> $func$
words_ru$>         SELECT ARRAY[
words_ru$>                 '*', '*', 'А', 'А', 'А', 'А', 'А', 'А', 'А', 'А',
words_ru$>                 'Б', 'Б', 'В', 'В', 'В', 'В', 'Г', 'Г', 'Д', 'Д',
words_ru$>                 'Д', 'Д', 'Е', 'Е', 'Е', 'Е', 'Е', 'Е', 'Е', 'Е',
words_ru$>                 'Е', 'Ж', 'З', 'З', 'И', 'И', 'И', 'И', 'И', 'Й',
words_ru$>                 'К', 'К', 'К', 'К', 'Л', 'Л', 'Л', 'Л', 'М', 'М',
words_ru$>                 'М', 'Н', 'Н', 'Н', 'Н', 'Н', 'О', 'О', 'О', 'О',
words_ru$>                 'О', 'О', 'О', 'О', 'О', 'О', 'П', 'П', 'П', 'П',
words_ru$>                 'Р', 'Р', 'Р', 'Р', 'Р', 'С', 'С', 'С', 'С', 'С',
words_ru$>                 'Т', 'Т', 'Т', 'Т', 'Т', 'У', 'У', 'У', 'У', 'Ф',
words_ru$>                 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ы', 'Ы', 'Ь', 'Ь',
words_ru$>                 'Э', 'Ю', 'Я', 'Я'
words_ru$>         ];
words_ru$> $func$ LANGUAGE sql IMMUTABLE;
ERROR:  42601: syntax error at or near "array"
LINE 2:         RETURNS array AS
                        ^
LOCATION:  scanner_yyerror, scan.l:1128

Is it possible to create and return an array in an SQL custom function?

Thank you
Alex

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

Предыдущее
От: Daulat Ram
Дата:
Сообщение: How to connect to toad Edge with postgresql running with dockercontainer?
Следующее
От: Laurenz Albe
Дата:
Сообщение: Re: How to return ARRAY from SQL function?