Как исправить мою функцию, которая выдает ошибку: «Литерал некорректного массива» «Подробно: неожиданный конец ввода»? - PullRequest
0 голосов
/ 07 июня 2019

Я создаю функцию для моей базы данных postgresql, и мне нужно кодировать 6-битную строку как символы ascii. Хотя я получаю ОШИБКУ: неправильный массив буквально. Как я могу решить это?

Чтобы решить эту проблему, я уже изучил использование правильных скобок и одинарных кавычек. Но мне пока не удалось.

`CREATE OR REPLACE FUNCTION example(payload bit varying) 
RETURNS text AS $str$ 
DECLARE 
    str text := ''; 
    len int; 
    i int; 
    tbl text[] := '{@,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,[,\\,],^,_," ",!,"\"",#,$,%,&,‘,(,),*,+,",-,.,/,0,1,2,3,4,5,6,7,8,9,:,;,<,=,>,?}'::text[];
BEGIN
        .....
END; 
$str$ LANGUAGE plpgsql 
IMMUTABLE 
;`

Below the error message:
ERROR:  malformed array literal: `"@,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,[,\\,],^,_," ",!,"\"",#,$,%,&,‘,(,),*,+,",-,.,/,0,1,2,3,4,5,6,7,8,9,:,;,<,=,>,?}"

LINE 1: SELECT '{@,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y...
               ^
DETAIL:  Unexpected end of input.
QUERY:  SELECT '{@,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,[,\\,],^,_," ",!,"\"",#,$,%,&,‘,(,),*,+,",-,.,/,0,1,2,3,4,5,6,7,8,9,:,;,<,=,>,?}'::text[]

CONTEXT:  PL/pgSQL function example(bit varying) line 7 during statement block local variable initialization
SQL state: 22P02
...