plpgsql- все статьи тега
Инструмент для перевода Oracle PL / SQL в Postgresql PL / pgSQL [закрыто]
Существует ли инструмент (предпочтительно бесплатный), который переведет язык хранимых процедур Oracle PL/SQL в язык хранимых процедур Postgresql? ...
Усечение всех таблиц в базе данных Postgres
мне регулярно нужно удалять все данные из моей базы данных PostgreSQL перед перестроением. Как бы я сделал это непосредственно в SQL? на данный момент мне удалось придумать инструкцию SQL, которая возвращает все команды, которые мне нужно выполнить: SELECT 'TRUNCATE TABLE ' || tablename || ';' FROM pg_tables WHERE tableowner='MYUSER'; но я не вижу способа выполнить их программно, как только они у меня есть. ...
Хранить результат запроса в переменной, используя в PL/pgSQL
как назначить результат запроса переменной в PL / pgSQL, процедурном языке PostgreSQL? у меня есть функция: CREATE OR REPLACE FUNCTION test(x numeric) RETURNS character varying AS $BODY$ DECLARE name character varying(255); begin name ='SELECT name FROM test_table where id='||x; if(name='test')then --do somthing else --do the else part end if; end; return -- return my process result here $BODY$ LANGUAGE plpgsql VOLATILE В приведенной выше функции мне нужно сохранить результат этог ...
Для чего используются '$$' в PL/pgSQL
будучи совершенно новым для PL / pgSQL , что означает двойной знак доллара в эта функция: CREATE OR REPLACE FUNCTION check_phone_number(text) RETURNS boolean AS $$ BEGIN IF NOT ~ e'^+d{3} d{3} d{3} d{3}$' THEN RAISE EXCEPTION 'Wrong formated string "%". Expected format is +999 999'; END IF; RETURN true; END; $$ LANGUAGE plpgsql STRICT IMMUTABLE; Я предполагаю, что в RETURNS boolean AS $$,$$ является заполнителем. последняя строка немного загадочна:$$ LANGUAGE plpgsql STRIC ...
Имя таблицы как параметр функции PostgreSQL
Я хочу передать имя таблицы в качестве параметра в функции Postgres. Я попробовал этот код: CREATE OR REPLACE FUNCTION some_f(param character varying) RETURNS integer AS $$ BEGIN IF EXISTS (select * from quote_ident() where quote_ident().id=1) THEN return 1; END IF; return 0; END; $$ LANGUAGE plpgsql; select some_f('table_name'); и я получил это: ERROR: syntax error at or near "." LINE 4: ...elect * from quote_ident() where quote_ident().id=1)... ...