Пример #1
0
        public OracleTimestamp(OracleTimeStamp timeStamp)
        {
            _value = timeStamp;

            if (!timeStamp.IsNull)
            {
                _dateTime = new OracleDateTime(timeStamp.Year, timeStamp.Month, timeStamp.Day, timeStamp.Hour, timeStamp.Minute, timeStamp.Second);
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="format"></param>
        /// <param name="date"></param>
        /// <param name="dateTime"></param>
        /// <returns></returns>
        protected internal bool ConvertToDateTimeFromOracleInternal(OracleDateTimeFormat format, object date, out DateTime dateTime)
        {
            dateTime = DateTime.MinValue;
            if (date == null)
            {
                return(false);
            }

            try
            {
                switch (format)
                {
                case OracleDateTimeFormat.ORACLE_DATE:
                    var oracleDate = new OracleDate((string)date);
                    if (oracleDate != OracleDate.Null)
                    {
                        dateTime = oracleDate.Value;
                    }
                    break;

                case OracleDateTimeFormat.ORACLE_TIMESTAMP:
                    var oracleTSDate = new OracleTimeStamp((string)date);
                    if (oracleTSDate != OracleTimeStamp.Null)
                    {
                        dateTime = oracleTSDate.Value;
                    }
                    break;

                case OracleDateTimeFormat.ORACLE_TIMESTAMP_TZ:
                    var oracleTSZDate = new OracleTimeStampTZ((string)date);
                    if (oracleTSZDate != OracleTimeStampTZ.Null)
                    {
                        dateTime = oracleTSZDate.Value;
                    }
                    break;

                case OracleDateTimeFormat.ORACLE_TIMESTAMP_LTZ:
                    var oracleLTSZDate = new OracleTimeStampLTZ((string)date);
                    if (oracleLTSZDate != OracleTimeStampLTZ.Null)
                    {
                        dateTime = oracleLTSZDate.Value;
                    }
                    break;

                default:
                    throw new ApplicationException("Invalid format specified");
                }
            }
            catch (Exception)
            {
                return(false);
            }
            return(true);
        }
Пример #3
0
 private void TableDependency_Changed(object sender, RecordChangedEventArgs <DataTimeModel> e)
 {
     switch (e.ChangeType)
     {
     case ChangeType.Insert:
         dateColumReturned                  = e.Entity.DateColum;
         timeStampColumnReturned            = new OracleTimeStamp(e.Entity.TimeStampColumn);
         timeStampWithTimeZoneReturned      = e.Entity.TimeStampWithTimeZone;
         timeStampWithLocalTimeZoneReturned = new OracleTimeStampLTZ(e.Entity.TimeStampWithLocalTimeZone);
         intervalDayToSecondColumnReturned  = new OracleIntervalDS(e.Entity.IntervalDayToSecondColumn);
         intervalYearToMonthColumnReturned  = new OracleIntervalYM(e.Entity.IntervalYearToMonthColumn);
         break;
     }
 }
        public void GetOracleTimeStamp()
        {
            var dateNow      = DateTime.Now;
            var oraTimeStamp = new OracleTimeStamp(dateNow);
            var result       = OracleValueConverter.Convert <DateTime>(oraTimeStamp);

            result.Should().Be(dateNow);

            var oraTimeStampArr = new OracleTimeStamp[1] {
                dateNow
            };
            var secondResult = OracleValueConverter.Convert <DateTime[]>(oraTimeStampArr);

            secondResult.Should().BeOfType <DateTime[]>();
            secondResult.Should().HaveCount(1);
        }
Пример #5
0
        private object GetValue(OracleDecimal number, OracleDate date, OracleTimeStamp timestamp, OracleTimeStampTZ timestampWithTimezone, OracleTimeStampLTZ timestampWithLocalTimeZone, OracleIntervalYM yearToMonth, OracleIntervalDS dayToSecond)
        {
            if (!LimitValuesAvailable)
            {
                return(null);
            }

            if (_valueType == typeof(OracleDecimal))
            {
                return(number.IsNull ? null : new OracleNumber(number));
            }

            if (_valueType == typeof(OracleDate))
            {
                return(date.IsNull ? null : new OracleDateTime(date));
            }

            if (_valueType == typeof(OracleTimeStamp))
            {
                return(timestamp.IsNull ? null : new OracleTimestamp(timestamp));
            }

            if (_valueType == typeof(OracleTimeStampTZ))
            {
                return(timestampWithTimezone.IsNull ? null : new OracleTimestampWithTimeZone(timestampWithTimezone));
            }

            if (_valueType == typeof(OracleTimeStampLTZ))
            {
                return(timestampWithLocalTimeZone.IsNull ? null : new OracleTimestampWithLocalTimeZone(timestampWithLocalTimeZone));
            }

            if (_valueType == typeof(OracleIntervalYM))
            {
                return(yearToMonth.IsNull ? null : new OracleIntervalYearToMonth(yearToMonth));
            }

            if (_valueType == typeof(OracleIntervalDS))
            {
                return(dayToSecond.IsNull ? null : new OracleIntervalDayToSecond(dayToSecond));
            }

            return(null);
        }
Пример #6
0
        public static void ClassInitialize(TestContext testContext)
        {
            OracleHelper.DropTable(ConnectionString, TableName);

            using (var connection = new OracleConnection(ConnectionString))
            {
                connection.Open();
                using (var command = connection.CreateCommand())
                {
                    command.CommandText = $"CREATE TABLE {TableName}(DATECOLUM DATE,TIMESTAMPCOLUMN TIMESTAMP(6),TIMESTAMPWITHTIMEZONE TIMESTAMP WITH TIME ZONE,TIMESTAMPWITHLOCALTIMEZONE TIMESTAMP WITH LOCAL TIME ZONE, INTERVALDAYTOSECONDCOLUMN INTERVAL DAY(2) TO SECOND(6),INTERVALYEARTOMONTHCOLUMN INTERVAL YEAR(2) TO MONTH)";
                    command.ExecuteNonQuery();
                }
            }

            dateColum                  = DateTime.Now;
            timeStampColumn            = new OracleTimeStamp(DateTime.Now);
            timeStampWithLocalTimeZone = OracleTimeStampLTZ.GetSysDate();
            timeStampWithTimeZone      = DateTimeOffset.Now;
            intervalDayToSecondColumn  = new OracleIntervalDS(1);
            intervalYearToMonthColumn  = new OracleIntervalYM(2);
        }
Пример #7
0
 public OracleTimeStampField(OracleTimeStamp value)
 {
     _value = value;
 }
Пример #8
0
        public static OracleTimeStamp ToTimeStamp(DateTime dt)
        {
            OracleTimeStamp result = new OracleTimeStamp(dt);

            return(result);
        }
Пример #9
0
        public static DateTime ToDate(OracleTimeStamp ts)
        {
            DateTime result = new DateTime(ts.Year, ts.Month, ts.Day, ts.Hour, ts.Minute, ts.Second);

            return(result);
        }
Пример #10
0
 public static void TextWrite(this TextWriter writer, OracleTimeStamp ts1)
 {
     writer.Write($"\"{ts1.Year:D4}-{ts1.Month:D2}-{ts1.Day:D2} {ts1.Hour:D2}:{ts1.Minute:D2}:{ts1.Second:D2}.{ts1.Nanosecond}\"");
 }
Пример #11
0
        /// <summary>
        /// 获取Oracle参数的值
        /// </summary>
        /// <param name="oraParam"></param>
        /// <returns></returns>
        protected virtual object GetOraParamVal(OracleParameter oraParam)
        {
            if (oraParam.Value == null || (oraParam.Value is INullable && (oraParam.Value as INullable).IsNull))
            {
                return(DBNull.Value);
            }

            object val = DBNull.Value;

            if (oraParam.Value is OracleXmlType)
            {
                OracleXmlType xmltype = (OracleXmlType)oraParam.Value;
                if (!xmltype.IsEmpty)
                {
                    val = xmltype.Value;
                }
            }
            else if (oraParam.Value is OracleBlob)
            {
                OracleBlob blobVal = (OracleBlob)oraParam.Value;
                if (!blobVal.IsNull)
                {
                    val = (oraParam.Value as OracleBlob).Value;
                }
            }
            else if (oraParam.Value is OracleClob)
            {
                OracleClob clobVal = (OracleClob)oraParam.Value;
                if (!clobVal.IsNull)
                {
                    val = clobVal.Value;
                }
            }
            else if (oraParam.Value is OracleDecimal)
            {
                OracleDecimal decimalVal = (OracleDecimal)oraParam.Value;
                if (!decimalVal.IsNull)
                {
                    val = decimalVal.Value;
                }
            }
            else if (oraParam.Value is OracleDate)
            {
                OracleDate dateVal = (OracleDate)oraParam.Value;
                if (!dateVal.IsNull)
                {
                    val = dateVal.Value;
                }
            }
            else if (oraParam.Value is OracleString)
            {
                OracleString stringVal = (OracleString)oraParam.Value;
                if (!stringVal.IsNull)
                {
                    val = stringVal.Value;
                }
            }
            else if (oraParam.Value is OracleBFile)
            {
                OracleBFile fileVal = oraParam.Value as OracleBFile;
                if (!fileVal.IsNull)
                {
                    val = fileVal.Value;
                }
            }
            else if (oraParam.Value is OracleBinary)
            {
                OracleBinary binaryVal = (OracleBinary)oraParam.Value;
                if (!binaryVal.IsNull)
                {
                    val = binaryVal.Value;
                }
            }
            else if (oraParam.Value is OracleTimeStamp)
            {
                OracleTimeStamp timeStampVal = (OracleTimeStamp)oraParam.Value;
                if (!timeStampVal.IsNull)
                {
                    val = timeStampVal.Value;
                }
            }
            else if (oraParam.Value is OracleRefCursor)
            {
                using (OracleRefCursor timeStampVal = (OracleRefCursor)oraParam.Value)
                {
                    if (timeStampVal.IsNull)
                    {
                        return(null);
                    }
                    OracleDataReader dataReader = timeStampVal.GetDataReader();
                    DataTable        datatable  = new DataTable();
                    datatable.Load(dataReader);
                    return(datatable);
                }
            }
            else
            {
                val = oraParam.Value;
            }
            return(val);
        }
Пример #12
0
 internal static bool IsEqual(OracleTimeStamp?val1, OracleTimeStamp?val2) =>
 val1.Value.IsNull != val2.Value.IsNull
         ? false
         : (val1.Value.IsNull && val2.Value.IsNull) ||
 OracleTimeStamp.SetPrecision(val1.Value, OracleTimeStampPrecisionCompare).Equals(OracleTimeStamp.SetPrecision(val2.Value, OracleTimeStampPrecisionCompare));
Пример #13
0
		private object GetValue(OracleDecimal number, OracleDate date, OracleTimeStamp timestamp, OracleTimeStampTZ timestampWithTimezone, OracleTimeStampLTZ timestampWithLocalTimeZone, OracleIntervalYM yearToMonth, OracleIntervalDS dayToSecond)
		{
			if (!LimitValuesAvailable)
			{
				return null;
			}

			if (_valueType == typeof(OracleDecimal))
			{
				return number.IsNull ? null : new OracleNumber(number);
			}

			if (_valueType == typeof(OracleDate))
			{
				return date.IsNull ? null : new OracleDateTime(date);
			}

			if (_valueType == typeof(OracleTimeStamp))
			{
				return timestamp.IsNull ? null : new OracleTimestamp(timestamp);
			}

			if (_valueType == typeof(OracleTimeStampTZ))
			{
				return timestampWithTimezone.IsNull ? null : new OracleTimestampWithTimeZone(timestampWithTimezone);
			}

			if (_valueType == typeof(OracleTimeStampLTZ))
			{
				return timestampWithLocalTimeZone.IsNull ? null : new OracleTimestampWithLocalTimeZone(timestampWithLocalTimeZone);
			}

			if (_valueType == typeof(OracleIntervalYM))
			{
				return yearToMonth.IsNull ? null : new OracleIntervalYearToMonth(yearToMonth);
			}

			if (_valueType == typeof(OracleIntervalDS))
			{
				return dayToSecond.IsNull ? null : new OracleIntervalDayToSecond(dayToSecond);
			}

			return null;
		}