对使用ociuldr导出date类型数据的使用体会.

原创 2007年09月21日 17:22:00

使用ociuldr导出date类型的数据

在使用ociuldr工具的时候,为了导出date类型的字段,最好使用to_char函数把date类型的字段转为你需要的字段如('yyyy-mm

-dd hh24:mi:ss')。有这样一个表结构:
Name        Type           Nullable Default Comments             
----------- -------------- -------- ------- ---------------------
ID          NUMBER         Y                                     
NAME        VARCHAR2(20)   Y                                     
AGE         NUMBER         Y                                     
DESCRIPTION NVARCHAR2(100) Y                                     
BIRTHDAY    DATE

有记录:
1 小明 10 淘气的孩子 1997-8-8 8:08:08 
2 小孙 11 爱学习的孩子 1996-8-8 9:09:09
 
在使用ociuldr导出数据的时候,最好写成如下(这里只关注query参数,其他的参数可以自己选择设置):
c:/>ociuldr user=scada/scada@orcl query="select id,name,age,description, to_char(birthday,'yyyy-mm-dd hh24:mi:ss')as birthday from tttt"  field=# record=0x0a file=D:/emp1.txt table=tttt

在d:/emp1.txt中的内容为:
1#小明 #10#淘气的孩子#1997-08-08 08:08:08
2#小孙#11#爱学习的孩子#1996-08-08 09:09:09

如果按照下面的方式导出数据:
c:/>ociuldr user=scada/scada@orcl query="select * from tttt"  field=# record=0x0a file=D:/emp1.txt table=tttt

在d:/emp1.txt中的内容为如下所示(只有年月日,没有时分秒):
1#小明 #10#淘气的孩子#08-8月 -97
2#小孙#11#爱学习的孩子#08-8月 -96

通过上面的分析,我们还可以知道在查询date类型的字段的时候,我们可以通过to_char的转换,转为任意格式的显示格式。
select to_char(birthday,'hh24:mi') from scada.tttt;
08:08
09:09

必须注意到在ociuldr中,把date类型的字段作为一个普通的String进行了处理。

使用sqlldr导入数据

删除tttt表中的记录通过sqlldr把导出的数据导入到tttt表中去,注意必须是第一次通过调用to_char使用yyyy-mm-dd hh24:mi:ss格式导出date类型记录.

注意: 当使用ociuldr生成控制脚本的时候,由于时间字段使用了to_char函数转换为了字符格式,因此在控制文件中date类型的字段变为了char字段,必须手动改为date,并且定义自己需要的格式.

控制文件tttt_sqlldr.ctl的内容是:
--
-- Generated by OCIULDR
--
OPTIONS(BINDSIZE=8388608,READSIZE=8388608,ERRORS=-1,ROWS=50000)
LOAD DATA
INFILE 'D:/emp1.txt' "STR X'0a'"
INTO TABLE tttt
FIELDS TERMINATED BY X'23' TRAILING NULLCOLS
(
  ID CHAR(40),
  NAME CHAR(20),
  AGE CHAR(40),
  DESCRIPTION CHAR(200),
  BIRTHDAY DATE "YYYY-MM-DD HH24:MI:SS"
)

在控制台命令行下运行: c:/>sqlldr scada/scada@orcl control=d:/tttt_sqlldr.ctl 

 

关于ociuldr数据导出工具的使用说明

关于ociuldr数据导出工具的使用说明 一、工具说明 在日常开发过程中,我们经常要把数据库中的数据导出到文本文件(如CSV、Excel等)中,但Oracle本身并不提供导出数据到文件文件的工具,...

使用Hibernate如何在Oracle中插入Date类型的数据

不是吧,既然显示为科学计数,肯定是有问题了,不然为什么不能正常显示呢,而且读取时也会出错,5楼提示的我也试过了,问题一样,没有变化。 把代码贴出一部分吧,希望能帮找出问题。 Java code ...
  • ouou009
  • ouou009
  • 2012年03月15日 22:10
  • 686

springmvc使用实体类接收表单提交数据中含有String类型对应Date类型的不匹配报错400时如何处理

springmvc使用实体类接收表单提交数据中含有String类型对应Date类型的不匹配情况,页面提交表单报错400,时如何处理? 参看博客:http://blog.csdn.net/u0140...
  • zlsdmx
  • zlsdmx
  • 2017年02月08日 10:05
  • 1324

使用Hibernate轻松解决java中date与datetime类型不兼容的问题

在建立MySQL表使,发帖时间用的datetime类型。并且用系统函数now()来实现。在Java实体类中用的java.util.date类型。发现这是犯愁了,众所周至,java中时间类型一直是让人头...

Table 组件使用指南之十八:自定义Date类型字段过滤器

运行环境:JDeveloper 11.1.2.1.0 + Oracle Database 10g Express Edition 10.2.0.1。 Date类型的字段,如果使用默认的Table...
  • Beckben
  • Beckben
  • 2014年08月20日 20:41
  • 721

使用BeanUtils时,Date类型值为空的解决方法

使用BeanUtils时,Date类型值为空的解决方法 org.apache.commons.beanutils.ConversionException: No value specified ...

使用BeanUtils时,Date类型值为空的解决方法

org.apache.commons.beanutils.ConversionException: No value specified for 'Date' 现在系统里原先不出错的地方老是出现以上...

Oracle的数据类型转换 to_char(date)

Oracle的数据类型转换 to_char(date) Oracle的数据类型转换 Oracle的数据类型转换分为显式数据类型转换和隐式类型转换 在通常情况下,隐式数据类型转换是可用的...
  • haiross
  • haiross
  • 2014年03月21日 16:57
  • 1397

JDBC中Date类型数据的插入

package com.mypractice.five; import java.sql.Connection; import java.sql.DriverManager; import java...

C#下,展示数据库中的date数据类型的问题

项目开发中(ASP.NET MVC框架开发)遇到的一个问题是,数据库中存放了date类型的数据,在前台页面显示的时候总会带着时间值,现在想仅仅显示日期,不要时间值。 这个问题出现的原因是:C#本身只有...
  • JOKERTT
  • JOKERTT
  • 2016年05月20日 10:12
  • 2279
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对使用ociuldr导出date类型数据的使用体会.
举报原因:
原因补充:

(最多只允许输入30个字)