客户端连接数据库导入
1. 安装有oracle客户端,配好监听。
2. 以oracle数据库app用户的表user_svc_info为例
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<span style= "color:#3333ff;" > CREATE TABLE USER_SVC_INFO(
PHONE varchar2(20) NOT NULL ,
SVC_ID varchar2(32) NOT NULL ,
P_USERNAME varchar2(100) NULL ,
USER_STATUS number NOT NULL ,
P_ALIAS varchar2(50) NULL ,
IMSI varchar2(32) NULL ,
SVC_UPDATETIME timestamp (3) NULL ,
SVC_TYPE number NOT NULL ,
SVC_STATUS number NOT NULL ,
REC_UPDATETIME varchar2(20) NULL ,
SVC_IDK varchar2(32) NULL ,
PROSTART_TIME varchar2(24) NULL ,
PROEND_TIME varchar2(24) NULL ,
DOWN_TYPE number NULL );</span>
|
1
2
3
4
5
6
7
8
9
10
11
|
<span style= "color:#3333ff;" >在e:\sqlldr下创建一个控制命令的脚本文件,通常以.ctl结尾,如info.ctl
脚本内容如下:
load data
infile 'info.txt'
append into table user_svc_info
fields terminated by ','
TRAILING NULLCOLS
(PHONE,SVC_ID,P_USERNAME,USER_STATUS,P_ALIAS,IMSI,
SVC_UPDATETIME timestamp 'yyyy-mm-dd hh24:mi:ss.ff' ,
SVC_TYPE,SVC_STATUS,REC_UPDATETIME,SVC_IDK,
PROSTART_TIME,PROEND_TIME,DOWN_TYPE)</span>
|
解释说明:
infile 'info.txt' 表示要导入的文本文件名为info.txt
append into table 后接要导入的表名
此处用append表示追加到表中,若用
Insert 表示导入空表,有数据则停止;
Replace表示原来表中如果有数据,则会被删除(用delete from table语句)
Truncate表示原来表中如果有数据,则会被清除(用truncate table语句)
fields terminated by ',' 数据中每行记录用”,”分隔
TRAILING NULLCOLS 表的字段没有对应的值时允许为空
括号内为表的所有字段,日期格式的字段要进行转换,如上SVC_UPDATETIME若是date类型,则用SVC_UPDATETIME date 'yyyy-mm-dd hh24:mi:ss'
脚本写好后,脚本与info.txt放在同一个文件夹内,在cmd下执行命令:
E:
cd e:\sqlldr
sqlldr userid=app/app@imusic control=info.ctl
表数据导出:在操作系统下创建导出脚本(要赋予此脚本可执行权限):
表数据导出脚本:
以app用户下的user_svc_info为例,若要使如下语句的结果导出成.txt文件,每个字段的值以”,”分隔:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
Select phone,svc_type,svc_udatetime from user_svc_ifno where rownum<100;
可以oracle用户登录系统,创建脚本如vim info.sh
#!/bin/bash
sqlplus "app/app" <<EOF
set heading off ;
set echo off ;
set feedback off ;
set verify off ;
set wrap off ;
set pagesize 0;
set linesize 2500;
set trimout on ;
set trimspool on ;
spool /usr/ local /oracle/user_svc_info_sql.txt;
select phone|| ',' ||svc_type|| ',' ||svc_updatetime from user_svc_info where rownum<100;
set define on ;
set heading on ;
set echo on ;
set feedback on ;
spool off
quit;
EOF
|
执行脚本:
1
|
./info.sh
|
生成的user_svc_info_sql.txt文件则是想导出的数据文件。
Set heading on/off; 让结果行的标题显示/不显示
set echo on/off;控制是否在执行命令时打印出所执行的命令,OFF则不打印。
set feedback on/off显示由脚本返回的记录数时,脚本选择至少n个记录。 ON或OFF打开或关闭此显示。
set verify on/off控制是否列出在sql语句或PL/SQL脚本中变量替换的值
set wrap on/off; 控制是否截断选定行显示如果当前行太宽长。OFFz则是关闭选定行截断;既允许选择的行换行到下一行。
set trimout on/off;确定是否允许在每行末尾显示空白,OFF允许在每行末尾显示空白,ON不允许输出空白。
set trimspool on/off;确定是否允许在每行末尾显示空格,OFF允许在每行末尾显示空格,ON不允许输出空格。
总结
以上就是本文关于oracle数据库导入TXT文件方法介绍,希望对大家有所帮助。感谢大家对本站的支持。
原文链接:http://blog.csdn.net/u013310119/article/details/52291514