• Oracle sqlloader


    一、SQL*LOADER简介

    SQL*Loader是oracle提供的可以从多种平面文件中向数据库中加载数据的工具,使用sqlldr工具可以在很短的时间内向数据库中加载大量的数据,像把制作好的excel表格导入数据库,可以说非常方便。

    二、SQL*LOADER使用

    1、导入单列数据

    导入单列数据不需要写分隔符

    create table DF_001_20190118
    (
      ID VARCHAR2(30)
    )

    控制文件配置

    cat o_input.ctl
    load data
    infile 'sql4.txt'
    append into table dbadmin.df_004_20190118
    (
    id position(1:50)
    )

    导入语句

     sqlldr userid=XXXXX/XXXX control=o_input.ctl log=input_001.log bad=input_001.bad

    2、导入多行数据

    LOAD DATA
    INFILE *INTO TABLE BONUSFIELDS
    TERMINATED BY ","
    (ENAME,JOB,SAL)
    BEGINDATA
    SMITH,CLEAK,3904
    ALLEN,SALESMAN,
    2891WARD,SALESMAN,
    3128KING,PRESIDENT,252

    三、SQL*LOADER控制文件参数

    Load DATA
    #表示加载数据。
    INFILE 'C:sqlldrolap.date_time_15_min.txt'
    #INFILE指定数据文件,如果是INFILE *,表示加载的数据保存在控制文件中。
    INTO TABLE test.date_time_15_min
    #数据加载到的具体表名。
    APPEND|REPLACE|TRUNCATE
    #如果没有这行,默认是INSERT操作,要求表必须为空,TRUNCATE操作非传统意义上的TRUNCATE TABLE DATE_TIME_15_MIN,而是执行TRUNCATE TABLE DATE_TIME_15_MIN REUSE STORAGE操作,这点需要注意。
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
    #数据的存储是以,符号作为分割,"符号引起来的表示字符串,这是定界加载,这是最传统的方式,另外还可以定长加载,这里我们不讨论。
    TRAILING NULLCOLS
    #如果输入的数据不存在某列的数据,SQLLOADER就会为该列绑定一个NULL值。
    (APPLIEDTIME "to_date(:appliedtime,'yyyy-mm-dd hh24:mi:ss')",
    #以(符号开始表示表的字段,由于是日期字段,所以需要使用函数进行转换,函数必须用双引号引起来,:appliedtime是跟前面的APPLIEDTIME相对应。
    applieddate "to_date(:applieddate,'yyyy-mm-dd hh24:mi:ss')",
    psvcode,
    #如果字段没有指定存储类型,默认为CHAR(255),超过长度会收到Fileld in data file exceeds maximum length的报错,只需要根据长度指定类型,例如,CHAR(1000)。
    hzpsvcode,
    pointindex,
    appliedhour "to_date(:appliedhour,'yyyy-mm-dd hh24:mi:ss')"
    )
    BEGINDATA
    #下面是加载的数据,对应上面的INFILE *设置。
  • 相关阅读:
    第六周总结
    《构建之法》读后感二
    移动端疫情展示
    第五周
    用python爬取疫情数据
    第四周
    疫情图表展示和时间查询
    wpf datagrid row height 行高自动计算使每行行高自适应文本
    c# 实现mysql事务
    c# 简单实现 插件模型 反射方式
  • 原文地址:https://www.cnblogs.com/xibuhaohao/p/10287475.html
Copyright © 2020-2023  润新知