Exemple #1
0
        public override string DbTypeFromType(Type t, int size)
        {
            t = ((NDOAbstractProvider)this.Provider).ConvertNullableType(t);

            // The Oracle ADO.NET provider gives us an OracleType.DateTime instead
            // of an OracleType.Date
            if (t == typeof(DateTime))
            {
                return("Date");
            }

            if (t == typeof(bool) || t == typeof(byte) || t == typeof(sbyte) || t == typeof(ushort) || t == typeof(int) || t == typeof(short) || t == typeof(uint) || t == typeof(long) || t == typeof(ulong) || t == typeof(float) || t == typeof(double) || t == typeof(decimal))
            {
                return("Number");
            }

            if (t == typeof(string) && size == -1)
            {
                return("CLOB");
            }

            OracleDbType dbType = (OracleDbType)Provider.GetDbType(t);

            return(dbType.ToString());
        }
        public string ToName(OracleDbType oracleType)
        {
            string name;

            switch (oracleType)
            {
            case OracleDbType.Byte:
            case OracleDbType.Int16:
            case OracleDbType.Int32:
            case OracleDbType.Int64:
            case OracleDbType.Decimal:
            case OracleDbType.Single:
                name = "NUMBER";
                break;

            case OracleDbType.Date:
                name = "DATE";
                break;

            case OracleDbType.Char:
                name = "CHAR";
                break;

            case OracleDbType.Varchar2:
                name = "VARCHAR2";
                break;

            case OracleDbType.Long:
                name = "LONG";
                break;

            case OracleDbType.Clob:
                name = "CLOB";
                break;

            case OracleDbType.TimeStamp:
                name = "TIMESTAMP";
                break;

            case OracleDbType.Blob:
                name = "BLOB";
                break;

            case OracleDbType.XmlType:
                name = "XMLTYPE";
                break;


            //        case OracleDbType.row
            //          name = "ROWID";
            //          break;

            default:
                name = oracleType.ToString("G");
                break;
            }

            return(name);
        }
Exemple #3
0
        public override string GetNativeDbTypeName(IDataParameter para)
        {
            OracleParameter oraPara = (OracleParameter)para;
            OracleDbType    oraType = oraPara.OracleDbType;

            if (oraType == OracleDbType.Date)
            {
                return("Date");
            }
            else if (oraType == OracleDbType.Int32)
            {
                return("INT");
            }
            else
            {
                return(oraType.ToString());
            }
        }
Exemple #4
0
        private static object GetEnumValue(object value, OracleDbType oracleDbType)
        {
            if (value == null)
            {
                return(DBNull.Value);
            }
            object v = null;

            switch (oracleDbType)
            {
            //case OracleDbType.:
            //    {
            //        v = Convert.ToBoolean(value);
            //        break;
            //    }
            case OracleDbType.Byte:
            {
                v = Convert.ToByte(value);
                break;
            }

            case OracleDbType.Int32:
            {
                v = Convert.ToInt32(value);
                break;
            }

            case OracleDbType.Int64:
            {
                v = Convert.ToInt64(value);
                break;
            }

            case OracleDbType.Int16:
            {
                v = Convert.ToInt16(value);
                break;
            }

            default:
            {
                throw new InvalidCastException(string.Format("Value of {0} cannot be converted to {1}", value.GetType().Name, oracleDbType.ToString()));
            }
            }

            return(v);
        }