这篇笔记是学习《三思笔记之一步一步学ORACLE》时做的例子,只是看书,不自己动作做一下,觉得很简单,但是实际操作一下问题就多多了,先说一下我使用的环境,使用的操作系统是WINXP, ORACLE10.2安装在VM下的RHE5中,由于WINXP和LINUX换行符的不同,让我郁闷了一晚上,第二天早上起来洗个脸就全想明白了。有时候一个问题想不明白,放一放换个心情,换个角度想想可能一下子就解决了。
1、建表
create table pet_photo (
PHOTO_FLAG NUMBER(11),
PHOTO_ID varchar2 (600),
USER_ACCOUNT varchar2 (300),
ALBUM_ID varchar2 (300),
PHOTO_NAME varchar2 (300),
PHOTO_PATH varchar2 (600),
SMALL_IMAGE_PATH varchar2 (600),
SMALL_IMAGE_FLAG NUMBER(11),
CREATE_TIME date,
UPDATE_TIME date
)
2、导入数据
> sqlldr 用户名/密码 pet_photo.ctl
在导入时间类型数据时要特殊的处理一下,三思在书中没有提到这个,还有一个问题导入日期类型,如果数据为NULL怎么办?我在网上也没找到解决办法,我这里只是将UPDATE_TIME字段全部替换成了sysdate,希望哪找高手帮忙解决一下啊。
下面是使用到的文件,全部文件可以到这里下载。
http://download.csdn.net/source/3158268
下一篇将会是实战外部表加载数据
1、pet_photo.ctl
LOAD DATA
INFILE pet_photo.csv
truncate into table pet_photo
fields terminated by ',' optionally enclosed by '"'
(PHOTO_FLAG,PHOTO_ID,USER_ACCOUNT,ALBUM_ID,PHOTO_NAME,PHOTO_PATH,SMALL_IMAGE_PATH,SMALL_IMAGE_FLAG,CREATE_TIME date "yyyy-mm-dd hh24:mi:ss", UPDATE_TIME sysdate)
2、pet_photo.csv
399,"201012220121497764.jpg","ben0133","ben0133_129295208400041274","front","userdata/ben0133","userdata/ben0133/!_201012220121497764.jpg",1,"2010-12-22 01:21:49",NULL
400,"201012220123346049.jpg","ben0133","ben0133_129295208400041274","20085266570155","userdata/ben0133","userdata/ben0133/!_201012220123346049.jpg",1,"2010-12-22 01:23:35",NULL