问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sqlloader 的CTL 文件里 filter怎么写

发布网友 发布时间:2022-04-22 09:42

我来回答

1个回答

热心网友 时间:2022-04-10 05:58

  sqlldr userid=lgone/tiger control=a.ctl
  LOAD DATA
  INFILE 't.dat' // 要导入的文件
  // INFILE 'tt.date' // 导入多个文件
  // INFILE * // 要导入的内容就在control文件里 下面的BEGINDATA后面就是导入的内容
  
  INTO TABLE table_name // 指定装入的表
  BADFILE 'c:\bad.txt' // 指定坏文件地址
  
  ************* 以下是4种装入表的方式
  APPEND // 原先的表有数据 就加在后面
  // INSERT // 装载空表 如果原先的表有数据 sqlloader会停止 默认值
  // REPLACE // 原先的表有数据 原先的数据会全部删除
  // TRUNCATE // 指定的内容和replace的相同 会用truncate语句删除现存数据
  
  ************* 指定的TERMINATED可以在表的开头 也可在表的内部字段部分
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  // 装载这种数据: 10,lg,"""lg""","lg,lg"
  // 在表中结果: 10 lg "lg" lg,lg
  // TERMINATED BY X '09' // 以十六进制格式 '09' 表示的
  // TERMINATED BY WRITESPACE // 装载这种数据: 10 lg lg
  
  TRAILING NULLCOLS ************* 表的字段没有对应的值时允许为空
  
  ************* 下面是表的字段
  (
  col_1 , col_2 ,col_filler FILLER // FILLER 关键字 此列的数值不会被装载
  // 如: lg,lg,not 结果 lg lg
  )
  // 当没声明FIELDS TERMINATED BY ',' 时
  // (
  // col_1 [interger external] TERMINATED BY ',' ,
  // col_2 [date "dd-mon-yyy"] TERMINATED BY ',' ,
  // col_3 [char] TERMINATED BY ',' OPTIONALLY ENCLOSED BY 'lg'
  // )
  // 当没声明FIELDS TERMINATED BY ','用位置告诉字段装载数据
  // (
  // col_1 position(1:2),
  // col_2 position(3:10),
  // col_3 position(*:16), // 这个字段的开始位置在前一字段的结束位置
  // col_4 position(1:16),
  // col_5 position(3:10) char(8) // 指定字段的类型
  // )
  
  BEGINDATA // 对应开始的 INFILE * 要导入的内容就在control文件里
  10,Sql,what
  20,lg,show
  
  =====================================================================================
  //////////// 注意begindata后的数值前面不能有空格
  
  1 ***** 普通装载
  LOAD DATA
  INFILE *
  INTO TABLE DEPT
  REPLACE
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  (DEPTNO,
  DNAME,
  LOC
  )
  BEGINDATA
  10,Sales,"""USA"""
  20,Accounting,"Virginia,USA"
  30,Consulting,Virginia
  40,Finance,Virginia
  50,"Finance","",Virginia // loc 列将为空
  60,"Finance",,Virginia // loc 列将为空
  
  2 ***** FIELDS TERMINATED BY WHITESPACE 和 FIELDS TERMINATED BY x'09' 的情况
  LOAD DATA
  INFILE *
  INTO TABLE DEPT
  REPLACE
  FIELDS TERMINATED BY WHITESPACE
  -- FIELDS TERMINATED BY x'09'
  (DEPTNO,
  DNAME,
  LOC
  )
  BEGINDATA
  10 Sales Virginia
  
  3 ***** 指定不装载那一列
  LOAD DATA
  INFILE *
  INTO TABLE DEPT
  REPLACE
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  ( DEPTNO,
  FILLER_1 FILLER, // 下面的 "Something Not To Be Loaded" 将不会被装载
  DNAME,
  LOC
  )
  BEGINDATA
  20,Something Not To Be Loaded,Accounting,"Virginia,USA"
  
  4 ***** position的列子
  LOAD DATA
  INFILE *
  INTO TABLE DEPT
  REPLACE
  ( DEPTNO position(1:2),
  DNAME position(*:16), // 这个字段的开始位置在前一字段的结束位置
  LOC position(*:29),
  ENTIRE_LINE position(1:29)
  )
  BEGINDATA
  10Accounting Virginia,USA
  
  5 ***** 使用函数 日期的一种表达 TRAILING NULLCOLS的使用
  LOAD DATA
  INFILE *
  INTO TABLE DEPT
  REPLACE
  FIELDS TERMINATED BY ','
  TRAILING NULLCOLS // 其实下面的ENTIRE_LINE在BEGINDATA后面的数据中是没有直接对应
  // 的列的值的 如果第一行改为 10,Sales,Virginia,1/5/2000,, 就不用TRAILING NULLCOLS了
  (DEPTNO,
  DNAME "upper(:dname)", // 使用函数
  LOC "upper(:loc)",
  LAST_UPDATED date 'dd/mm/yyyy', // 日期的一种表达方式 还有'dd-mon-yyyy' 等
  ENTIRE_LINE ":deptno:dname:loc:last_updated"
  )
  BEGINDATA
  10,Sales,Virginia,1/5/2000
  20,Accounting,Virginia,21/6/1999
  30,Consulting,Virginia,5/1/2000
  40,Finance,Virginia,15/3/2001
  
  6 ***** 使用自定义的函数 // 解决的时间问题
  create or replace
  function my_to_date( p_string in varchar2 ) return date
  as
  type fmtArray is table of varchar2(25);

