ITPub博客

首页 > Linux操作系统 > Linux操作系统 > sqlloader_4position

sqlloader_4position

原创 Linux操作系统 作者:stevexuan 时间:2012-08-12 09:24:03 0 删除 编辑

Sql*load 4

(一)环境:一个数据库、一个需要装载的展开文件、一个描述展开文件的控制文件

C:\Documents and Settings\Administrator>sqlplus scott/tiger

SQL*Plus: Release 9.0.1.0.1 - Production on 星期六 8月 4 12:10:55 2012

(c) Copyright 2001 Oracle Corporation.  All rights reserved.

连接到:

Oracle9i Enterprise Edition Release 9.0.1.1.1 - Production

With the Partitioning option

JServer Release 9.0.1.1.1 – Production

表格

SQL> desc zp_2;

 名称                                      是否为空? 类型

 ----------------------------------------- -------- -------------

 

 DEPTNO                                             NUMBER

 DNAME                                              VARCHAR2(12)

 LOC                                                VARCHAR2(10)

 ENTIRE_LNE                                         VARCHAR2(10)

SQL> select * from zp_2;

未选定行

(二)编辑控制文件:

E:\zp\sqlload>notepad ulcase1.ctl

LOAD DATA 

INFILE * 

INTO TABLE zp_2T 

REPLACE 

( DEPTNO position(1:2),  

DNAME position(*:16), // 这个字段的开始位置在前一字段的结束位置 

LOC position(*:29),  

ENTIRE_LINE position(1:29)  

) 

BEGINDATA 

10Accounting Virginia,USA    

(三)运行

E:\zp\sqlload>sqlldr userid=scott/tiger control=ulcase1.ctl log=ulcase3.log

SQL*Loader: Release 9.0.1.1.1 - Production on 星期一 8月 6 07:55:59 2012

 (c) Copyright 2001 Oracle Corporation.  All rights reserved.

达到提交点,逻辑记录计数2达到提交点,逻辑记录计数2

(四)结果显示

SQL> select * from zp_2;

 

    DEPTNO DNAME                LOC

---------- -------------------- ---------------

ENTIRE_LINE

------------------------------

        10 Accounting Vir       ginia,USA

10Accounting Virginia,USA(六)说明

DNAME position(*:16), // 这个字段的开始位置在前一字段的结束位置 

LOC position(*:29),  

ENTIRE_LINE position(1:29)  

) 

(五)模拟错误

当CREATE TABLE 最后一列列值设短时,会报ora-01401的错误,只需要把列值改长就可以

(六)绝对引用、相对引用

控制文件中

LOAD DATA 

INFILE * 

INTO TABLE zp_2T 

REPLACE 

( DEPTNO position(1:2),  

DNAME position(*:16), // 这个字段的开始位置在前一字段的结束位置 

LOC position(*:29),  

ENTIRE_LINE position(1:29)  

) 

BEGINDATA 

10Accounting Virginia,USA    

Position(1:2)插入文件第一个字符和第二个字符,Position(*:16)从上一个字段结束+1为*值(在本次试验中*代表2+1=3),最后一行Position(1:29)显示第一个字符到29个字符之间所有数据,其中不足以空格补齐

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/27151369/viewspace-740751/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-08-12

  • 博文量
    17
  • 访问量
    19226