pl/sql text importer导入csv时少一半数据

用PL/SQL的textimporter人导入CSV文件时候出现,只能导入一半数据的情况。。。请问是为什么?怎么样处理?如果是EXCEL中文本格式的问题,请问又怎么样将其... 用PL/SQL 的text importer 人导入CSV文件时候出现,只能导入一半数据的情况。。。请问是为什么?怎么样处理?
如果是EXCEL中文本格式的问题,请问又怎么样将其中的数据严格转为文本?
注:本人利用导入数据的专用软件时,出现有些字段会出现FLOAT型(在EXCEL中已经转为文本型),
应该是EXCEL转换为CSV前单元格格式的问题,但不知如何处理CS。。。大侠能不能具体针对这个问题来答一下啊
展开
 我来答
以画屏屏8748
2007-12-06 · TA获得超过7191个赞
知道大有可为答主
回答量:2581
采纳率:0%
帮助的人:3314万
展开全部
A、有一个比较麻烦但保证成功的方法。
1、在本地创建一个Access数据库,将Excel数据先导入到Access。可直接导入点击鼠标右键,选择导入,文件类型选择要导入的Excel文件,也可通过创建宏用TransferSpreadsheet函数实现。
2、在本地创建ODBC,链接oracle数据库。将oracle中需要导入数据的表以链接表的方式在本地Access中创建(千万不要使用导入表)。
3、在Access数据库中创建插入查询将导入好的Excel数据导入到oracle中。

此方法保证成功。

B、也可以导入sql server 用它的导出工具导入oracle 但对一些image字段支持不好,你如果
没这种字段就行。

用MS_sqlserver 提供的数据导出导入功能可以方便的把excel方便的导入oracle数据库

C、一种方法:
先把Excel另存为.csv格式文件,如test.csv,再编写一个insert.ctl
用sqlldr进行导入!
insert.ctl内容如下:
load data --1、控制文件标识
infile 'test.csv' --2、要输入的数据文件名为test.csv
append into table table_name --3、向表table_name中追加记录
fields terminated by ',' --4、字段终止于',',是一个逗号
(field1,
field2,
field3,
...
fieldn)-----定义列对应顺序

注意括号中field排列顺序要与csv文件中相对应
然后就可以执行如下命令:
sqlldr user/password control=insert.ctl

有关SQLLDR的问题

控制文件:input.ctl,内容如下:
load data --1、控制文件标识
infile 'test.txt' --2、要输入的数据文件名为test.txt
append into table test --3、向表test中追加记录
fields terminated by X'09' --4、字段终止于X'09',是一个制表符(TAB)
(id,username,password,sj) -----定义列对应顺序

其中append为数据装载方式,还有其他选项:
a、insert,为缺省方式,在数据装载开始时要求表为空
b、append,在表中追加新记录
c、replace,删除旧记录,替换成新装载的记录
d、truncate,同上

问题:SQLLDR能不能保留表中原有的数据,如果发现KEY重复时,再UPDATE对应的记录?

D、先?EXCEL文件??成TXT文件
再使用SQLLOADER

E、将EXCEL文件保存成*.csv格式. 然后用sqlload来导入表中.

sqlload是Oracle自带的数据倒入工具,应该是没有可视化工具的(至少我一直用命令行)。
直接在命令行下敲入sqlldr即可得到帮助。

F、如果你的单个文件不大的情况下(少于100000行), 可以全选COPY ,然后用PL/SQL.:
select * from table for update. 然后打开锁, 再按一下加号. 鼠标点到第一个空格然后粘贴. COMMIT即可.(小窍门, ORACLE不支持的, 但很好用, 不会有问题)

G、Golden的imp/exp工具可以直接导入文本文件,非常简单

下面这个不知道是针对以上哪种方法的:
放心:excel文件最多只有65536条记录
不放心:曾经如此导过,但当有中文字段时可能出现异常(PL/SQL DEV5)

我用的是A,OK,时间仓促,其他的没有试过。

http://www.itpub.net/101803.html 这个帖子如是说:

你用的方法可能是:
1. 存成txt文件, 再用sql*loader
2. 存成txt文件, 再用第三方工具(如pb, delphi, toad, pl/sql dev等)导入.

sql*loader用起来费劲, 为了小小的需求, 装一个第三方工具麻烦.
看看我的方法.

比如文件中有id, name两列(分别为A列和B列), 要导入的表为person(person_id, person_name)

在excel 文件的sheet的最右列, 添加一列, 对应第一行数据的单元格写入以下内容:

= "INSERT INTO PERSON(PERSON_ID, PERSON_NAME) VALUES('" & A1 & "', '" & B1 & "');"

然后把这一行复制到所有数据行对应的列中.

这一列的内容拷贝出去保存, 即成为可以直接在sql*plus下运行的脚本.

方法一?日期型?位不适用

A、把Excel文件导到Acess里,然后打开要导数据的表。

打开 PLSQL DEV,打开一个SQL窗口,执行
select * from [tab] for update

然后一列一列的从Acess里copy & paste 。

B、excel->copy->pl/sql developer>paste

实际操作时发现,使用 copy / paste 经常会发生莫其妙的问题。尤其是通过 access ( ODBC) copy 入 oracle 时。

EXECL -->SAVE AS *.CSV(COMMA DELIMITED). THEN LOAD IT DIRECTLY.

CTL FILE EXAMPLE
------------
Load Data
INFILE 'E:\AA.csv'
TRUNCATE
INTO TABLE AA
FIELDS TERMINATED BY ','
(A,
B)

C、在ACCESS中将ORACLE TABLE 映射,然后直接插入即可。很方便,也没发现有数据错误问题。
曾经有一个很麻烦的LONG RAW问题,用这个办法也解决了

D、用SQL*XL就可以直接将EXCEL文件导入ORACLE,很方便的,我一直用SQL*XL。

E、我常用的办法是从excel中copy到ultraEdit中,然后用列编辑功能加上insert into ....等等,也挺好用

F、用plsql developer,很好用的,直接copy就可以了

在pl/sql developer 中选择表的多个字段名,然后就可以paste 了

G、用odbc加pb的数据管道可以在不同的数据库(文本)之间传输数据

H、odbc+pb

用不同的odbc驱动程序连接不通的数据库
然后在pb环境中启动数据管道,利用数据管道传输数据

I、先倒成。DBF的文件,再用DELPHI DATABASE DESKTOP 导入ORACLE很方便的,也且也可以支持空值导入。
cyxjoe
2007-12-06
知道答主
回答量:15
采纳率:0%
帮助的人:4.5万
展开全部
应该是逗号问题,即转为csv文件的时候某些字段为空的情况下,转为CSV文件就会少了一些逗号,解决方法是将要处理的数据全部选中进行处理,然后另存为csv文件,这样就保证不会缺逗号,数据也就能顺利导入了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式