Я пытаюсь создать следующий SQL (единственный язык, который мне нужен для моего варианта использования), определяемую пользователем функцию в PostgreSQL.
CREATE function sql_replace(textinput text,pattern character,lefttext integer,righttext integer)
returns text AS $$
DECLARE strlength integer default 0;
BEGIN
strlength = length($1);
return substr($1,1,$3 )
||regexp_replace(substr($1,$3+1,(strlength-$3-$4)),'[0-9]',$2)
||substr($1,(strlength-$4+1),$4 );
-- Additional logic
END;
$$ language SQL VOLATILE;
Я обнаружил ошибку около строки 3 в заявлении об объявлении. Я попытался сделать sh оператор объявления внутри блока begin, но это не помогло. Я также попытался выровнять тип ввода с SQL, но получил ту же ошибку.