Zurück

Handling von NULL und Leerstrings in Oracle

Ü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;

  • Query mit IS NULL

select count(*) from empty_string_test where phone_number is null;

COUNT(*)
--------
       2

  • Query mit Leerstring ' '

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.