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)... ...