2015-11-18 4 views
1

Это мой код:PostgreSQL - Ошибка синтаксиса при назначении переменной?

amount INTEGER; 

amount := select count(*) from moneyTable; 

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

ERROR: syntax error at or near "select" 

Может кто-то помочь мне.

+0

Что вы хотите достичь? – trkoch

+0

@trkoch, это хороший вопрос, так как я не уверен, что мой ответ правильный –

+0

@MrsEd im пытается сохранить количество кортежей в переменной. Затем используйте эту переменную позже для другой обработки. Но в настоящее время я получаю эту синтаксическую ошибку, и я понятия не имею, почему это происходит. – Brandon

ответ

2

От fine manual:

An assignment of a value to a PL/pgSQL variable is written as:

variable { := | = } expression; 

но select ... не является выражением. Если вы хотите, чтобы присвоить значения из отобранного переменных, вы хотите использовать INTO:

select count(*) into amount from moneyTable; 
--    ^^^^^^^^^^^ 
+0

Теперь im получает ошибку ERROR: синтаксическая ошибка в точке или рядом с "*". CONTEXT: недопустимое имя типа "count (*) на сумму from moneyTable" – Brandon

+0

Должен работать нормально (http://sqlfiddle.com/#!15/6558d/1 (извините за форматирование функции, sqlfiddle имеет проблемы с многострочным долларом Кажется, что строки с нулевой точкой)). Вы делаете это внутри функции, правильно? –

+0

У меня это в части декларации моей функции – Brandon

Смежные вопросы