Verschiedene Quellen (zB Wikipedia , PSOUG ) geben an, dass Oracle null
keinen Typ hat. Ist das wahr?
Was ist mit anderen RDBMSs?
Orakel:
Das null
Literal hat keinen Typ, aber
null
kann auf jeden Typ gegossen werden, und dies kann erforderlich sein, wenn
Steuerung des Rückgabetyps der decode
Funktion, zB:
select decode('A','B',to_char(null),'A','1') from dual;
DECODE('A','B',TO_CHAR(NULL),'A','1')
-------------------------------------
1
select decode('A','B',to_number(null),'A','1') from dual;
DECODE('A','B',TO_NUMBER(NULL),'A','1')
---------------------------------------
1
union
wenn der erste Abfrageblock a enthältnull
null
In der Datenbank gespeicherte Werte haben immer einen Typ:
create table t(n integer, s varchar(10));
insert into t values(null, null);
select decode('A','B',n,'A','1') from t;
DECODE('A','B',N,'A','1')
-------------------------
1
select decode('A','B',s,'A','1') from t;
DECODE('A','B',S,'A','1')
-------------------------
1
SQL Server, Int
MySQL, binär (0)
quelle
select isnumeric(null)
= 0 ... interessantOracle ist in gewissem Sinne ein String- Typ.
Das sagt mir ADO Reader. Hier ist ein Powershell-Skript:
Das gibt
Beachten Sie die Linie
ProviderSpecificDataType: System.Data.OracleClient.OracleString
quelle
postgres:
quelle