Sql-Loader实现excel数据导入oracle相关问题

bluedream8866 2013-03-12 10:32:52
我想把excel数据导入oracle中,oracle服务器是AIX系统
1.首先利用pl/sql在oracle数据库中创建了表
create table tantest
(
aid VARCHAR2(20) not null,
aname VARCHAR2(20),
adept VARCHAR2(50),
apost VARCHAR2(50),
aworkday VARCHAR2(10),
aweek VARCHAR2(10),
amonth VARCHAR2(10),
atotal VARCHAR2(10),
amlevel VARCHAR2(10),
amnum VARCHAR2(10),
anlevel VARCHAR2(10),
annum VARCHAR2(10),
afinaltotal VARCHAR2(10),
afinaltotalb VARCHAR2(10),
afinaltotalc VARCHAR2(10)
)
2.然后新建excel文件,内容如下:

然后将该excel文件另存为tantest.csv
3.创建input.ctl文件,内容为
load data
infile '/tantest.csv'
append into table HR_ASSESS fields terminated by ','
trailing nullcols
(aid,aname,adept,apost,aworkday,aweek,amonth,atotal,amlevel,amnum,anlevel,annum,afinaltotal,afinaltotalb,afinaltotalc)

4.然后在我电脑(win7系统)命令行下输入命令:sqlldr userid=user1/password@netservice control=input.ctl

问题:tantest.csv和input.ctl这两个文件要上传至oracle服务器,请问要传到哪个目录下,该命令才能正常执行,oracle服务器是AIX系统
...全文
626 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bluedream8866 2013-03-13
  • 打赏
  • 举报
回复
问题解决了 文件放在客户端就可以了, 谢谢大家的指点!O(∩_∩)O~
bluedream8866 2013-03-12
  • 打赏
  • 举报
回复
这命令只能在服务器上运行? 我已经连接至服务器了,sqlldr userid=username/password@netservice
zhumingxu1984 2013-03-12
  • 打赏
  • 举报
回复
放到服务器目录不对吧,这个应该是放到本地的,就像imp一样,是客户端命令
bluedream8866 2013-03-12
  • 打赏
  • 举报
回复
是全路径啊,都放在root根目录下了

还是找不到文件
manbufenglin 2013-03-12
  • 打赏
  • 举报
回复
不管这两个文件传到哪个目录下, 命令行下输入命令:sqlldr userid=user1/password@netservice control=控制文件的全路径, 另外,控制文件中的数据文件路径 infile '/tantest.csv' 也应是指到对应的数据文件全路径
ym630885139 2013-03-12
  • 打赏
  • 举报
回复
默认你的数据库用户有导入权限,且从你的本地(win7系统)能连接数据库。 假设: A.要导入数据文件位置:D:\tantest.csv B.控制文件位置:D:\input.ctl 则1.控制文件input.ctl内容应该如下: load data infile 'D:\tantest.csv' append into table HR_ASSESS fields terminated by ',' trailing nullcols (aid,aname,adept,apost,aworkday,aweek,amonth,atotal,amlevel,amnum,anlevel,annum,afinaltotal,afinaltotalb,afinaltotalc) 2.命令行下输入命令:sqlldr userid=user1/password@netservice control=D:\input.ctl
lhdz_bj 2013-03-12
  • 打赏
  • 举报
回复
嗯,这个命令可以在任何地方,如果在服务器上,可以去掉netservice名。还有,路径最好用全路径名。
zhumingxu1984 2013-03-12
  • 打赏
  • 举报
回复
引用 4 楼 bluedream8866 的回复:
这命令只能在服务器上运行? 我已经连接至服务器了,sqlldr userid=username/password@netservice
可以在客户端或者服务器运行,在哪里运行,ctl文件跟你的csv文件就要放到哪里
NLP爱好者 2013-03-12
  • 打赏
  • 举报
回复
1、你连接服务器是通过windows的客户端连接的,所以你是通过客户端导数据,因为有两个问题你要注意: A、你必须要有权限导数据 B、你再导入数据的时候,在客户端执行的时候,你默认的目录是在哪里,你的对应文件就要放在那里,否则,你的文件就要制定存放路径来执行如: “D:\XXXXXX.ctl”

3,492

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