[System.Net] Add support for .pac proxy config scripts on mac
[mono.git] / mcs / class / System.Data.OracleClient / System.Data.OracleClient.jvm / OracleConvert.cs
1 //\r
2 // System.Data.Oracle.OracleConvert\r
3 //\r
4 // Authors:\r
5 //      Konstantin Triger <kostat@mainsoft.com>\r
6 //      \r
7 // (C) 2005 Mainsoft Corporation (http://www.mainsoft.com)\r
8 //\r
9 \r
10 //\r
11 // Permission is hereby granted, free of charge, to any person obtaining\r
12 // a copy of this software and associated documentation files (the\r
13 // "Software"), to deal in the Software without restriction, including\r
14 // without limitation the rights to use, copy, modify, merge, publish,\r
15 // distribute, sublicense, and/or sell copies of the Software, and to\r
16 // permit persons to whom the Software is furnished to do so, subject to\r
17 // the following conditions:\r
18 // \r
19 // The above copyright notice and this permission notice shall be\r
20 // included in all copies or substantial portions of the Software.\r
21 // \r
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,\r
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\r
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\r
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
29 //\r
30 \r
31 \r
32 using System;\r
33 using System.Collections;\r
34 using System.Data.Common;\r
35 using System.Data.ProviderBase;\r
36 \r
37 using java.sql;\r
38 \r
39 namespace System.Data.OracleClient {\r
40         #region oracle.sql.Types constants\r
41 \r
42         internal enum JavaSqlTypes {\r
43                 ARRAY = 2003 ,\r
44                 BIGINT = -5, \r
45                 BINARY = -2 ,\r
46                 BIT = -7 ,\r
47                 BLOB = 2004, \r
48                 BOOLEAN = 16, \r
49                 CHAR = 1, \r
50                 CLOB = 2005, \r
51                 DATALINK = 70, \r
52                 DATE = 91, \r
53                 DECIMAL = 3, \r
54                 DISTINCT = 2001, \r
55                 DOUBLE = 8, \r
56                 FLOAT = 6, \r
57                 INTEGER = 4, \r
58                 JAVA_OBJECT = 2000, \r
59                 LONGVARBINARY = -4,\r
60                 LONGVARCHAR = -1, \r
61                 NULL = 0, \r
62                 NUMERIC = 2 ,\r
63                 OTHER = 1111 ,\r
64                 REAL = 7 ,\r
65                 REF = 2006 ,\r
66                 SMALLINT = 5,\r
67                 STRUCT = 2002, \r
68                 TIME = 92, \r
69                 TIMESTAMP = 93, \r
70                 TINYINT = -6, \r
71                 VARBINARY = -3, \r
72                 VARCHAR = 12,\r
73 \r
74                 //ORACLE types, see oracle.jdbc.OracleTypes\r
75                 BINARY_FLOAT  = 100,\r
76                 BINARY_DOUBLE = 101,\r
77                 ROWID = -8,\r
78                 CURSOR = -10,\r
79                 TIMESTAMPNS = -100,\r
80                 TIMESTAMPTZ = -101,\r
81                 TIMESTAMPLTZ = -102,\r
82                 INTERVALYM      = -103,\r
83                 INTERVALDS      = -104,\r
84         }\r
85 \r
86         #endregion\r
87         sealed class OracleConvert : DbConvert {\r
88 \r
89                 #region .Net types constants\r
90 \r
91                 internal static readonly Type TypeOfBoolean = typeof(Boolean);\r
92                 internal static readonly Type TypeOfSByte = typeof(SByte);\r
93                 internal static readonly Type TypeOfChar = typeof(Char);\r
94                 internal static readonly Type TypeOfInt16 = typeof(Int16);\r
95                 internal static readonly Type TypeOfInt32 = typeof(Int32);\r
96                 internal static readonly Type TypeOfInt64 = typeof(Int64);\r
97                 internal static readonly Type TypeOfByte = typeof(Byte);\r
98                 internal static readonly Type TypeOfUInt16 = typeof(UInt16);\r
99                 internal static readonly Type TypeOfUInt32 = typeof(UInt32);\r
100                 internal static readonly Type TypeOfUInt64 = typeof(UInt64);\r
101                 internal static readonly Type TypeOfDouble = typeof(Double);\r
102                 internal static readonly Type TypeOfSingle = typeof(Single);\r
103                 internal static readonly Type TypeOfDecimal = typeof(Decimal);\r
104                 internal static readonly Type TypeOfString = typeof(String);\r
105                 internal static readonly Type TypeOfDateTime = typeof(DateTime);                \r
106                 internal static readonly Type TypeOfObject = typeof(object);\r
107                 internal static readonly Type TypeOfGuid = typeof(Guid);\r
108                 internal static readonly Type TypeOfType = typeof(Type);\r
109 \r
110                 // additional types\r
111                 internal static readonly Type TypeOfByteArray = typeof(Byte[]);\r
112                 internal static readonly Type TypeOfCharArray = typeof(Char[]);\r
113                 internal static readonly Type TypeOfFloat = typeof (float);\r
114                 internal static readonly Type TypeOfTimespan = typeof (TimeSpan);\r
115                 static readonly Type TypeOfIDataReader = typeof(IDataReader);\r
116 \r
117                 #endregion\r
118 \r
119                 #region Methods\r
120 \r
121                 internal static String JdbcTypeNameToDbTypeName(string jdbcTypeName) {\r
122                         return jdbcTypeName.Trim();;\r
123                 }\r
124 \r
125                 internal static OracleType JdbcTypeToOracleType(int jdbcType) {\r
126                         switch ((JavaSqlTypes)jdbcType) {\r
127                                 case JavaSqlTypes.ARRAY: return OracleType.Blob;\r
128                                 case JavaSqlTypes.BIGINT: return OracleType.Number;\r
129                                 case JavaSqlTypes.BINARY: return OracleType.Blob;\r
130                                 case JavaSqlTypes.BIT: return OracleType.Byte;\r
131                                 case JavaSqlTypes.BLOB: return OracleType.Blob;\r
132                                 case JavaSqlTypes.BOOLEAN: return OracleType.Byte;\r
133                                 case JavaSqlTypes.CHAR: return OracleType.Char;\r
134                                 case JavaSqlTypes.CLOB: return OracleType.Clob;\r
135 //                              case JavaSqlTypes.DATALINK: return OracleType.IUnknown;\r
136                                 case JavaSqlTypes.DATE: return OracleType.DateTime;\r
137                                 case JavaSqlTypes.DECIMAL: return OracleType.Number;\r
138 //                              case JavaSqlTypes.DISTINCT: return OracleType.IUnknown; \r
139                                 case JavaSqlTypes.DOUBLE: return OracleType.Double;\r
140                                 case JavaSqlTypes.FLOAT: return OracleType.Float;\r
141                                 case JavaSqlTypes.INTEGER: return OracleType.Int32;\r
142 //                              case JavaSqlTypes.JAVA_OBJECT: return OracleType.IUnknown;\r
143                                 case JavaSqlTypes.LONGVARBINARY: return OracleType.LongRaw;\r
144                                 case JavaSqlTypes.LONGVARCHAR: return OracleType.LongVarChar;\r
145 //                              case JavaSqlTypes.NULL: return OracleType.Empty;\r
146                                 case JavaSqlTypes.NUMERIC: return OracleType.Number;\r
147 //                              case JavaSqlTypes.OTHER: return OracleType.IUnknown;\r
148 //                              case JavaSqlTypes.REAL: return OracleType.Single;\r
149 //                              case JavaSqlTypes.REF: return OracleType.IUnknown;\r
150                                 case JavaSqlTypes.SMALLINT: return OracleType.Int16;\r
151 //                              case JavaSqlTypes.STRUCT: return OracleType.IUnknown;\r
152                                 case JavaSqlTypes.TIME: return OracleType.TimestampLocal;\r
153                                 case JavaSqlTypes.TIMESTAMP: return OracleType.Timestamp;\r
154                                 case JavaSqlTypes.TINYINT: return OracleType.Byte;\r
155                                 case JavaSqlTypes.VARBINARY: return OracleType.LongVarChar;\r
156                                 default:\r
157                                 case JavaSqlTypes.VARCHAR: return OracleType.VarChar;\r
158 \r
159                                 case JavaSqlTypes.BINARY_FLOAT: return OracleType.Float;\r
160                                 case JavaSqlTypes.BINARY_DOUBLE: return OracleType.Double;\r
161                                 case JavaSqlTypes.ROWID: return OracleType.RowId;\r
162                                 case JavaSqlTypes.CURSOR: return OracleType.Cursor;\r
163                                 case JavaSqlTypes.TIMESTAMPNS: return OracleType.Timestamp;\r
164                                 case JavaSqlTypes.TIMESTAMPTZ: return OracleType.TimestampWithTZ;\r
165                                 case JavaSqlTypes.TIMESTAMPLTZ: return OracleType.TimestampLocal; \r
166                                 case JavaSqlTypes.INTERVALYM: return OracleType.IntervalYearToMonth;\r
167                                 case JavaSqlTypes.INTERVALDS: return OracleType.IntervalDayToSecond;\r
168                         }\r
169                 }\r
170 \r
171                 internal static OracleType ValueTypeToOracleType(Type type) {\r
172                         switch (Type.GetTypeCode(type)) {\r
173                                 case TypeCode.Boolean: return OracleType.Byte;\r
174                                 case TypeCode.Byte: return OracleType.Byte;\r
175                                 case TypeCode.Char: return OracleType.Char;\r
176                                 case TypeCode.DateTime: return OracleType.DateTime;\r
177 //                              case TypeCode.DBNull: return OracleType.Empty;\r
178                                 case TypeCode.Decimal: return OracleType.Number;\r
179                                 case TypeCode.Double: return OracleType.Double;\r
180 //                              case TypeCode.Empty: return OracleType.Empty;\r
181                                 case TypeCode.Int16: return OracleType.Int16;\r
182                                 case TypeCode.Int32: return OracleType.Int32;\r
183                                 case TypeCode.Int64: return OracleType.Number;\r
184                                 default:\r
185                                 case TypeCode.Object: {\r
186                                         if (type.Equals(TypeOfByteArray)) return  OracleType.Blob;\r
187                                         if (type.Equals(TypeOfTimespan)) return OracleType.Timestamp;\r
188                                         if (type.IsSubclassOf(TypeOfIDataReader)) return OracleType.Cursor;\r
189 //                                      if (type.Equals(DbTypes.TypeOfGuid)) return OracleType.Guid;\r
190 //\r
191                                         if (type.IsEnum)\r
192                                                 return ValueTypeToOracleType (Enum.GetUnderlyingType (type));\r
193 //\r
194                                         return OracleType.VarChar;\r
195                                 }\r
196                                 case TypeCode.SByte: return OracleType.SByte;\r
197                                 case TypeCode.Single: return OracleType.Float;\r
198                                 case TypeCode.String: return OracleType.VarChar;\r
199                                 case TypeCode.UInt16: return OracleType.UInt16;\r
200                                 case TypeCode.UInt32: return OracleType.UInt32;\r
201                                 case TypeCode.UInt64: return OracleType.Number;\r
202                         }\r
203                 }\r
204 \r
205                 internal static Type OracleTypeToValueType(OracleType oleDbType) {\r
206                         switch (oleDbType) {\r
207 //                              case OracleType.BigInt : return DbTypes.TypeOfInt64;// typeof(long);\r
208 //                              case OracleType.Binary : return DbTypes.TypeOfByteArray;\r
209 //                              case OracleType.Boolean : return DbTypes.TypeOfBoolean;\r
210 //                              case OracleType.BSTR : return DbTypes.TypeOfString;\r
211                                 case OracleType.BFile : return TypeOfByteArray;\r
212                                 case OracleType.Blob : return TypeOfByteArray;\r
213                                 case OracleType.Byte : return TypeOfByte;\r
214                                 case OracleType.Char : return TypeOfString;\r
215                                 case OracleType.Clob : return TypeOfCharArray;\r
216                                 case OracleType.Cursor : return TypeOfIDataReader;\r
217                                 case OracleType.DateTime : return TypeOfDateTime;\r
218 //                              case OracleType.Currency : return TypeOfDecimal;\r
219 //                              case OracleType.Date : return TypeOfDateTime;\r
220 //                              case OracleType.DBDate : return TypeOfDateTime;\r
221 //                              case OracleType.DBTime : return TypeOfTimespan;\r
222 //                              case OracleType.DBTimeStamp : return TypeOfDateTime;\r
223 //                              case OracleType.Decimal : return TypeOfDecimal;\r
224                                 case OracleType.Double : return TypeOfDouble;\r
225                                 case OracleType.Float : return TypeOfFloat;\r
226                                 case OracleType.Int16 : return TypeOfInt16;\r
227                                 case OracleType.Int32 : return TypeOfInt32;\r
228                                 case OracleType.IntervalDayToSecond : return TypeOfTimespan;\r
229                                 case OracleType.IntervalYearToMonth : return TypeOfInt32;\r
230                                 case OracleType.LongRaw : return TypeOfByteArray;\r
231 //                              case OracleType.Empty : return null; //typeof(DBNull);\r
232 //                              case OracleType.Error : return typeof(Exception);\r
233 //                              case OracleType.Filetime : return TypeOfDateTime;\r
234 //                              case OracleType.Guid : return TypeOfGuid;\r
235 //                              case OracleType.IDispatch : return TypeOfObject;\r
236 //                              case OracleType.Integer : return TypeOfInt32;\r
237 //                              case OracleType.IUnknown : return TypeOfObject;\r
238 //                              case OracleType.LongVarBinary : return TypeOfByteArray;\r
239                                 case OracleType.LongVarChar : return TypeOfString;\r
240                                 case OracleType.NChar : return TypeOfString;\r
241                                 case OracleType.NClob : return TypeOfString;\r
242                                 case OracleType.Number : return TypeOfDecimal;\r
243                                 case OracleType.NVarChar : return TypeOfString;\r
244                                 case OracleType.Raw : return TypeOfByteArray;\r
245 \r
246                                 case OracleType.RowId : return TypeOfString;\r
247                                 case OracleType.SByte : return TypeOfSByte;\r
248                                 case OracleType.Timestamp : return TypeOfTimespan;\r
249                                 case OracleType.TimestampLocal : return TypeOfTimespan;\r
250                                 case OracleType.TimestampWithTZ : return TypeOfTimespan;\r
251                                 case OracleType.UInt16 : return TypeOfUInt16;\r
252 \r
253                                 case OracleType.UInt32 : return TypeOfUInt32;\r
254                                 case OracleType.VarChar : return TypeOfString;\r
255 //                              case OracleType.LongVarWChar : return TypeOfString;\r
256 //                              case OracleType.Numeric : return TypeOfDecimal;\r
257 //                              case OracleType.PropVariant : return TypeOfObject;\r
258 //                              case OracleType.Single : return TypeOfFloat;\r
259 //                              case OracleType.SmallInt : return TypeOfInt16;\r
260 //                              case OracleType.TinyInt : return TypeOfSByte;\r
261 //                              case OracleType.UnsignedBigInt : return TypeOfUInt64;\r
262 //                              case OracleType.UnsignedInt : return TypeOfUInt32;\r
263 //                              case OracleType.UnsignedSmallInt : return TypeOfUInt16;\r
264 //                              case OracleType.UnsignedTinyInt : return TypeOfByte;\r
265 //                              case OracleType.VarBinary : return TypeOfByteArray;\r
266 //                              case OracleType.VarChar : return TypeOfString;\r
267 //                              case OracleType.Variant : return TypeOfObject;\r
268 //                              case OracleType.VarNumeric : return TypeOfDecimal;\r
269 //                              case OracleType.VarWChar : return TypeOfString;\r
270 //                              case OracleType.WChar : return TypeOfString;\r
271                                 default : return TypeOfObject;\r
272                         }\r
273                 }\r
274 \r
275                 internal static OracleType DbTypeToOracleType(DbType dbType) {\r
276                         switch (dbType) {\r
277                                 case DbType.AnsiString : return OracleType.VarChar;\r
278                                 case DbType.Binary : return OracleType.Blob;\r
279                                 case DbType.Byte : return OracleType.Byte;\r
280                                 case DbType.Boolean : return OracleType.Byte;\r
281                                 case DbType.Currency : return OracleType.Number;\r
282                                 case DbType.Date : return OracleType.DateTime;\r
283                                 case DbType.DateTime : return OracleType.DateTime;\r
284                                 case DbType.Decimal : return OracleType.Number;\r
285                                 case DbType.Double : return OracleType.Double;\r
286                                 case DbType.Guid : return OracleType.Char;\r
287                                 case DbType.Int16 : return OracleType.Int16;\r
288                                 case DbType.Int32 : return OracleType.Int32;\r
289                                 case DbType.Int64 : return OracleType.Number;\r
290                                 case DbType.Object : return OracleType.Cursor;\r
291                                 case DbType.SByte : return OracleType.SByte;\r
292                                 case DbType.Single : return OracleType.Float;\r
293                                 case DbType.String : return OracleType.VarChar;\r
294                                 case DbType.Time : return OracleType.Timestamp;\r
295                                 case DbType.UInt16 : return OracleType.UInt16;\r
296                                 case DbType.UInt32 : return OracleType.UInt32;\r
297                                 case DbType.UInt64 : return OracleType.Number;\r
298                                 case DbType.VarNumeric : return OracleType.Number;\r
299                                 case DbType.AnsiStringFixedLength : return OracleType.NChar;\r
300                                 case DbType.StringFixedLength : return OracleType.Char;\r
301                                 default : throw ExceptionHelper.InvalidDbType((int)dbType);\r
302                         }\r
303                 }\r
304 \r
305                 internal static DbType OracleTypeToDbType(OracleType oleDbType) {\r
306                         switch (oleDbType) {\r
307                                 case OracleType.BFile : return DbType.Binary;\r
308                                 case OracleType.Blob : return DbType.Binary;\r
309                                 case OracleType.Byte : return DbType.Byte;\r
310                                 case OracleType.Char : return DbType.StringFixedLength;\r
311                                 case OracleType.Clob : return DbType.String;\r
312                                 case OracleType.Cursor : return DbType.Object;\r
313                                 case OracleType.DateTime : return DbType.DateTime;\r
314                                 case OracleType.Double : return DbType.Double;\r
315                                 case OracleType.Float : return DbType.Single;\r
316                                 case OracleType.Int16 : return DbType.Int16;\r
317                                 case OracleType.Int32 : return DbType.Int32;\r
318                                 case OracleType.IntervalDayToSecond : return DbType.Time;\r
319                                 case OracleType.IntervalYearToMonth : return DbType.Int32;\r
320                                 case OracleType.LongRaw : return DbType.Binary;\r
321                                 case OracleType.LongVarChar : return DbType.String;\r
322                                 case OracleType.NChar : return DbType.AnsiStringFixedLength;\r
323                                 case OracleType.NClob : return DbType.AnsiString;\r
324                                 case OracleType.Number : return DbType.VarNumeric;\r
325                                 case OracleType.NVarChar : return DbType.AnsiString;\r
326                                 case OracleType.Raw : return DbType.Binary;\r
327 \r
328                                 case OracleType.RowId : return DbType.AnsiStringFixedLength;\r
329                                 case OracleType.SByte : return DbType.SByte;\r
330                                 case OracleType.Timestamp : return DbType.Time;\r
331                                 case OracleType.TimestampLocal : return DbType.Time;\r
332                                 case OracleType.TimestampWithTZ : return DbType.Time;\r
333                                 case OracleType.UInt16 : return DbType.UInt16;\r
334 \r
335                                 case OracleType.UInt32 : return DbType.UInt32;\r
336                                 case OracleType.VarChar : return DbType.String;\r
337 //                              case OracleType.Empty : return DbType.Object;\r
338 //                              case OracleType.SmallInt : return DbType.Int16;\r
339 //                              case OracleType.Integer : return DbType.Int32;\r
340 //                              case OracleType.Single : return DbType.Single;\r
341 //                              case OracleType.Double : return DbType.Double;\r
342 //                              case OracleType.Currency : return DbType.Currency;\r
343 //                              case OracleType.Date : return DbType.DateTime;\r
344 //                              case OracleType.BSTR : return DbType.String;\r
345 //                              case OracleType.IDispatch : return DbType.Object;\r
346 //                              case OracleType.Error : return DbType.Object;\r
347 //                              case OracleType.Boolean : return DbType.Boolean;\r
348 //                              case OracleType.Variant : return DbType.Object;\r
349 //                              case OracleType.IUnknown : return DbType.Object;\r
350 //                              case OracleType.Decimal : return DbType.Decimal;\r
351 //                              case OracleType.TinyInt : return DbType.SByte;\r
352 //                              case OracleType.UnsignedTinyInt : return DbType.Byte;\r
353 //                              case OracleType.UnsignedSmallInt : return DbType.UInt16;\r
354 //                              case OracleType.UnsignedInt : return DbType.UInt32;\r
355 //                              case OracleType.BigInt : return DbType.Int64;\r
356 //                              case OracleType.UnsignedBigInt : return DbType.UInt64;\r
357 //                              case OracleType.Filetime : return DbType.DateTime;\r
358 //                              case OracleType.Guid : return DbType.Guid;\r
359 //                              case OracleType.Binary : return DbType.Binary;\r
360 //                              case OracleType.Char : return DbType.AnsiStringFixedLength;\r
361 //                              case OracleType.WChar : return DbType.StringFixedLength;\r
362 //                              case OracleType.Numeric : return DbType.Decimal;\r
363 //                              case OracleType.DBDate : return DbType.Date;\r
364 //                              case OracleType.DBTime : return DbType.Time;\r
365 //                              case OracleType.DBTimeStamp : return DbType.DateTime;\r
366 //                              case OracleType.PropVariant : return DbType.Object;\r
367 //                              case OracleType.VarNumeric : return DbType.VarNumeric;\r
368 //                              case OracleType.VarChar : return DbType.AnsiString;\r
369 //                              case OracleType.LongVarChar : return DbType.AnsiString;\r
370 //                              case OracleType.VarWChar : return DbType.String;\r
371 //                              case OracleType.LongVarWChar : return DbType.String;\r
372 //                              case OracleType.VarBinary : return DbType.Binary;\r
373 //                              case OracleType.LongVarBinary : return DbType.Binary;\r
374                                 default : throw ExceptionHelper.InvalidOleDbType((int)oleDbType);\r
375                         }\r
376                 }\r
377 \r
378                 internal static int     OracleTypeToJdbcType(OracleType oleDbType) {\r
379                         switch(oleDbType) {\r
380                                 case OracleType.BFile : return (int)JavaSqlTypes.BINARY;\r
381                                 case OracleType.Blob : return (int)JavaSqlTypes.BINARY;\r
382                                 case OracleType.Byte : return (int)JavaSqlTypes.TINYINT;\r
383                                 case OracleType.Char : return (int)JavaSqlTypes.CHAR;\r
384                                 case OracleType.Clob : return (int)JavaSqlTypes.CLOB;\r
385                                 case OracleType.Cursor : return (int)JavaSqlTypes.CURSOR;\r
386                                 case OracleType.DateTime : return (int)JavaSqlTypes.TIMESTAMP;\r
387                                 case OracleType.Double : return (int)JavaSqlTypes.DOUBLE;\r
388                                 case OracleType.Float : return (int)JavaSqlTypes.FLOAT;\r
389                                 case OracleType.Int16 : return (int)JavaSqlTypes.SMALLINT;\r
390                                 case OracleType.Int32 : return (int)JavaSqlTypes.INTEGER;\r
391                                 case OracleType.IntervalDayToSecond : return (int)JavaSqlTypes.INTERVALDS;\r
392                                 case OracleType.IntervalYearToMonth : return (int)JavaSqlTypes.INTERVALYM;\r
393                                 case OracleType.LongRaw : return (int)JavaSqlTypes.LONGVARBINARY;\r
394                                 case OracleType.LongVarChar : return (int)JavaSqlTypes.LONGVARCHAR;\r
395                                 case OracleType.NChar : return (int)JavaSqlTypes.CHAR;\r
396                                 case OracleType.NClob : return (int)JavaSqlTypes.CLOB;\r
397                                 case OracleType.Number : return (int)JavaSqlTypes.NUMERIC;\r
398                                 case OracleType.NVarChar : return (int)JavaSqlTypes.VARCHAR;\r
399                                 case OracleType.Raw : return (int)JavaSqlTypes.BINARY;\r
400 \r
401                                 case OracleType.RowId : return (int)JavaSqlTypes.VARCHAR;\r
402                                 case OracleType.SByte : return (int)JavaSqlTypes.TINYINT;\r
403                                 case OracleType.Timestamp : return (int)JavaSqlTypes.TIMESTAMP;\r
404                                 case OracleType.TimestampLocal : return (int)JavaSqlTypes.TIMESTAMP;\r
405                                 case OracleType.TimestampWithTZ : return (int)JavaSqlTypes.TIMESTAMP;\r
406                                 case OracleType.UInt16 : return (int)JavaSqlTypes.SMALLINT;\r
407 \r
408                                 case OracleType.UInt32 : return (int)JavaSqlTypes.INTEGER;\r
409                                 case OracleType.VarChar : return (int)JavaSqlTypes.VARCHAR;\r
410 //                              case OracleType.BigInt : return Types.BIGINT;\r
411 //                              case OracleType.Binary : return Types.BINARY;\r
412 //                              case OracleType.Boolean : return Types.BIT;\r
413 //                              case OracleType.BSTR : return Types.VARCHAR;\r
414 //                              case OracleType.Char : return Types.CHAR;\r
415 //                              case OracleType.Currency : return Types.DECIMAL;\r
416 //                              case OracleType.Date : return Types.TIMESTAMP;\r
417 //                              case OracleType.DBDate : return Types.DATE;\r
418 //                              case OracleType.DBTime : return Types.TIME;\r
419 //                              case OracleType.DBTimeStamp : return Types.TIMESTAMP;\r
420 //                              case OracleType.Decimal : return Types.DECIMAL;\r
421 //                              case OracleType.Double : return Types.DOUBLE;\r
422 //                              case OracleType.Empty : return Types.NULL;\r
423 //                              case OracleType.Error : return Types.OTHER;\r
424 //                              case OracleType.Filetime : return Types.TIMESTAMP;\r
425 //                              case OracleType.Guid : return Types.CHAR;\r
426 //                              case OracleType.IDispatch : return Types.OTHER; //throw new ArgumentException("The " + oleDbType + " OracleType value is not supported.");\r
427 //                              case OracleType.Integer : return Types.INTEGER;\r
428 //                              case OracleType.IUnknown :  return Types.OTHER; //throw new ArgumentException("The " + oleDbType + " OracleType value is not supported.");\r
429 //                              case OracleType.LongVarBinary : return Types.LONGVARBINARY;\r
430 //                              case OracleType.LongVarChar : return Types.LONGVARCHAR;\r
431 //                              case OracleType.LongVarWChar : return Types.LONGVARCHAR;\r
432 //                              case OracleType.Numeric : return Types.NUMERIC;\r
433 //                              case OracleType.PropVariant : return Types.OTHER;\r
434 //                              case OracleType.Single : return Types.FLOAT;\r
435 //                              case OracleType.SmallInt : return Types.SMALLINT;\r
436 //                              case OracleType.TinyInt : return Types.TINYINT;\r
437 //                              case OracleType.UnsignedBigInt : return Types.BIGINT;\r
438 //                              case OracleType.UnsignedInt : return Types.INTEGER;\r
439 //                              case OracleType.UnsignedSmallInt : return Types.SMALLINT;\r
440 //                              case OracleType.UnsignedTinyInt : return Types.TINYINT;\r
441 //                              case OracleType.VarBinary : return Types.VARBINARY;\r
442 //                              case OracleType.VarChar : return Types.VARCHAR;\r
443 //                              case OracleType.Variant : return Types.VARCHAR;\r
444 //                              case OracleType.VarNumeric : return Types.DECIMAL;\r
445 //                              case OracleType.VarWChar : return Types.VARCHAR;\r
446 //                              case OracleType.WChar : return Types.VARCHAR;\r
447                                 default : throw ExceptionHelper.InvalidOleDbType((int)oleDbType);\r
448                         }\r
449 \r
450                         #endregion // Methods\r
451                 }\r
452         }\r
453 }\r