Übersicht
Oft stellt sich die Frage, ob Leerstrings ' ', oder NULL's abgespeichert
sollen und wie Queries für NULLs formuliert werden müssen. Das folgende Beispiel
verdeutlicht diesen Sachverhalt unter Oracle 7/8.
Beispiel
- Man kreiere folgende Tabelle
create table empty_string_test (
name varchar(100),
phone_number varchar(100)
);
- Man fülle sie mit folgenden Werten
insert into empty_string_test
values ('Philip Greenspun','617 253-8574');
insert into empty_string_test
values ('Cotton Seed','');
insert into empty_string_test
values ('Jin Choi',NULL);
commit;
select count(*) from empty_string_test where phone_number is null;
COUNT(*)
--------
2
select count(*) from empty_string_test where phone_number = '';
COUNT(*)
--------
0
Fazit
Oracle behandelt NULL's und Leerstrings gleich, in
Queries darf man deshalb NIE Vergleiche mit "=" formulieren, sondern man muss
ausschliesslich NULL und NOT NOLL verwednen.
|