Várias fontes (por exemplo , Wikipedia , PSOUG ) afirmam que o Oracle null
não possui um tipo. Isso é verdade?
E quanto a outros RDBMSs?
Oráculo:
O null
literal não tem um tipo, mas
null
pode ser convertido para qualquer tipo, e isso pode ser necessário quando
controlar o tipo de retorno da decode
função, por exemplo:
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
quando o primeiro bloco de consulta inclui umnull
null
valores armazenados no banco de dados sempre têm um tipo:
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ário (0)
fonte
select isnumeric(null)
= 0 ... interessanteOracle, em certo sentido, é algum tipo de string .
Isso é o que o ADO Reader me diz. aqui está um script do Powershell:
Isso dá
Observe a linha
ProviderSpecificDataType: System.Data.OracleClient.OracleString
fonte
postgres:
fonte