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

 更新时间:2017年09月27日 17:33:42   作者:李晓LOVE向阳  
这篇文章主要介绍了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:
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"<<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 虚拟专用数据库详细介绍 等。感谢大家对本站的支持。

相关文章

  • List集合多个复杂字段判断去重的案例

    List集合多个复杂字段判断去重的案例

    今天小编就为大家分享一篇关于List集合多个复杂字段判断去重的案例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • JVM完全解读之YGC来龙去脉分析

    JVM完全解读之YGC来龙去脉分析

    YGC是JVM GC当前最为频繁的一种GC,一个高并发的服务在运行期间,会进行大量的YGC,发生YGC时,会进行STW,一般时间都很短,除非碰到YGC时,存在大量的存活对象需要进行拷贝
    2022-01-01
  • Java Assert.assertEquals案例详解

    Java Assert.assertEquals案例详解

    这篇文章主要介绍了Java Assert.assertEquals案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Java 8 Stream filter流式过滤器详解

    Java 8 Stream filter流式过滤器详解

    本文介绍了Java 8的Stream API中的filter方法,展示了如何使用lambda表达式根据条件过滤流式数据,通过实际代码示例,展示了filter方法的高效性以及如何结合findAny和orElse方法处理更复杂的情况,适合Java新手和追求代码优雅的开发者阅读,感兴趣的朋友一起看看吧
    2025-02-02
  • Spring-AOP 静态正则表达式方法如何匹配切面

    Spring-AOP 静态正则表达式方法如何匹配切面

    这篇文章主要介绍了Spring-AOP 静态正则表达式方法如何匹配切面的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Java源码解析HashMap简介

    Java源码解析HashMap简介

    今天小编就为大家分享一篇关于Java源码解析HashMap简介,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • JUC中的wait与notify方法实现原理详解

    JUC中的wait与notify方法实现原理详解

    这篇文章主要介绍了JUC中的wait与notify方法实现原理,在进行wait()之前,就代表着需要争夺Synchorized,而Synchronized代码块通过javap生成的字节码中包含monitor enter和monitor exit两个指令
    2023-03-03
  • Java实现自定义LinkedList类的示例代码

    Java实现自定义LinkedList类的示例代码

    LinkedList类跟ArrayList类不同,它通过指针以及结点的操作对链表进行增删改查。本文就来和大家分享下Java如何为实现自定义LinkedList类,需要的可以参考一下
    2022-08-08
  • Java中Synchronized锁的使用和原理详解

    Java中Synchronized锁的使用和原理详解

    这篇文章主要介绍了Java中Synchronized锁的使用和原理详解,synchronized是 Java 内置的关键字,它提供了一种独占的加锁方式,synchronized的获取和释放锁由JVM实现,用户不需要显示的释放锁,非常方便,需要的朋友可以参考下
    2023-07-07
  • Spring Boot中优雅地处理参数传递的技巧分享

    Spring Boot中优雅地处理参数传递的技巧分享

    最近一直在学习Spring Boot,今天将其中的从前台过来的参数传递总结一下,下面这篇文章主要给大家介绍了关于Spring Boot中优雅地处理参数传递的技巧,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05

最新评论