Oracle - ошибка «Данные не найдены» и запрос на использование с NVL - PullRequest
0 голосов
/ 31 октября 2011
SELECT NVL(FIELD1,0),NVL(FIELD2,0)
    INTO var1, var2
    FROM TABLEONE
    WHERE SomeField_ID = 11111
    AND SomeOtherFieldID in (1,2)
    AND SomeStatusID in (250,360)

Это внутри триггера, и я не получаю данных об ошибке.Разве nvl не должен заменять 0 на обе переменные?Как заменить 0, если записи не найдены?

Я ценю вашу помощь.

1 Ответ

3 голосов
/ 31 октября 2011

Вы получаете no data found, потому что ваш запрос не возвращает никаких строк, а не из-за вызова nvl ...

nvl будет вести себя так, как вы ожидаете:

if field1 == Null:
    return 0
else:
    return field1

Возможно, ваше предложение where фильтрует все строки.

WHERE SomeField_ID = 11111
AND SomeOtherFieldID in (1,2)
AND SomeStatusID in (250,360)
...