大括号分割的.dat格式的文本文件如何导入oracle?下面是其中一行数据:1}0477}47711}伊旗}}}}}22B}公客}0}城市}47300126}亲情无限1+1}120101}聚类市场}48300231}基础商品_鄂尔多斯甲种ADSL}162009}宽带网络使用费(包月)}60}互联网业务产品线}10}基础业务}6010200}宽带接入}6010200103}ADSL虚拟拨号}10317}ADSL使用费}200808}-100}20080904}22B}公客

解决方案 »

  1.   

    能否经过转换(也可以编程进行词法分析)解析成.xml文件,然后导入至Oracle中。
      

  2.   

    把它当作或复制为文本,然后使用sqlloader
    控制文件内容例如:
    load data
    infile 'test.txt'
    append into table tb_
    fields terminated by '}'   ---这里指定分割符
    .....
      

  3.   

    Data Pump Import,很好用.step by step
      

  4.   

    使用sqlldr导入,分隔符用},类似如下:
    fields terminated by '}' 或者装个pl/sql developer,通过图形化界面把数据导入指定的表,很简单:
    选择tools工具栏----> text importer就可以按照提示做了.
      

  5.   

    第一步:我在C:\test\New Folder下面创建一个data.dat文件,文件里面使你的模拟数据:
    1}0477}47711}伊旗}}}}}22B}公客}0}城市}47300126}亲情无限1+1}120101}聚类市场}48300231}基础商品_鄂尔多斯甲种ADSL第二步:然后再同样的目录下创建一个ldr.ctl的控制文件
    控制文件的内容如下:
    LOAD DATA
    INFILE 'data.dat'
    INSERT INTO TABLE t
    FIELDS TERMINATED BY "}"
    (
      f1,
      f2,
      f3,
      f4,
      f5,
      f6,
      f7,
      f8,
      f9,
      f10,
      f11,
      f12,
      f13,
      f14,
      f15,
      f16,
      f17,
      f18
    )第三步:在我的test用户下创建t表去存储你的数据,C:\>sqlplus test/testSQL*Plus: Release 9.2.0.1.0 - Production on Mon Oct 13 13:32:11 2008Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
    Connected to:
    Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.1.0 - Production
    SQL> create table t(
      2   f1 varchar2(30),
      3   f2 varchar2(30),
      4   f3 varchar2(30),
      5   f4 varchar2(30),
      6   f5 varchar2(30),
      7   f6 varchar2(30),
      8   f7 varchar2(30),
      9   f8 varchar2(30),
     10   f9 varchar2(30),
     11   f10 varchar2(30),
     12   f11 varchar2(30),
     13   f12 varchar2(30),
     14   f13 varchar2(30),
     15   f14 varchar2(30),
     16   f15 varchar2(30),
     17   f16 varchar2(30),
     18   f17 varchar2(30),
     19   f18 varchar2(30)
     20  );Table created.第四步:退出SQL,在cmd里面运行SQLldrSQL> exit
    Disconnected from Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.1.0 - ProductionC:\>cd C:\test\New FolderC:\test\New Folder>dir
     Volume in drive C is Local Disk
     Volume Serial Number is 507A-5FAF Directory of C:\test\New Folder10/13/08  13:28         <DIR>          .
    10/13/08  13:28         <DIR>          ..
    10/13/08  13:25                    259 data.dat
    10/13/08  13:27                    343 ldr.ctl
                   2 File(s)            602 bytes
                   2 Dir(s)  20,581,208,064 bytes freeC:\test\New Folder>sqlldr userid=test/test control=ldr.ctlSQL*Loader: Release 9.2.0.1.0 - Production on Mon Oct 13 13:37:13 2008Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.Commit point reached - logical record count 1第五步:
    查询数据:SQL> conn test/test@orcl
    Connected to Oracle9i Enterprise Edition Release 9.2.0.1.0 
    Connected as testSQL> select * from t;F1                             F2                             F3                             F4                             F5                             F6                             F7                             F8                             F9                             F10                            F11                            F12                            F13                            F14                            F15                            F16                            F17                            F18
    ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ ------------------------------ --------------------------------------------------------------------------------
    1                              0477                           47711                          伊旗                                                                                                                                                       22B                            公客                           0                              城市                           47300126                       亲情无限1+1                    120101                         聚类市场                       48300231                       基础商品_鄂尔多斯甲种ADSLSQL>