Страница 1 из 1
Проверить ПЕРЕМЕННУЮ на NULL (Триггеры)
Добавлено: 01 окт 2006, 21:53
Михаил Извеков
Не могу сообразить как проверить переменную на NULL. Честно излазил форум, но не нашел.
В триггере (BEFORE UPDATE) есть такой код:
Код: Выделить всё
...
DECLARE VARIABLE VAR_P_SEND INTEGER;
...
IF (NEW.P_SEND <> OLD.P_SEND)
THEN VAR_P_SEND = NEW.P_SEND;
ELSE VAR_P_SEND = NULL;
...
Как мне проверить VAR_P_SEND на NULL?
IF (VAR_P_SEND IS NULL) - говорит, что такого столбца (VAR_P_SEND) в таблице нету.
IF (VAR_P_SEND = NULL) - говорит, что неизвестный Token - NULL.
Добавлено: 02 окт 2006, 01:54
CyberMax
Добавлено: 02 окт 2006, 14:41
WildSery
2 CyberMax:
Без разницы.
Михаил, что-то вы нам недоговариваете. Не пытаетесь ли NEW.VAR_P_SEND проверить или типа того?
Добавлено: 02 окт 2006, 14:56
Dimitry Sibiryakov
Похоже, у аффтара версия сервера где еще не запретили обращаться к полям записи без префиксов NEW/OLD...
Добавлено: 02 окт 2006, 15:13
CyberMax
2
WildSery,
Dimitry Sibiryakov. Я что-то не понял, мы что, разный текст видим? У него есть
переменная "VAR_P_SEND". Вопрос:
Как мне проверить VAR_P_SEND на NULL?
. При чем тут New, Old?

Добавлено: 02 окт 2006, 15:22
WildSery
Как он написал, всё работает правильно.
А так как ошибка у него всё же есть (иначе бы не писал) - то либо предположение Дмитрия, либо он "упростил" пример слишком сильно, а на самом деле там нечто совсем другое.
Добавлено: 02 окт 2006, 15:30
CyberMax
Подытожим

.
2
Михаил Извеков. Выложи весь код проблемного триггера. И версия сервера не помешает.
Добавлено: 02 окт 2006, 18:28
Михаил Извеков
Прошу у всех прощения за беспокойство. Разобрался.
Вначале я написал
(решил что в тексте триггера будет скорее такая проверка нежели IS NULL как в SQL). Получил ошибку на неизвестный токен. Переделал на
- получил ошибку на несуществование поля в таблице. Какое еще думаю поле, это же переменная? Решение подсказал ответ CyberMax - дело в том, что по невнимательности я не заметил, что следующую ошибку я получил уже в другом месте, а именно в запросе с INSERT и уж там-то помогло добавление двоеточия перед именем переменной.
Еще раз простите за беспокойство и спасибо за ответы.