看看参考下!
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么我的电脑没有E/H/G,盘? 刚买的电脑无法创建d盘,不能指派驱动器号d:。只能指派abcefgh盘。创... ...了D盘的文件 卸载虚拟光驱后 计算机就成了CEFG盘 大 陈旧伤疤该用什么方法清除? 几年前被指甲弄到的疤痕,怎么让疤痕好了 opporeno5耳机模式怎么调试 最近想入手一块GTX770显卡 想入手一块GTX770的显卡 求各位大神推荐一下哪个性价比高 前提是要NV... 400×5的积末尾有两个零.___.(判断对错 如果积的末尾有一个0,则两个因数的末尾至少有一个0.___(判断对错) 请问河南澳华出国劳务公司靠谱吗? 河南澳华办出国打工可靠吗? noise filter (噪声滤波器)是干什么用的? 河南澳华可以出国劳务吗 为何java中的过滤器filter不起作用 联想笔记本G510换屏幕多少钱 java日志的filter 联想G510笔记本换屏幕多少钱? 澳华(大连)留学信息咨询有限公司怎么样? python sqlalchemy 查询条件怎么写 怎么用电脑给安卓系统安装软件 联想笔记本屏幕坏了怎么去换系统? 形容灵魂的成语 在河南澳华办出国劳务到期了没办出来,钱能退回来吗? Where Do We Go From Here (Album Version) 歌词 联想G450笔记本电脑显示屏如何更换 郑州澳华出国劳务诈骗何时才能解决 怎样形容灵魂的美是本质的美 404 Not Found 联想G510能换高分屏吗?如果能换是不是也要换屏线 在MATLAB中利用filter函数在给定输入和差分方程时求差分方程的解。 澳华精英(深圳)投资移民有限公司怎么样? matlab filter怎么写成C语言?求教 by Pass Filter Paper 是什么纸?干什么用的? 维生素e可以直接涂脸上吗? 加拿大留学要移民哪个机构靠谱? 403 Forbidden - Blocked by URL Filter 深圳前海澳华国际投资咨询有限公司怎么样? 维e可以直接涂抹在脸上吗? 关于私立汇佳澳华学校的学费出国问题 维e可以直接涂脸上吗 请问澳华美亚可以在英国提供什么服务? 澳华美亚是做什么的? 维e可以直接涂脸上么 维生素E能不能直接擦脸? 这两个香港女演员叫什么 香港女演员有哪些 香港女演员名单 佘诗曼在TVB中有什么代表作?