2013-07-09 5 views
0

Я написал функцию PostgreSQL, содержащую некоторое время оператор вроде:проверить логическое состояние внутри функции

WHILE id_exist == 'f' LOOP 
    lotto_id = lotto_id + 1; 
    id_exist = check_if_exist(lotto_id, 'lotto', 'id'); 
END LOOP; 

Где id_exist является булева переменная инициализируется вызовом check_if_exist() метод (используется также в то время как код), возвращающего boolean value.

Теперь, когда я пытаюсь вызвать свою функцию, я получаю эту ошибку

ERROR: operator does not exist: boolean == unknown 
LINE 1: SELECT id_exist == 'f' 
        ^
HINT: No operator matches the given name and argument type(s). You might need to add 
explicit type casts. 
QUERY: SELECT id_exist == 'f' 
CONTEXT: PL/pgSQL function "acquistolotto" line 11 at WHILE 

ответ

1

Оператор сравнения является одной знак равенства («=», а не «==»)

Кроме того, сделал вы устанавливаете значение id_exist перед тем, как ввести цикл?

+0

ОК, это право. Но теперь у меня проблема с бесконечным циклом. Я открою еще один вопрос. спасибо Несомненно, я установил это значение, вызывая функцию check_if_exist(), из-за времени – giozh

+0

Если это так, похоже, что ваша функция check_if_exist() всегда возвращает «false». Взгляните на это, во-первых. – Curt

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