return (int)OracleConvert.JdbcTypeToOracleType(jdbcType);
}\r
\r
+ protected override IReaderCacheContainer CreateReaderCacheContainer(int jdbcType, int columnIndex) {\r
+ switch ((JavaSqlTypes)jdbcType) {\r
+ case JavaSqlTypes.BINARY_FLOAT:\r
+ jdbcType = (int)JavaSqlTypes.REAL;\r
+ break;\r
+ case JavaSqlTypes.BINARY_DOUBLE:\r
+ jdbcType = (int)JavaSqlTypes.DOUBLE;\r
+ break;\r
+ case JavaSqlTypes.ROWID:\r
+ jdbcType = (int)JavaSqlTypes.VARCHAR;\r
+ break;\r
+// case JavaSqlTypes.CURSOR:\r
+// jdbcType = JavaSqlTypes.OTHER;\r
+// break;\r
+ case JavaSqlTypes.TIMESTAMPNS:\r
+ jdbcType = (int)JavaSqlTypes.TIMESTAMP;\r
+ break;\r
+ case JavaSqlTypes.TIMESTAMPTZ:\r
+ jdbcType = (int)JavaSqlTypes.TIMESTAMP;\r
+ break;\r
+ case JavaSqlTypes.TIMESTAMPLTZ: \r
+ jdbcType = (int)JavaSqlTypes.TIMESTAMP;\r
+ break;\r
+ case JavaSqlTypes.INTERVALYM:\r
+ jdbcType = (int)JavaSqlTypes.INTEGER;\r
+ break;\r
+ case JavaSqlTypes.INTERVALDS:\r
+ jdbcType = (int)JavaSqlTypes.TIMESTAMP;\r
+ break;\r
+ }\r
+ return base.CreateReaderCacheContainer (jdbcType, columnIndex);\r
+ }\r
+\r
+\r
+ protected override void SetSchemaType(DataRow schemaRow, ResultSetMetaData metaData, int columnIndex) {\r
+ JavaSqlTypes columnType = (JavaSqlTypes)metaData.getColumnType(columnIndex);\r
+ switch (columnType) {\r
+ case JavaSqlTypes.BINARY_FLOAT:\r
+ schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
+ schemaRow [(int)SCHEMA_TABLE.DataType] = OracleConvert.TypeOfFloat;\r
+ schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
+ break;\r
+ case JavaSqlTypes.BINARY_DOUBLE:\r
+ schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
+ schemaRow [(int)SCHEMA_TABLE.DataType] = OracleConvert.TypeOfDouble;\r
+ schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
+ break;\r
+ case JavaSqlTypes.ROWID:\r
+ schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
+ schemaRow [(int)SCHEMA_TABLE.DataType] = OracleConvert.TypeOfString;\r
+ schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
+ break;\r
+ case JavaSqlTypes.CURSOR:\r
+ schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
+ schemaRow [(int)SCHEMA_TABLE.DataType] = OracleConvert.TypeOfDouble;\r
+ schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
+ break;\r
+ case JavaSqlTypes.TIMESTAMPNS:\r
+ schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
+ schemaRow [(int)SCHEMA_TABLE.DataType] = OracleConvert.TypeOfTimespan;\r
+ schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
+ break;\r
+ case JavaSqlTypes.TIMESTAMPTZ:\r
+ schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
+ schemaRow [(int)SCHEMA_TABLE.DataType] = OracleConvert.TypeOfTimespan;\r
+ schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
+ break;\r
+ case JavaSqlTypes.TIMESTAMPLTZ: \r
+ schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
+ schemaRow [(int)SCHEMA_TABLE.DataType] = OracleConvert.TypeOfTimespan;\r
+ schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
+ break;\r
+ case JavaSqlTypes.INTERVALYM:\r
+ schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
+ schemaRow [(int)SCHEMA_TABLE.DataType] = OracleConvert.TypeOfUInt32;\r
+ schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
+ break;\r
+ case JavaSqlTypes.INTERVALDS:\r
+ schemaRow [(int)SCHEMA_TABLE.ProviderType] = GetProviderType((int)columnType);\r
+ schemaRow [(int)SCHEMA_TABLE.DataType] = OracleConvert.TypeOfTimespan;\r
+ schemaRow [(int)SCHEMA_TABLE.IsLong] = false;\r
+ break;\r
+ default:\r
+ base.SetSchemaType(schemaRow, metaData, columnIndex);\r
+ break;\r
+ }\r
+ }\r
+\r
public override decimal GetDecimal(int i) {\r
if (IsNumeric(i))\r
return GetDecimalSafe(i);\r
return base.GetInt64(i);\r
}\r
\r
+#if SUPPORT_ORACLE_TYPES\r
#region GetOracleXXX\r
\r
public OracleBFile GetOracleBFile(\r
}\r
\r
#endregion\r
+#endif\r
\r
#endregion // Methods\r
}\r