Could you tell us how we should modify this code to reproduce the issue in our environment?
Code: Select all
string connString = "User Id=scott;Password=tiger;Server=192.168.10.41/orclpdb;";
using (var conn = new OracleConnection())
{
conn.ConnectionString = connString + "Direct=false;Home=OraClient19Home1;";
conn.Open();
var cmd = conn.CreateCommand();
try
{
cmd.CommandText = "drop table F44249";
cmd.ExecuteNonQuery();
}
catch { }
cmd.CommandText = "CREATE TABLE F44249 (ID NUMBER(10) PRIMARY KEY, TSCOLUMN TIMESTAMP(6) WITH TIME ZONE)";
cmd.ExecuteNonQuery();
cmd.CommandText = "INSERT INTO F44249(ID, TSCOLUMN) VALUES (1, :p)";
cmd.Parameters.Add("p", OracleDbType.TimeStampTZ).Value = new DateTimeOffset(1999, 12, 31, 23, 59, 59, 199, new TimeSpan(-5,0,0));
cmd.ExecuteNonQuery();
}
using (var conn = new OracleConnection())
{
conn.ConnectionString = connString + "Direct=false;Home=OraClient19Home1;";
conn.Open();
var cmd = conn.CreateCommand();
cmd.CommandText = "select TSCOLUMN from F44249 where ID=1";
var reader = cmd.ExecuteReader();
while (reader.Read())
{
DateTimeOffset result = reader.GetDateTimeOffset("TSCOLUMN");
Console.WriteLine("OCI: {0}", result);
}
}
using (var conn = new OracleConnection())
{
conn.ConnectionString = connString + "Direct=true;";
conn.Open();
var cmd = conn.CreateCommand();
cmd.CommandText = "select TSCOLUMN from F44249 where ID=1";
var reader = cmd.ExecuteReader();
while (reader.Read())
{
DateTimeOffset result = reader.GetDateTimeOffset("TSCOLUMN");
Console.WriteLine("Direct: {0}", result);
}
}
}
Our output is:
OCI: 31.12.1999 23:59:59 -05:00
Direct: 31.12.1999 23:59:59 -05:00