资源描述:
《oracle的数据以文本形式导入导出》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、.txt形式的文本数据导入oracle数据库:客户端连接数据库导入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)NUL
2、L,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脚本
3、内容如下:loaddatainfile'info.txt'appendintotableuser_svc_infofieldsterminatedby','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_TI
4、ME,DOWN_TYPE)解释说明:infile'info.txt'表示要导入的文本文件名为info.txtappendintotable后接要导入的表名此处用append表示追加到表中,若用Insert表示导入空表,有数据则停止;Replace表示原来表中如果有数据,则会被删除(用deletefromtable语句)Truncate表示原来表中如果有数据,则会被清除(用truncatetable语句)fieldsterminatedby','数据中每行记录用”,”分隔TRAILINGNULLCOLS表的字段没有
5、对应的值时允许为空括号内为表的所有字段,日期格式的字段要进行转换,如上SVC_UPDATETIME若是date类型,则用SVC_UPDATETIMEdate'yyyy-mm-ddhh24:mi:ss'脚本写好后,脚本与info.txt放在同一个文件夹内,在cmd下执行命令:E:cde:sqlldrsqlldruserid=app/app@imusiccontrol=info.ctl表数据导出:在操作系统下创建导出脚本(要赋予此脚本可执行权限):表数据导出脚本:以app用户下的user_svc_info为例,若要
6、使如下语句的结果导出成.txt文件,每个字段的值以”,”分隔:Selectphone,svc_type,svc_udatetimefromuser_svc_ifnowhererownum<100;可以oracle用户登录系统,创建脚本如viminfo.sh#!/bin/bashsqlplus"app/app"<7、mouton;settrimspoolon;spool/usr/local/oracle/user_svc_info_sql.txt;selectphone
8、
9、','
10、
11、svc_type
12、
13、','
14、
15、svc_updatetimefromuser_svc_infowhererownum<100;setdefineon;setheadingon;setechoon;setfeedbackon;spooloffquit;EOF执行脚本:./info.sh生成的user_svc_info_sql.txt文件则是想导出的数
16、据文件。Setheadingon/off;让结果行的标题显示/不显示setechoon/off;控制是否在执行命令时打印出所执行的命令,OFF则不打印。setfeedbackon/off显示由脚本返回的记录数时,脚本选择至少n个记录。ON或OFF打开或关闭此显示。setverifyon/off控制是否列出在sql语句或PL/SQL脚本中变量替换的值setwrapon/of