急求!急求!急求!急求!在Oracle操作中,怎么样把Excel表,导入或者导出数据库?
展开全部
导出的话,在查询结果中选中查询结果右单击就有 COPY TO EXCEL这个选择的,导入是有点麻烦的,如果你数据少的话建议参考下边的F方法。
=========================================================
将excel数据导入oracle中 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不支持的, 但很好用, 不会有问题)
=========================================================
将excel数据导入oracle中 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不支持的, 但很好用, 不会有问题)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
导出的话很简单,在excel菜单中选通过ODBC建立连接导出就行了。导入的话可以用别的工具,我以前用DELHPI编程,delphi有一个工具好像叫data pump往oracle里倒数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询