文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>oracle sqlldr再使用

oracle sqlldr再使用

时间:2010-12-17  来源:hero--008

关于oracle的sqlldr很长时间没使用了,今天xxx项目组的同事给了两个某游戏的角色登录日志需要进行分析那首先要导到数据库里啊,因此今天也就温故了下sqlldr的用法,其实以前的文章有记录过,不过这次又有新的学习注意点故做个记录: 首先创建导入数据的table:

CREATE TABLE temp_role_data
(
   gateway VARCHAR2 (32),
   gameserver CHAR (4),
   login_time DATE,
   account VARCHAR2 (32),
   ip CHAR (15),
   mac CHAR (12),
   role_name VARCHAR2 (32),
   level_id INT,
   login_type CHAR (1),
   login_ip CHAR (15),
   flag CHAR (1)
)

第二步创建控制文件:

LOAD DATA
INFILE 'd:\wangtong.ctl'
INSERT INTO TABLE temp_role_data
APPEND
FIELDS TERMINATED BY X'09'--注意这里这个很关键,就是你的数据文件的分隔符,通常CSV的是以,txt的呢是以tab制表符,如果不知道分隔符的话一个小技巧复制一行贴到ue里以16进制查看下

TRAILING NULLCOLS
(
gateway,
gameserver,
login_time DATE 'YYYY-MM-DD HH24:MI:SS',
account,
ip,
mac,
role_name CHAR(1000),
level_id,
login_type,
login_ip,
flag
)

第三步呢就是在cmd下导入了,我是在win客户端下导入的

C:\Documents and Settings\Administrator>sqlldr userid=role_data_f3/"""^DVcRcb@@!& #h!+_-$"""@charge_107 control=d:\fs3_role.ctl log=d:\fs3.log bad=d:\fs3_2.ba d errors=5000 direct=Y

注意这里又有一个知识点,就是当我们的数据库用户密码中出现了一些特殊字符时我们应该如何在sqlplus,exp,imp或者sqlldr下写入呢? 贴一个以前在网上搜索到的方法: 假如数据库网络连接串是db_wending, 密码是 dba/123,@lk.com
SQLPLUS下(密码用一对双引号括住):  SQL> alter user u_test identified by "dba/123,@lk.com"; SQL> conn u_test/"dba/123,@lk.com"@db_wending
Linux下(密码用一对双引号, 整体userid用对单引号括住):  $ exp 'u_test/"dba/123,@lk.com"@db_wending' file=u_test.dmp buffer=4096000
windows下(密码前后分别用三个双引号括住):  D:\> exp u_test/"""dba/123,@lk.com"""@db_wending file=u_test.dmp buffer=4096000

OK,最后检查下日志文件和bad文件看装载是否全部成功装入就可以了,如果有错误,看日志再做相应的处理。
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载