Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Логические операции / 12 сообщений из 12, страница 1 из 1
14.11.2002, 13:59
    #32067916
Mich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логические операции
Hi all!
Пишу в триггере IF (:NEW.CH_BEGIN<>NULL) XOR (:NEW.CH_END<>NULL) и далее по тексту... При сохранении получаю ошибку. :( Помнится надо было разобраться в каком-то скриптовом языке, и я с изумлением обнаружил отсутствие XOR. Вообще. Неужели кошмар возвращается...
P.S. Меняю XOR на AND - все нормально, т.е. конструкция записана верно.
...
Рейтинг: 0 / 0
14.11.2002, 14:42
    #32067946
.dba
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логические операции
Правильно, xor не поддержвается. Можно выразить его через or и and.

Странно, что конструкция "<> null" работает. По идее правильно "is not null"
...
Рейтинг: 0 / 0
14.11.2002, 15:23
    #32067978
Mich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логические операции
Да, действительно is not null лучше. Однако и "<> null" работает.
А такое крохоборство, как нереализованный XOR заставляет задуматься, сколько еще грабель припасено для программиста у Oracle...
Спасибо за ответ!
________
...
Рейтинг: 0 / 0
14.11.2002, 15:42
    #32067994
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логические операции
Пиши тогда процедуру на Java, передавай туда параметры и делай с ними всё что хочешь. Я думаю Oracle правильно сделали что не стали нагружать Pl/SQL новыми конструкиями, а просто внедрили в базу Java.
...
Рейтинг: 0 / 0
14.11.2002, 17:05
    #32068047
ShgGena
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логические операции
по поводу ? <> null
работает но следует учесть что:

(null <> null) = TRUE
...
Рейтинг: 0 / 0
14.11.2002, 17:10
    #32068051
softy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логические операции
правильное замечание
...
Рейтинг: 0 / 0
14.11.2002, 19:39
    #32068114
Славик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логические операции
Прогнали!!!
null<>null ->FALSE
null=null ->FALSE
null is null ->TRUE
Код: plaintext
1.
2.
3.
4.
begin
if null<>null then dbms_output.PUT_LINE('TRUE'); else  dbms_output.PUT_LINE('FALSE'); end if;
if null=null then dbms_output.PUT_LINE('TRUE'); else  dbms_output.PUT_LINE('FALSE'); end if;
if null is null then dbms_output.PUT_LINE('TRUE'); else  dbms_output.PUT_LINE('FALSE'); end if;
end;
...
Рейтинг: 0 / 0
15.11.2002, 03:05
    #32068160
Animal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логические операции
А не кажется ли Вам, господа, что

null<>null ->NULL
null=null ->NULL
null is null ->TRUE
...
Рейтинг: 0 / 0
15.11.2002, 04:49
    #32068163
Animal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логические операции
Попробуйте

if null<>null then dbms_output.PUT_LINE('TRUE'); else if not(null<>null) then dbms_output.PUT_LINE('False'); else dbms_output.PUT_LINE('NULL'); end if; end if;
...
Рейтинг: 0 / 0
15.11.2002, 10:21
    #32068202
Славик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логические операции
Ноги ростут отсюда:
Код: plaintext
1.
2.
3.
begin
if null then dbms_output.PUT_LINE('TRUE'); else  dbms_output.PUT_LINE('FALSE'); end if;
if not(null) then dbms_output.PUT_LINE('TRUE'); else  dbms_output.PUT_LINE('FALSE'); end if;
end;

Код: plaintext
1.
FALSE
FALSE
...
Рейтинг: 0 / 0
15.11.2002, 10:53
    #32068214
Animal
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логические операции
Ноги растут иммено из определения "NULL- не известно что"
соответственно "не известно что" не может быть равно или не равно "не известно что", потому что нет ни какой гарантии, что эти значения совпадут или не совпадут.
...
Рейтинг: 0 / 0
16.11.2002, 02:39
    #32068588
vskv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Логические операции
Напиши обычную PL/SQL функцию, которая считает XOR используя элементарные функции.
Ведь по определению
Код: plaintext
A xor B = (A and (not B)) or ((not A) and B)
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Логические операции / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]