SQL*Loader之CASE8
CASE8
1. SQL脚本
[oracle@node3 ulcase]$ cat ulcase8.sql
set termout offrem host write sys$output "Building case 8 demonstration tables. Please wait"drop table lineitem;create table lineitem (l_orderkey number, l_partkey number, l_suppkey number, l_linenumber number, l_quantity number, l_extendedprice number, l_discount number, l_tax number, l_returnflag char, l_linestatus char, l_shipdate date, l_commitdate date, l_receiptdate date, l_shipinstruct char(17), l_shipmode char(7), l_comment char(43)) partition by range (l_shipdate) ( partition ship_q1 values less than (TO_DATE('01-APR-1996', 'DD-MON-YYYY')), partition ship_q2 values less than (TO_DATE('01-JUL-1996', 'DD-MON-YYYY')), partition ship_q3 values less than (TO_DATE('01-OCT-1996', 'DD-MON-YYYY')), partition ship_q4 values less than (TO_DATE('01-JAN-1997', 'DD-MON-YYYY')) );exit
2. 控制文件
[oracle@node3 ulcase]$ cat ulcase8.ctl
-- Copyright (c) 1991, 2004 Oracle. All rights reserved. -- NAME -- ulcase8.ctl - SQL*Loader Case Study 8: Loading Partitioned Tables -- -- DESCRIPTION -- This case study demonstrates the following: -- Partitioning of data. -- -- Explicitly defined field positions and datatypes. -- -- Loading data using the fixed-record-length option. -- -- TO RUN THIS CASE STUDY: -- 1. Before executing this control file, log in to SQL*Plus as -- scott/tiger. Enter @ulcase8 to execute the SQL script for -- this case study. This prepares and populates tables and -- then returns you to the system prompt. -- -- 2. At the system prompt, invoke the case study as follows: -- sqlldr USERID=scott/tiger CONTROL=ulcase8.ctl LOG=ulcase8.log -- -- NOTES ABOUT THIS CONTROL FILE -- This control file loads the lineitem table with fixed-length -- records, partitioning the data according to shipment date. -- -- The INFILE clause specifies that each record in the datafile is -- of fixed length (129 bytes in this example). -- -- The PARTITION clause identifies the column name and location of the -- data in the datafile to be loaded into each column. -- LOAD DATAINFILE 'ulcase8.dat' "fix 129" BADFILE 'ulcase8.bad' TRUNCATE INTO TABLE lineitem PARTITION (ship_q1)(l_orderkey position (1:6) char,l_partkey position (7:11) char,l_suppkey position (12:15) char,l_linenumber position (16:16) char,l_quantity position (17:18) char,l_extendedprice position (19:26) char,l_discount position (27:29) char,l_tax position (30:32) char,l_returnflag position (33:33) char,l_linestatus position (34:34) char,l_shipdate position (35:43) char,l_commitdate position (44:52) char,l_receiptdate position (53:61) char,l_shipinstruct position (62:78) char,l_shipmode position (79:85) char,l_comment position (86:128) char)
3. 数据文件
[oracle@node3 ulcase]$ cat ulcase8.dat
1 151978511724386.60 7.04.0NO09-SEP-6412-FEB-9622-MAR-96DELIVER IN PERSONTRUCK iPBw4mMm7w7kQ zNPL i261OPP 1 2731 73223658958.28.09.06NO12-FEB-9628-FEB-9620-APR-96TAKE BACK RETURN MAIL 5wM04SNyl0AnghCP2nx lAi 1 3370 3713 810210.96 .1.02NO29-MAR-9605-MAR-9631-JAN-96TAKE BACK RETURN REG AIRSQC2C 5PNCy4mM 1 5214 46542831197.88.09.06NO21-APR-9630-MAR-9616-MAY-96NONE AIR Om0L65CSAwSj5k6k 1 6564 6763246897.92.07.02NO30-MAY-9607-FEB-9603-FEB-96DELIVER IN PERSONMAIL CB0SnyOL PQ32B70wB75k 6Aw10m0wh 1 7403 160524 31329.6 .1.04NO30-JUN-9614-MAR-9601 APR-96NONE FOB C2gOQj OB6RLk1BS15 igN 2 8819 82012441659.44 0.08NO05-AUG-9609-FEB-9711-MAR-97COLLECT COD AIR O52M70MRgRNnmm476mNm 3 9451 721230 41113.5.05.01AF05-SEP-9629-DEC-9318-FEB-94TAKE BACK RETURN FOB 6wQnO0Llg6y 3 9717 1834440788.44.07.03RF09-NOV-9623-DEC-9315-FEB-94TAKE BACK RETURN SHIP LhiA7wygz0k4g4zRhMLBAM 3 9844 1955 6 8066.64.04.01RF28-DEC-9615-DEC-9314-FEB-94TAKE BACK RETURN REG AIR6nmBmjQkgiCyzCQBkxPPOx5j4hB 0lRywgniP1297
执行后结果:
[oracle@node3 ulcase]$ sqlplus scott/tiger @ulcase8.sql
[oracle@node3 ulcase]$ sqlldr userid=scott/tiger control=ulcase8.ctl
SQL> select L_ORDERKEY,L_PARTKEY,L_SHIPDATE from lineitem;
L_ORDERKEY L_PARTKEY L_SHIPDAT
---------- ---------- ---------
1 1519 09-SEP-64
1 2731 12-FEB-96
1 3370 29-MAR-96
--因为列数太多,在这里我们只选取三列,可见只有三条记录被插入。
查看日志文件:
[oracle@node3 ulcase]$ cat ulcase8.log
SQL*Loader: Release 11.2.0.1.0 - Production on Fri Sep 19 03:30:54 2014Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.Control File: ulcase8.ctl Data File: ulcase8.datFile processing option string: "fix 129"Bad File: ulcase8.badDiscard File: none specified(Allow all discards)Number to load: ALL Number to skip: 0 Errors allowed: 50 Bind array: 64 rows, maximum of 256000 bytes Continuation: none specified Path used: ConventionalTable LINEITEM, partition SHIP_Q1, loaded from every logical record. Insert option in effect for this partition: TRUNCATEColumn Name Position Len Term Encl Datatype ------------------------------ ---------- ----- ---- ---- --------------------- L_ORDERKEY 1:6 6 CHARACTER L_PARTKEY 7:11 5 CHARACTER L_SUPPKEY 12:15 4 CHARACTER L_LINENUMBER 16:16 1 CHARACTER L_QUANTITY 17:18 2 CHARACTER L_EXTENDEDPRICE 19:26 8 CHARACTER L_DISCOUNT 27:29 3 CHARACTER L_TAX 30:32 3 CHARACTER L_RETURNFLAG 33:33 1 CHARACTER L_LINESTATUS 34:34 1 CHARACTER L_SHIPDATE 35:43 9 CHARACTER L_COMMITDATE 44:52 9 CHARACTER L_RECEIPTDATE 53:61 9 CHARACTER L_SHIPINSTRUCT 62:78 17 CHARACTER L_SHIPMODE 79:85 7 CHARACTER L_COMMENT 86:128 43 CHARACTER Record 4: Rejected - Error on table LINEITEM, partition SHIP_Q1. ORA-14401: inserted partition key is outside specified partitionRecord 5: Rejected - Error on table LINEITEM, partition SHIP_Q1. ORA-14401: inserted partition key is outside specified partitionRecord 6: Rejected - Error on table LINEITEM, partition SHIP_Q1. ORA-14401: inserted partition key is outside specified partitionRecord 7: Rejected - Error on table LINEITEM, partition SHIP_Q1. ORA-14401: inserted partition key is outside specified partitionRecord 8: Rejected - Error on table LINEITEM, partition SHIP_Q1. ORA-14401: inserted partition key is outside specified partitionRecord 9: Rejected - Error on table LINEITEM, partition SHIP_Q1. ORA-14401: inserted partition key is outside specified partitionRecord 10: Rejected - Error on table LINEITEM, partition SHIP_Q1. ORA-14401: inserted partition key is outside specified partitionTable LINEITEM, partition SHIP_Q1:3 Rows successfully loaded.7 Rows not loaded due to data errors.0 Rows not loaded because all WHEN clauses were failed.0 Rows not loaded because all fields were null.Space allocated for bind array: 11008 bytes(64 rows) Read buffer bytes: 1048576Total logical records skipped: 0 Total logical records read: 10 Total logical records rejected: 7 Total logical records discarded: 0Run began on Fri Sep 19 03:30:54 2014 Run ended on Fri Sep 19 03:30:54 2014Elapsed time was: 00:00:00.31 CPU time was: 00:00:00.03
总结: 在本例中
1> PARTITION (ship_q1)子句表明只有符合这个分区范围内的值才能被插入,即l_shipdate小于01-APR-1996的数据可被插入。
转载于:https://www.cnblogs.com/ivictor/p/3981517.html
SQL*Loader之CASE8相关推荐
- Oracle SQL Loader的详细语法
Oracle SQL Loader的详细语法 SQL*LOADER是ORACLE的数据加载工具,通常用来将操作系统文件迁移到ORACLE数据库中.SQL*LOADER是大型数据 仓库选择使用的 ...
- linux oracle path恢复,Linux 环境下Oracle安装与调试(七)之SQL Loader,备份和恢复
1.SQL Loader sql loader其实就是 把数据文件的数据插入到oracle数据表中. sql*loader 使用格式如下: sqlldr userid control data 也就是 ...
- sql loader 导入数据时的问题
2019独角兽企业重金招聘Python工程师标准>>> 在使用oracle sql loader 工具导入数据时遇到的问题,具体的shell脚本如下: #!/bin/bashexpo ...
- SQL Loader 的使用详解
Oracle 的SQL*LOADER可以将外部数据加载到数据库表中.下面是SQL*LOADER的基本特点: 1)能装入不同数据类型文件及多个数据文件的数据 2)可装入固定格式,自由定界以及可度长格式的 ...
- SQL*Loader 笔记 (一) 热身练习
SQL*Loader是加载数据的主流方法 传统路径:SQLLDR会利用SQL插入的方式加载数据 直径路径:直接格式化数据块 从一个平面文件读取数据,并将其直接写至格式化的数据库块,而绕开整个SQL引擎 ...
- oracle批量加载,Oracle教程:使用SQL*Loader高速批量数据加载工具
Oracle教程:使用SQL*Loader高速批量数据加载工具 1.控制文件中包含要加载的数据 首先创建一张测试表 然后创建一个控制文件(其中包含被加载的数据) 然后在命令行执行加载 查看dept表 ...
- java sqlldr导入_使用SQL*LOADER将TXT或CSV数据导入ORACLE(转)
一.简介 SQL*LOADER是ORACLE的数据加载工具,通常用来将操作系统文件迁移到ORACLE数据库中.SQL*LOADER是大型数据仓库选择使用的加载方法,因为它提供了最快速的途径(DIREC ...
- oracle数据库开多线程,学习笔记:Oracle表数据导入 DBA常用单线程插入 多线程插入 sql loader三种表数据导入案例...
天萃荷净 oracle之数据导入,汇总开发DBA在向表中导入大量数据的案例,如:单线程向数据库中插入数据,多线程向数据表中插入数据,使用sql loader数据表中导入数据案例 1.Oracle数据库 ...
- oracle使用sql文件创建表,使用SQL*Loader创建外部表之一
使用SQL*Loader创建外部表: ---创建目录对象并授权给Scott用户: SQL> create or replace directory loader_home as '/home/o ...
最新文章
- go语言web开发框架_Iris框架讲解(六):Session的使用和控制
- 【Paper】2018_Group Consensus for Discrete-Time Heterogeneous Multiagent Systems with Input and Commun
- matplotlib xticks 基于 旋转_数据可视化之 matplotlib 绘图篇
- Android 5.0+高级动画开发 矢量图动画 轨迹动画 路径变换
- 计算机控制技术黄勤,微型计算机控制技术 教学课件 黄勤 第3章微型计算机控制系统的常用控制.ppt...
- CDATA C#操作XML(无命名空间),添加/删除/编辑节点
- P3702-[SDOI2017]序列计数【矩阵乘法】
- 如何在Jetty中使用SPDY
- 如何更改电脑ip地址租期_局域网通过IP地址如何找到电脑的位置
- Android 系统(227)---Android屏幕截图
- 京东将上线“自营房产”业务;iPhone 12 或取消附赠有线耳机;OpenBSD 6.7 发布 | 极客头条...
- 使用ASP.NET MVC、Rabbit WeixinSDK和Azure快速开发部署微信后台
- PMP考试答题技巧-模拟题库
- 典型的对称加密和非对称加密算法有哪些
- 抖音推独立社交产品“多闪” 主打视频社交PK微信
- 掌握这6个可视化图表,小白也能轻松玩转数据分析
- 计算机win10+上锁,win10系统给电脑屏幕上锁的操作方法
- 计算机开机桌面空白,电脑开机桌面一片空白是怎么回事?
- 最齐全的Cocos2D Cocos creator Cocos2Dx游戏源代码素材,速来收藏
- WIN32 进程间通讯-共享内存
热门文章
- S5PV210开发 -- 驱动开发相关硬件简介
- Hi3516A开发--mpp业务分析
- c语言ascii码表数字,求教!我想显示数字但是现在显示的却是数字在ASCII码中对应的符...
- 求矩形中心点坐标编程c语言,c语言编程序求矩形面积 我是新手,很多不懂,初学...
- mac的截图在linux下打不开,mac版截图软件Snip详细使用教程及常见问题
- 汉字乱码_别欺负我读书少,这些真的不是乱码,是汉字吗?你认识几个?
- 以太坊智能合约 Hexagon 存在溢出漏洞
- TensorFlow for Hackers - Part I
- 数据存储之 SQLite 数据库操作(二)
- Android实现点击通知栏后,先启动应用再打开目标Activity