Chinaunix

标题: oracle中如何运用sqlldr命令实现文本的导入 [打印本页]

作者: kick90    时间: 2003-12-23 14:01
标题: oracle中如何运用sqlldr命令实现文本的导入
文本文件字段:a,b,c
oracle表字段:cola,colb,colc.cold
两者的对应关系:a  cola;b  colb;  c  cold

请问各位我应该如何实现这个呢?

建表的时候如果将表字段与文本字段一一对应,可以顺利导入,但是如果不对应的话,老是出错!

谢谢!
作者: biti_rainy    时间: 2003-12-23 15:06
标题: oracle中如何运用sqlldr命令实现文本的导入
load data          
  infile 'c:\sqlldr.txt'     
  append into table test_sqlldr_direct    
  fields terminated by ',' 
    (cola,colb,cold)   


是否允许colc为空,不允许你打算怎么处理?
作者: kick90    时间: 2003-12-24 08:22
标题: oracle中如何运用sqlldr命令实现文本的导入
可以为空。

不为空的话我可以将colc设为常值!

如果这样我怎么做啊!
作者: biti_rainy    时间: 2003-12-24 09:47
标题: oracle中如何运用sqlldr命令实现文本的导入
就最普通的控制文件导入不就成了?
我怎没看出有任何一点特殊的地方?

有问题,请把生成的log文件给出来!
作者: kick90    时间: 2003-12-24 10:34
标题: oracle中如何运用sqlldr命令实现文本的导入
文本200305_27.txt:
wddm        jydm        sxxj        rq
32080100        31010502        2500        2003-1-6
32080100        31010604        7500        2003-1-6
32080100        31010800        700        2003-1-21
32080100        31010801        150        2003-1-21
32080111        31010300        45        2003-1-1
32080111        31010300        20        2003-1-2
。。。
wddm对应custcd
jydm对应itemcd
sxxj对应itemqty
rq对应billdate

表结构
CREATE TABLE TSL12_SLBILL_back27
(
  COMPCD      CHAR(2)                           NOT NULL,
  WHCD        CHAR(2)                           NOT NULL,
  SALENO      NUMBER                            NOT NULL,
  PCNO        NUMBER,
  SLBILLID    CHAR(                           NOT NULL,
  LINENO      NUMBER                            NOT NULL,
  ITEMTYP     CHAR(2),
  ATTRCD      CHAR(5),
  CUSTCD      CHAR(,
  ITEMCD      CHAR(,
  SALEUNIT    VARCHAR2(4),
  COSTPRICE   NUMBER(15,6),
  BASEPRICE   NUMBER(15,6),
  ITEMPRICE   NUMBER(15,6),
  GRSPRICE    NUMBER(15,6),
  TAXRATE     NUMBER(6,2),
  ITEMQTY     NUMBER(12,2),
  ITEMAMT     NUMBER(12,2),
  ITEMTAX     NUMBER(12,2),
  ITEMTTL     NUMBER(12,2),
  STOREUNIT   VARCHAR2(4),
  STOREQTY    NUMBER(12,2),
  STOREPRICE  NUMBER(15,6),
  BILLDATE    DATE,
  DLVDATE     DATE,
  SALEREP     CHAR(3),
  PAYID       CHAR(2),
  CFFLG       CHAR(1)                           DEFAULT 'N'                   NOT NULL,
  ACCFLG      CHAR(1)                           DEFAULT 'Y'                   NOT NULL,
  CFOPRID     CHAR(3),
  CFDATE      DATE,
  USEFLG      CHAR(1)                           DEFAULT '0'                   NOT NULL,
  OPRID       CHAR(3)                           NOT NULL,
  PTIMES      NUMBER                            DEFAULT 0                     NOT NULL,
  BYWHFLG     CHAR(1)                           DEFAULT 'N'                   NOT NULL,
  WHTRANSFLG  CHAR(1)                           DEFAULT 'Y'                   NOT NULL,
  STTRANSFLG  CHAR(1)                           DEFAULT 'Y'                   NOT NULL,
  INVOICEFLG  CHAR(1)                           DEFAULT 'N'                   NOT NULL,
  PAYFLG      CHAR(1)                           DEFAULT 'N'                   NOT NULL,
  DLTFLG      CHAR(1)                           DEFAULT 'N'                   NOT NULL,
  CTRTCD      CHAR(                           DEFAULT '00000000'            NOT NULL,
  ARRFLG      CHAR(1)                           DEFAULT 'N'
)

控制文件:
load data
infile '200305_27.txt'
append into table tsl12_oldxs_27
fields terminated by X'09'
(custcd,itemcd,itemqty,billdate)
作者: biti_rainy    时间: 2003-12-24 16:10
标题: oracle中如何运用sqlldr命令实现文本的导入
你那么多 not  null 的字段 ,不插入数据有default 值?
你到底出什么错? log 信息,? 你自己看了 sqlldr 的 log信息吗??




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2