Nach langer Zeit mal wieder etwas Selbsterlebtes, das einen Eintrag zu verdienen scheint - wie man eine CTAS-Operation über das nls_date_format torpedieren kann:
SQL> alter session set nls_date_format = 'dd.mm.yyyy hh24:mi:ss'; Session altered. SQL> create table t as select to_date(null) col1 from dual; create table t as select to_date(null) col1 from dual * ERROR at line 1: ORA-01723: zero-length columns are not allowed SQL> alter session set nls_date_format = 'DD-MON-RR'; SQL> create table t as select to_date(null) col1 from dual; Table created.
Somit wird die Tabelle T mit dem einen nls_date_format problemlos angelegt, während das andere Format einen Fehler "ORA-01723: zero-length columns are not allowed" hervorruft. Ist das ein Problem? Vermutlich nicht: sinnvoller wäre hier ohnehin der Einsatz eines CAST-Aufrufs, denn die folgende Variante funktioniert in beiden Fällen:
SQL> create table t as select cast(null as date) col1 from dual;