oracle数据库导入TXT文件方法介绍
客户端连接数据库导入
1.安装有oracle客户端,配好监听。
2.以oracle数据库app用户的表user_svc_info为例
CREATETABLEUSER_SVC_INFO( PHONEvarchar2(20)NOTNULL, SVC_IDvarchar2(32)NOTNULL, P_USERNAMEvarchar2(100)NULL, USER_STATUSnumberNOTNULL, P_ALIASvarchar2(50)NULL, IMSIvarchar2(32)NULL, SVC_UPDATETIMEtimestamp(3)NULL, SVC_TYPEnumberNOTNULL, SVC_STATUSnumberNOTNULL, REC_UPDATETIMEvarchar2(20)NULL, SVC_IDKvarchar2(32)NULL, PROSTART_TIMEvarchar2(24)NULL, PROEND_TIMEvarchar2(24)NULL, DOWN_TYPEnumberNULL);
在e:\sqlldr下创建一个控制命令的脚本文件,通常以.ctl结尾,如info.ctl 脚本内容如下: loaddata infile'info.txt' appendintotableuser_svc_info fieldsterminatedby',' TRAILINGNULLCOLS (PHONE,SVC_ID,P_USERNAME,USER_STATUS,P_ALIAS,IMSI, SVC_UPDATETIMEtimestamp'yyyy-mm-ddhh24:mi:ss.ff', SVC_TYPE,SVC_STATUS,REC_UPDATETIME,SVC_IDK, PROSTART_TIME,PROEND_TIME,DOWN_TYPE)
解释说明:
infile'info.txt'表示要导入的文本文件名为info.txt
appendintotable后接要导入的表名
此处用append表示追加到表中,若用
Insert表示导入空表,有数据则停止;
Replace表示原来表中如果有数据,则会被删除(用deletefromtable语句)
Truncate表示原来表中如果有数据,则会被清除(用truncatetable语句)
fieldsterminatedby',' 数据中每行记录用”,”分隔
TRAILINGNULLCOLS 表的字段没有对应的值时允许为空
括号内为表的所有字段,日期格式的字段要进行转换,如上SVC_UPDATETIME若是date类型,则用SVC_UPDATETIMEdate'yyyy-mm-ddhh24:mi:ss'
脚本写好后,脚本与info.txt放在同一个文件夹内,在cmd下执行命令:
E:
cde:\sqlldr
sqlldruserid=app/app@imusiccontrol=info.ctl
表数据导出:在操作系统下创建导出脚本(要赋予此脚本可执行权限):
表数据导出脚本:
以app用户下的user_svc_info为例,若要使如下语句的结果导出成.txt文件,每个字段的值以”,”分隔:
Selectphone,svc_type,svc_udatetimefromuser_svc_ifnowhererownum<100; 可以oracle用户登录系统,创建脚本如viminfo.sh #!/bin/bash sqlplus"app/app"<执行脚本:
./info.sh
生成的user_svc_info_sql.txt文件则是想导出的数据文件。
Setheading on/off; 让结果行的标题显示/不显示
setechoon/off;控制是否在执行命令时打印出所执行的命令,OFF则不打印。
setfeedbackon/off显示由脚本返回的记录数时,脚本选择至少n个记录。ON或OFF打开或关闭此显示。
setverifyon/off控制是否列出在sql语句或PL/SQL脚本中变量替换的值
setwrapon/off;控制是否截断选定行显示如果当前行太宽长。OFFz则是关闭选定行截断;既允许选择的行换行到下一行。
settrimouton/off;确定是否允许在每行末尾显示空白,OFF允许在每行末尾显示空白,ON不允许输出空白。
settrimspoolon/off;确定是否允许在每行末尾显示空格,OFF允许在每行末尾显示空格,ON不允许输出空格。
总结
以上就是本文关于oracle数据库导入TXT文件方法介绍,希望对大家有所帮助。感兴趣的朋友可以参阅:OracleRMAN自动备份控制文件方法介绍 、oracle数据库启动阶段分析 、 oracle虚拟专用数据库详细介绍等。感谢大家对本站的支持。