Если я выполняю отдельные инструкции SQL на рабочем листе (например, CREATE ROLE my_user LOGIN PASSWORD 'my_pwd' VALID UNTIL 'infinity';
), то работает правильно. Подведем в анонимном блоке, как это:Как выполнить анонимный блок plpgsql в Oracle SQL Developer?
DO
$$
BEGIN
CREATE ROLE my_user LOGIN PASSWORD 'my_pwd' VALID UNTIL 'infinity';
END
$$;
и я получаю следующее сообщение об ошибке:
Error starting at line : 3 in command -
BEGIN
CREATE ROLE my_user LOGIN PASSWORD 'my_pwd' VALID UNTIL 'infinity';
END
$$;
Error report -
ERROR: syntax error at or near "CREATE"
Position: 10
Однако тот же сценарий отлично работает, когда я исполню ее в Psql оболочке. Мне что-то не хватает?
Использование:
PostgreSQL версии 9.4
драйвер Postgres JDBC для PostgreSQL 9.3-1102.jdbc41
SQL Developer версии 4.0 (JDK 1.7.0_71)
Вы пытались '/' на одной строке после блока? Я не думаю, что ** Oracle ** SQL Developer понимает долларовое цитирование Postgres. Таким образом, вы также можете использовать обычные одинарные кавычки вместо '$$' (конечно, вам нужно удвоить встроенные одинарные кавычки) –
Пробовал и получил тот же результат. – Ragnar
Тогда я думаю, что SQL-разработчик Oracle не является хорошим выбором для работы с Postgres. –