小弟以前用DB2
从文件中导入数据表导,只有一条语句就OK了
TAB (a int,b int,c int)file
1,2
2,3load from file of del insert into TAB;如果文件中的字段不完整,C字段自动会加NULL而ORACLE搞死需要一个CTL文件,更BT的是还必须把字段列完整.
因为要导数据的程序是不固定的,用户上传的文件也不见得字段完整.所以请教一下ORACLE怎么导入最方便.
在DB2中要导出更是方便
export to a.txt of del select * from TAB1,2
2,3就出来了.如果字段是CHAR型,自动会加上""号而用sqlplus 导出来的结果是
1      ,      2
2      ,      3会加上一大堆空格,字符型字段也没有用""引起来,我想用SED去掉空格都不行.
请各位专家们指教一下吧.

解决方案 »

  1.   

    如果使用sqlldr工具的话,就需要写控制文件
    好处是效率高。
      

  2.   

    看看这样的结果行不行
    SQL> set feedback off;
    SQL> set pagesize 0;
    SQL> set heading off;
    SQL> spool d:\tb.sql
    SQL> select cola||','||colb from tb;
    001,aaa
    002,aaa
    003,aaa
    031,aaa
    004,aaa
    021,aaa
    022,aaa
    055,aaa
    SQL> SPOOL OFF
    SQL> tb.sql文件里的内容就是导出的数据
      

  3.   

    pl sql developer有一个text importer起码倒入很方便
      

  4.   

      1、逻辑备份
          逻辑备份的工具叫Exp,完成将数据库指定对象的内容导出的任务。它导出的文件,必须由专门的恢复工具Imp来完成导入。
          语法:
          有以下方法查看帮助
          D:\>exp help=y
          如:
              emp 用户名/口令 参数1=值 参数2=值
          1)导出指定的表
             exp hr/hr file=导出文件名 tables=(表1,表2.....)
          2)备份一个用户(方案)下的所有对象,包括表、视图、过程、函数等
            a.自已进行备份
              exp hr/hr file=hr.dmp
            b.管理员来备份用户
              exp system/a123 file=hr_full.dmp owner=(hr,test....)
          3)备份整个数据库,所有的方案对象(除Sys的以外),一般常用做为生产系统的数据库备份方案。它可以保持用户间的一些关系(权限)
            exp system/123 file=full.dmp full=y
          
          exp常用参数
             buffer:缓冲区大小。
             log   :将备份时屏幕输出信息记录到文件,这个参数是指定输出日志文件。
           导入(逻辑恢复)工具 imp
         
        语法:
           imp 用户/口令 file=文件名 tables=表名
          
          按用户导入
           
            imp system/a123 file=文件名 fromuser=hr touser=新的用户名
           
          全部恢复(除sys以外所有的用户及对象都导入),需要先用dbca创建数据库。
           
            imp system/a123 file=文件名 full = y
            从全库备份中恢复一张表
            imp system/a123 file=文件名 fromuser=hr touser=hr tables=(表名)     参数:
             buffer:缓冲区大小。
             commit:指定为Y,导入部分记录后提交一次
             ignore:指定为Y,导入过程中会忽略“对象已经存在”这种错误。
         
        网络导出与导入    exp hr/hr@jjjj file=jjj.txt
        imp hr/hr@jjjj file=jjj.txt
      

  5.   

    给你推荐一个工具,你用用吧!
    http://www.2ccc.com/article.asp?articleid=4586
      

  6.   

    给你推荐一个工具 SQL Developer ,http://www.oracle.com/technology/products/database/sql_developer/index.html