Mapeamentos de tipo de dados Oracle

A tabela a seguir lista os tipos de dados Oracle e seus mapeamentos para o OracleDataReader.

Tipo de dados de Oracle Tipo de dados do .NET Framework retornado por OracleDataReader.GetValue Tipo de dados OracleClient retornado por OracleDataReader.GetOracleValue Comentários
BFILE Byte[] OracleBFile
BLOB Byte[] OracleLob
CHAR Cadeia de caracteres OracleString
CLOB Cadeia de caracteres OracleLob
DATE DateTime OracleDateTime
FLOAT Decimal OracleNumber Esse tipo de dados é um alias do tipo de dados NUMBER e foi projetado de modo que o OracleDataReaderretorne um System.Decimal ou OracleNumber em vez de um valor de ponto flutuante. O uso do tipo de dados do .NET Framework pode causar um estouro.
INTEGER Decimal OracleNumber Esse tipo de dados é um alias do tipo de dados NUMBER(38) e foi projetado de modo que o OracleDataReader retorne um System.Decimal ou OracleNumber em vez de um valor inteiro. O uso do tipo de dados do .NET Framework pode causar um estouro.
INTERVAL YEAR TO MONTH Int32 OracleMonthSpan
INTERVAL DAY TO SECOND TimeSpan OracleTimeSpan
LONG Cadeia de caracteres OracleString
LONG RAW Byte[] OracleBinary
NCHAR Cadeia de caracteres OracleString
NCLOB Cadeia de caracteres OracleLob
NUMBER Decimal OracleNumber O uso do tipo de dados do .NET Framework pode causar um estouro.
NVARCHAR2 Cadeia de caracteres OracleString
RAW Byte[] OracleBinary
REF CURSOR Não há suporte para o tipo de dados REF CURSOR do Oracle no objeto OracleDataReader.
ROWID Cadeia de caracteres OracleString
TIMESTAMP DateTime OracleDateTime
TIMESTAMP WITH LOCAL TIME ZONE DateTime OracleDateTime
TIMESTAMP WITH TIME ZONE DateTime OracleDateTime
UNSIGNED INTEGER Número OracleNumber Este tipo de dados é um alias do tipo de dados NUMBER(38) e foi projetado de modo que o OracleDataReader retorne um System.Decimal ou OracleNumber em vez de um valor inteiro sem sinal. O uso do tipo de dados do .NET Framework pode causar um estouro.
VARCHAR2 Cadeia de caracteres OracleString

A tabela a seguir lista os tipos de dados do Oracle e os tipos de dados do .NET Framework (System.Data.DbType e OracleType) a serem usados ao associá-los como parâmetros.

Tipo de dados de Oracle Enumeração DbType a ser associada como um parâmetro Enumeração OracleType a ser associada como um parâmetro Comentários
BFILE BFile O Oracle só permite associar um BFILE como um parâmetro BFILE. O Provedor de Dados .NET para Oracle não construirá um automaticamente se você tentar associar um valor não BFILE, como byte[] ou OracleBinary.
BLOB Blob O Oracle só permite associar um BLOB como um parâmetro BLOB. O Provedor de Dados .NET para Oracle não construirá um automaticamente se você tentar associar um valor não BLOB, como byte[] ou OracleBinary.
CHAR AnsiStringFixedLength Char
CLOB Clob O Oracle só permite associar um CLOB como um parâmetro CLOB. O Provedor de Dados .NET para Oracle não construirá um automaticamente se você tentar associar um valor não CLOB, como System.String ou OracleString.
DATE DateTime DateTime
FLOAT Single, Double, Decimal Float, Double, Number Size determina o System.Data.DBType e OracleType.
INTEGER SByte, Int16, Int32, Int64, Decimal SByte, Int16, Int32, Number Size determina o System.Data.DBType e OracleType.
INTERVAL YEAR TO MONTH Int32 IntervalYearToMonth OracleType só está disponível com o uso do software cliente e servidor Oracle 9i.
INTERVAL DAY TO SECOND Objeto IntervalDayToSecond OracleType só está disponível com o uso do software cliente e servidor Oracle 9i.
LONG AnsiString LongVarChar
LONG RAW Binary LongRaw
NCHAR StringFixedLength NChar
NCLOB NClob O Oracle só permite associar um NCLOB como um parâmetro NCLOB. O Provedor de Dados .NET para Oracle não construirá um automaticamente se você tentar associar um valor não NCLOB, como System.String ou OracleString.
NUMBER VarNumeric Número
NVARCHAR2 Cadeia de caracteres NVarChar
RAW Binary Bruta
REF CURSOR Cursor Para obter mais informações, confira REF CURSORs do Oracle.
ROWID AnsiString Rowid
TIMESTAMP DateTime Timestamp OracleType só está disponível com o uso do software cliente e servidor Oracle 9i.
TIMESTAMP WITH LOCAL TIME ZONE DateTime TimestampLocal OracleType só está disponível com o uso do software cliente e servidor Oracle 9i.
TIMESTAMP WITH TIME ZONE DateTime TimestampWithTz OracleType só está disponível com o uso do software cliente e servidor Oracle 9i.
UNSIGNED INTEGER Byte, UInt16, UInt32, UInt64, Decimal Byte, UInt16, Uint32, Number Size determina o System.Data.DBType e OracleType.
VARCHAR2 AnsiString VarChar

Os valores InputOutput, Output e ReturnValueParameterDirection usados pela propriedade Value do objeto OracleParameter são tipos de dados do .NET Framework, a menos que o valor da entrada seja um tipo de dados do Oracle (por exemplo, OracleNumber ou OracleString). Isso não se aplica aos tipos de dados REF CURSOR, BFILE ou LOB.

Confira também