В анонимном блоке у меня есть входная строка, которая пуста/null и хочет проверить ее на непустую строку. Пример:Oracle - Как определить между нулевой и не пустой строкой?
DECLARE
v_notnull varchar2(50):='this string is never null';
v_input varchar2(50):='';
BEGIN
IF trim(v_input) != trim(v_notnull) THEN
dbms_output.put_line('the strings do NOT match');
ELSE
dbms_output.put_line('the strings DO match');
END IF;
END;
Проблема здесь в том, что, когда я запускаю этот блок, выход всегда 'the strings DO match'
хотя я ввод пустой строки ''
(ака нуля) в v_input
, который не является таким же, как строка 'this string is never null'
. Как я могу убедится, что оракул покрывает пустую строку? Когда v_input
пуст, я хочу, чтобы выход был 'the strings do NOT match'
.
Вопрос заключается в том, что ваш код не будет даже компиляции, что вы означает «выход всегда ...» ??? Вам не хватает длины переменных varchar2, которые вы объявили, и это фатальная ошибка. – mathguy
ОК, люди .... Я печатал это по мобильному телефону. Я исправил это в своем вопросе. –
Это, вероятно, одна из самых кратких ссылок на то, как оракул обрабатывает нулевые сравнения: http://www.morganslibrary.org/reference/null.html –