Diverses sources (par exemple Wikipedia , PSOUG ) indiquent qu'Oracle null
n'a pas de type. Est-ce vrai?
Qu'en est-il des autres SGBDR?
Oracle:
Le null
littéral n'a pas de type, mais
null
peut être converti en n'importe quel type, et cela peut être nécessaire lorsque
contrôler le type de retour de la decode
fonction, par exemple:
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
lorsque le premier bloc de requête comprend unnull
null
les valeurs stockées dans la base de données ont toujours un type:
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, binaire (0)
la source
select isnumeric(null)
= 0 ... intéressantOracle est en quelque sorte un type de chaîne .
C'est ce que ADO Reader me dit. voici un script Powershell:
Ça donne
Notez la ligne
ProviderSpecificDataType: System.Data.OracleClient.OracleString
la source
postgres:
la source