oracle数据库导入TXT文件方法介绍

网友投稿 1230 2023-03-29


oracle数据库导入TXT文件方法介绍

客户端连接数据库导入

1. 安装有oracle客户端,配好监听。

2. 以oracle数据库app用户的表user_svc_info为例

CREATE TABLE USER_SVC_INFO(

PHONE varchar2(20) NOT NULL,

SVC_ID varchar2(32) NOT NULL,

P_USERNAME varchar2(100) NULL,

USER_STATUS nuqykxfadimber 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 );

在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)

解释说明:

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文件,每个字段的值以”,”分隔:

Select phone,svc_type,svc_udatetime from user_svc_ifno where rownum<100;

可以oracle用户登录系统,创建脚本如vim info.sh

#!/bin/bash

sqlplus "app/app"<

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; &nbs

qykxfadi

p; 让结果行的标题显示/不显示

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://趣的朋友可以参阅:Oracle RMAN自动备份控制文件方法介绍 、 oracle 数据库启动阶段分析  、 oracle 虚拟专用数据库详细介绍 等。感谢大家对本站的支持。

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; &nbs

qykxfadi

p; 让结果行的标题显示/不显示

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://趣的朋友可以参阅:Oracle RMAN自动备份控制文件方法介绍 、 oracle 数据库启动阶段分析  、 oracle 虚拟专用数据库详细介绍 等。感谢大家对本站的支持。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:详解Spring Boot 部署jar和war的区别
下一篇:Java多线程ForkJoinPool实例详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~