由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Database版 - C# DateTime to Oracle Date (转载)
相关主题
求助:如何ColumName 作为变量放入query菜鸟求助: 用 Oracle Sqlldr Control File 能不能改character set?
非高人莫答菜鸟求助: 用 Oracle Sqlldr Control File 能不能改character set?
question about SQL*LOADER菜鸟求助: 用 Oracle Sqlldr Control File 能不能改character set?
我的DBA在生成ORACLE table的时候需要一个一个column看菜鸟求助: 用 Oracle Sqlldr Control File 能不能改character set?
菜鸟求助: 用 Oracle Sqlldr Control File 能不能改character set?oracle load数据怎么会这么慢?
菜鸟求助: 用 Oracle Sqlldr Control File 能不能改character set?请教:未安装oracle,仅用SSH登录远程oracle,可以imp和exp么
菜鸟求助: 用 Oracle Sqlldr Control File 能不能改character set?How to Import a Datatable as fast as possible?
菜鸟求助: 用 Oracle Sqlldr Control File 能不能改character set?Help! A cluster method in SQL
相关话题的讨论汇总
话题: date话题: datetime话题: datatable话题: oracle
进入Database版参与讨论
1 (共1页)
o**********a
发帖数: 330
1
【 以下文字转载自 DotNet 讨论区 】
发信人: oldmanpushca (oldmanpushcar), 信区: DotNet
标 题: C# DateTime to Oracle Date
发信站: BBS 未名空间站 (Tue Oct 22 23:58:58 2013, 美东)
我的任务是把一个csv file 用c # load 到oracle table 里面
大概步骤是把csv load 到 DataTable里面
然后再用OracleBulkCopy把DataTable load 到oracle table 里面
现在出现一个问题就是有一个column是 Date,每次load到数据库里面的
时候,总是出错,不知道大家有没有类似的经验
例如下面这个例子,在code里面产生一个2013年10月8日,但是插到ora
cle里面之后就变成了10/08/1320。 显然已经在oracle Date的范围内了,
但是还是插进去,点击那个Date column,就会变成乱码,and告诉你已经超出范围
了。
有没有有人做过,给提示一下。下面是code ,多谢了阿!!
DataTable dt = new DataTable();
dt.Columns.Add("Product_Date",typeof(DateTime));
dt.Columns.Add(....);
...
DataRow dr = dt.NewRow();
dr[0] = new DateTime(2013,10,8);
dr[1] = ...;
...
OracleBulkCopy bc = new OracleBulkCopy(myConn);
bc.DestinationTableName = "TableName";
bc.WriteToServer(dt);
n****f
发帖数: 905
2
这个任务可以直接完成, 不用借助 C#。
1. 在 Oracle 建立一个表:
CREATE TABLE oldmanpushca.DATE_TEST
(
COL1 VARCHAR2(100 BYTE),
COL_DATE DATE
);
2. 用 NOTEPAD 在 C:\OracleLoader\ 盘建立了一个 CSV 文件:
C:\OracleLoader\DATE_TEST.CSV, 内容如下:
C1R1 TEXT 1, 2013/10/22
C1R2 TEXT 2, 2014/10/22
C1R3 TEXT 3, 2015/10/22
3. 用 NOTEPAD 在 C:\OracleLoader\ 盘建立了一个控制文件:
C:\OracleLoader\Para.CTL , 内容如下:
LOAD DATA
infile 'C:\OracleLoader\DATE_TEST.CSV'
APPEND
INTO TABLE oldmanpushca.DATE_TEST
FIELDS TERMINATED BY ',' optionally enclosed by '"'
TRAILING NULLCOLS
(
COL1,
COL_DATE "TO_DATE(:COL_DATE ,'YYYY-MM-DD')"
)
4. 用 NOTEPAD 在 C:\OracleLoader\ 盘建立了一个执行文件:
C:\OracleLoader\LoadCSV.CMD , 内容如下:
SQLLDR oldmanpushca/password@db_tns_name DIRECT=TRUE ERRORS=100000000
CONTROL=C:\OracleLoader\Para.CTL
5. 在 DOS 执行 C:\OracleLoader\LoadCSV.CMD
你会发现你得到预想的数据。
假如你CSV 的日期是: 10-22-2013, 那么在控制文件中就要做相应的修改。
比如: COL_DATE "TO_DATE(:COL_DATE ,'MM-DD-YYYY')"
s********e
发帖数: 893
3
你说的这个情况用sqlldr 是很方便的。
如果必须要用code实现,你先把Datatable里的date输出到一个label看看是不是在写入
oracle以前那个year就乱了。或者某个地方把日期格式化一下。
to_date('" & Product_Date & "', 'mm/dd/yyyy')
o**********a
发帖数: 330
4
谢谢回复.sqlldr 应该也可以在code里面call一个可执行文件,然后用sqlldr 弄进去
,但是看同事用的这个bulkcopy 挺方便的。
我debug的时候看了,在OracleBulkCopy之前,在memory table里面(DataTable)数据
是正确的。但是放到数据库里就错了。
fyi..
今天写了个test的code,在我同事的机器上run就能正确地把日期插入到oracle table
里面的,但是在我的机器上run,还是出现同样的问题,就是本来应该是 10/18/2013,
但是插进去后变成10/18/1320。
我和同事都是用的同一个version of ODP for .NET. 我们俩的电脑也一样,都是win7
,vs2010。
真是奇怪。
还有一个比较有意思的就是,我们老印推荐的方法 在code里面生产DateTime的时候这
么写
new DateTime(1320,10,18),果然生效,插入后就变成正确地date在oracle里面。
这个会不会和我c盘装的oracle client 有关系,我好像装了两个oracle client

【在 s********e 的大作中提到】
: 你说的这个情况用sqlldr 是很方便的。
: 如果必须要用code实现,你先把Datatable里的date输出到一个label看看是不是在写入
: oracle以前那个year就乱了。或者某个地方把日期格式化一下。
: to_date('" & Product_Date & "', 'mm/dd/yyyy')

1 (共1页)
进入Database版参与讨论
相关主题
Help! A cluster method in SQL菜鸟求助: 用 Oracle Sqlldr Control File 能不能改character set?
关于SSAS的问题菜鸟求助: 用 Oracle Sqlldr Control File 能不能改character set?
Bulk merge? (转载)菜鸟求助: 用 Oracle Sqlldr Control File 能不能改character set?
DBA主要是做优化还是维护菜鸟求助: 用 Oracle Sqlldr Control File 能不能改character set?
求助:如何ColumName 作为变量放入query菜鸟求助: 用 Oracle Sqlldr Control File 能不能改character set?
非高人莫答菜鸟求助: 用 Oracle Sqlldr Control File 能不能改character set?
question about SQL*LOADER菜鸟求助: 用 Oracle Sqlldr Control File 能不能改character set?
我的DBA在生成ORACLE table的时候需要一个一个column看菜鸟求助: 用 Oracle Sqlldr Control File 能不能改character set?
相关话题的讨论汇总
话题: date话题: datetime话题: datatable话题: oracle