Я плохо знаком с PostgreSQL и использую инструментальное средство формирования запросов в PGAdmin. Я пытаюсь выполнить запросы pgsql, которые используют переменные, но я, может казаться, не разбираюсь в синтаксисе.
Вот демонстрационный запрос, который дает синтаксическую ошибку:
DECLARE
num INTEGER;
BEGIN
num := 3;
PRINT num;
END;
Обновление:
Хорошо, позвольте мне попытаться объяснить. Я происхожу из среды SQL-сервера. В студии управления я могу открыть окно запроса и играть с (T) - SQL-ЗАПРОСЫ.
Например, я могу записать что-то вроде этого:
DECLARE @num INT
SET @num = 3
SELECT @num
Я знаю, что это - немой пример, но я просто пытаюсь объявить переменную и сделать что-то с ним. Я пытаюсь ознакомиться с PL/PGSQL.
Обновление, снова:
Это - я снова. Я пробую сценарий ниже и добираюсь" [ОШИБКА] 7.0-2: синтаксическая ошибка, непредвиденный символ". Это предназначено для работы в PGAdmin?
DECLARE
num INTEGER;
BEGIN
num := 3;
RAISE NOTICE '%', num;
END;
Просто чтобы перефразировать и "конкретизировать" то, что говорят другие: В PostgreSQL нет встроенных процедур . Также отсутствует оператор PRINT . Вы должны:
CREATE OR REPLACE FUNCTION test() RETURNS void AS $$
DECLARE
num INTEGER;
BEGIN
num := 3;
RAISE NOTICE '%', num;
END;
$$ LANGUAGE plpgsql;
SELECT test();
Понятия не имею, чего вы пытаетесь достичь. PostgreSQL не поддерживает такой синтаксис. Подобные ключевые слова (кроме PRINT ?!) есть в PL / pgSQL, который является процедурным языком для создания ФУНКЦИЙ, а не для написания автономных SQL-запросов.
Сам по себе Postgres не поддерживает ничего подобного ( пока ). psql (официальный клиент командной строки) содержит некоторые элементарные сценарии.
Лучшим вариантом для вас является pgAdmin, который уже имеет встроенные сценарии .
Если вы пытаетесь распечатать num
(скажем, для отладки) вы можете попробовать:
RAISE NOTICE '%', num;
http://www.postgresql.org/docs/8.4/static/plpgsql-errors-and-messages.html
PRINT
не означает что-нибудь в PL / pgSQL.