#sql #postgresql #variables #declare
#sql #postgresql #переменные #объявляет
Вопрос:
Я пытаюсь объявить текстовую переменную и вставить ее в свою movie
таблицу.
Это то, что я делаю:
DECLARE movie_plot TEXT;
movie_plot := '{test}';
INSERT INTO movie(plot) VALUES (movie_plot);
Это выдает мне эту ошибку:
ERROR: syntax error at or near "TEXT"
LINE 1: DECLARE movie_plot TEXT;
^
SQL state: 42601
Character: 20
Я уже проверил некоторые решаемые вопросы, похожие на мои, и этот синтаксис кажется правильным. Я видел, что я мог бы использовать WITH
для решения проблемы, но я хотел бы использовать DECLARE
.
Комментарии:
1.
DECLARE
(и, следовательно, переменные) могут использоваться только внутри кода PL / pgSQL, а не в SQL2. «Я уже проверил некоторые решаемые вопросы, похожие на мои, и этот синтаксис кажется правильным». — Не в SQL в Postgres, как уже прокомментировал @a_horse_with_no_name . Возможно, другие вопросы были нацелены на другую СУБД, а не на Postgres. (SQL Server?). Может быть, вы хотите объяснить основную проблему, которую пытаетесь решить с помощью своего подхода, чтобы получить помощь в этом .
3. Но я использую Postgres, я пишу свой SQL на pgAdmin
Ответ №1:
Возможно, вы хотите использовать current_setting
:
SET my_vars.movie_plot = 'test';
INSERT INTO movie(plot) VALUES (current_setting('my_vars.movie_plot'));