oracle数据库导入TXT文件方法介绍
客户端连接数据库导入 1. 安装有oracle客户端,配好监听。 2. 以oracle数据库app用户的表user_svc_info为例 <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> <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: 表数据导出:在操作系统下创建导出脚本(要赋予此脚本可执行权限): 表数据导出脚本: 以app用户下的user_svc_info为例,若要使如下语句的结果导出成.txt文件,每个字段的值以”,”分隔: 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 执行脚本: ./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文件方法介绍,希望对大家有所帮助。感兴趣的朋友可以参阅:Oracle RMAN自动备份控制文件方法介绍 、 oracle 数据库启动阶段分析 、 oracle 虚拟专用数据库详细介绍 等。感谢大家对本站的支持。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- SQLServer 2008 技术内幕——T-SQL 查询 笔记
- MSSQLServer基础07(事务,存储过程,分页的存储过程,触发器
- sql-server – 如何将计算列添加到EF4模型?
- SQL Server Linq to SQL 插入数据时的一个问题
- 数据库设计 – 将街道地址拆分为单个列可以解决哪些问题?
- sql-server – 外键后的SQL连接:静态检查LHS是否是密钥保留
- sql-server – SQL Server:以编程方式执行维护计划
- DB2中的sql – generate_series()等效项
- 为什么简单的T-SQL UDF函数会使代码执行速度降低3倍
- linux下mysql自动备份脚本代码