Ошибка создания процедуры из-за точек с запятой

У меня есть база данных Postgres, к которой я подключаюсь с помощью SQL Squirrel (которая под капотом использует драйвер jdbc postgres).

Когда я запускаю следующий оператор (который является действительным SQL, скопированный непосредственно с этой страницы)

CREATE PROCEDURE insert_data(a integer, b integer)
LANGUAGE SQL
AS $$
INSERT INTO tbl VALUES (a);
INSERT INTO tbl VALUES (b);
$$;

CALL insert_data(1, 2);

Я получаю следующую ошибку

Error: Unterminated dollar quote started at position 67 in SQL CREATE PROCEDURE insert_data(a integer, b integer)
LANGUAGE SQL
AS $$
INSERT INTO tbl VALUES (a). Expected terminating $$
SQLState:  42601
ErrorCode: 0
Error occurred in:
CREATE PROCEDURE insert_data(a integer, b integer)
LANGUAGE SQL
AS $$
INSERT INTO tbl VALUES (a)

Кажется, что где-то по пути первая точка с запятой интерпретируется как конец утверждения.

Есть ли способ избежать точки с запятой, чтобы процедура создавалась правильно?

Пожалуйста, не предлагайте использовать psql, я хочу продолжать использовать SQL Squirrel.

0 ответов

Другие вопросы по тегам