botang 发表于 2018-7-21 17:16:42

导入和导出




1. 目录对象是数据泵的要求。
2. “文本进”这个方向是sqlldr。
3. “二进制出"这个方向是expdp。
4. “二进制进”这个方向是impdp。




下面做一个sqlldr的例子:
HR去创建一个表:
create table t_bank_invoice (
    account_numbernumber ,
   sub_number number ,
    transac_date   date ,
      transac_addressvarchar2(600),
    transac_comment    varchar2(600),
       currency    varchar2(100),
      remit   varchar2(100),
   in_amountnumber(20,2),
   out_amount   number(20,2),
    balance   number(20,2),
   opposite_number    number,
opposite_username    varchar2(100),
    all_comment      varchar2(2000)) ;
建设银行的网上银行的对账单节选:
ccb.dat:
账  号:4367421823250099999
开户机构:福建省
币    种: 人民币
发生日期,交易地点,支出,收入,账户余额,对方账号,对方户名,币种,摘要
20100209,008350183980040,150.00,,6756.67,,,人民币,消费
20100210,,,2765.90,9522.57,,,人民币,工资/奖金
20100216,,3.00,,9519.57,,,人民币,自定义
20100217,,4859.10,,4660.47,,,人民币,自定义




工商银行的网上银行的对账单节选:
明细查询文件下载

    卡号: 1402029101000999999    卡别名:

    子账户序号:   子账户类别:   子账户别名:

^交易日期       ^交易场所               ^业务摘要^币种      ^钞/汇   ^收入金额    ^支出金额    ^余额
    ^2010-05-10   ^                         ^工资      ^人民币    ^钞      ^564.94      ^            ^6,748.42            
    ^2010-05-14   ^                         ^工资      ^人民币    ^钞      ^5,989.54    ^            ^12,737.96         
    ^2010-05-26   ^金山支行营业部         ^支取      ^人民币    ^钞      ^            ^12,700.00   ^37.96               
    ^2010-06-12   ^                         ^工资      ^人民币    ^钞      ^5,811.04    ^            ^5,849.00            
    ^2010-06-21   ^                         ^息      ^人民币    ^钞      ^5.03      ^            ^5,854.03            
    ^2010-07-01   ^金山支行营业部         ^支取      ^人民币    ^钞      ^            ^5,854.00    ^0.03               
   

   #人民币合计                                                               ^163,952.85   ^170,134.00



现在需要把以上两个文本文件导入t_bank_invoice:


以下这个截图,只是影响了sqlldr的参数direct=y/n



获取控制文件的内容:


进行修改:
LOAD DATA
characterset ZHS16GBK
INFILE '/home/oracle/ccb.dat'
APPEND
INTO TABLE HR.T_BANK_INVOICE
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(
ACCOUNT_NUMBER "4367421823250099999" ,
SUB_NUMBER "00000",
TRANSAC_DATEposition(1:8)DATE(8) "YYYYMMDD",
TRANSAC_ADDRESS   position(10) CHAR,
OUT_AMOUNT decimal EXTERNAL,
IN_AMOUNT decimal EXTERNAL,
BALANCEdecimal EXTERNAL,
OPPOSITE_NUMBER INTEGER EXTERNAL,
OPPOSITE_USERNAME CHAR,
CURRENCY CHAR,
TRANSAC_COMMENT CHAR
)

$ sqlldr hr/oracle_4U control=ccb.ctl

SQL*Loader: Release 12.1.0.2.0 - Production on Sat Jul 21 18:10:18 2018

Copyright (c) 1982, 2014, Oracle and/or its affiliates.All rights reserved.

Path used:      Conventional
Commit point reached - logical record count 9

Table HR.T_BANK_INVOICE:
4 Rows successfully loaded.

Check the log file:
ccb.log
for more information about the load.




$ ls -l *.bad
-rw-r--r-- 1 oracle oinstall 1357月 21 18:10 ccb.bad
ccb.bad:
账  号:4367421823250099999
开户机构:福建省
币    种: 人民币
发生日期,交易地点,支出,收入,账户余额,对方账号,对方户名,币种,摘要

页: [1]
查看完整版本: 导入和导出