Комментарии 8
Оффтопичный вопрос, не знаю куда с ним прикнуться. Почему в Postgres нет SQL-функции, выбрасывающей исключение?
Сейчас у меня почти в каждом проекте есть подобный код:
create or replace function pg_temp.raise_exception(s text)
returns text language plpgsql as
$$
begin
raise exception '%', s;
end;
$$;
Это позволяет прямо из SQL-выражения выбрасывать исключение (например, когда очевидно что с данными обнаружилась какая-то беда).
Можно ли такую функцию внедрить как функцию SQL прямо в код движка или есть какой-то принципиальный момент не позволяющий этого? Причём, желательно иметь возможность также указать код ошибки (хочется внутри проекта определять свои кастомные коды, а не кодировать их внутри текстовой строки сообщения об ошибке)
Может я не понял вопрос, но разве это не оно?
Это PL/pgSQL - один из языков, встроенных в Postgres. Именно через него я в своём примере вызываю исключение.
А я бы хотел встроенную в сам язык SQL, такую же как sin()/cos() и т.д.
Ответа на вопрос, поставленного в заголовки, в статье нет.
Назвали бы: ora2pg краткое описание возможностей.
Хотелось бы в статье увидеть обоснование выбора. Почему вообще Postgres? А не MySQL, например?
Как успешно мигрировать с Oracle на Postgres Pro Enterprise