我现在的数据都提供在excel的表格上怎么把它都导入oracle数据库,(比如说现在有俩个字段 name,age )怎么导入?谢谢了

解决方案 »

  1.   

    另存为CSV格式,用PLSQL Developer或sqlldr命令PLSQL Developer:
    工具--->文本导入器如果文本内容不大也可以
    select * from XXX for update
    然后复制-粘贴
      

  2.   

    excel文件连接成逗号分隔符的csv文件,之后用sqlldr命令导入。导入需要写一个ctl控制文件,sqlldr命令中会按照这个ctl控制文件描述的规则把文件导入到指定的表中。ctl文件写法如下: LOAD DATA /*固定格式*/
    INFILE 'D:\csvdata.csv' /*导入文件的文件名,就是你的csv文件名和路径*/
    TRUNCATE /*导入的方式,TRUNCATE方式就是把原表原有数据删了再导入,还有别的方式你可以网上找找*/
    INTO TABLE YOUR_TABLE /*导入的表名称*/
    FIELDS TERMINATED "," /*使用的数据分隔符,你的csv是逗号分隔符就用逗号*/
    TRAILING NULLCOLS /*允许字段为空值,这个必须有*/
    ( /*以下这些是导入数据的字段名称*/
    name CHAR,
    age CHAR,
    TRUNCATE_DATE SYSDATE,/*可以多插入一行变量数据,例如系统时间*/
    TRUNCATE_STUS "0" /*也可以多插入一行常量数据*/
    )之后你把这个ctl文件放在一个文件夹里比如D:\Load\ctl\csvinsert.ctl之后是sqlldr命令,你可以做成一个bat批处理文件保存就不用以后一直写了,格式如下:sqlldr username/password@orcl direct = true readsize = 10485760 bindsize = 2560000 rows = 50000 control="D:\Load\ctl\csvinsert.ctl" log="D:\Load\log\csvinsert.log bad=D:\Load\bad\csvinsert.bad"其中direct = true貌似是和oracle的compress数据压缩配合使用的,readsize = 10485760 bindsize = 2560000 rows = 50000是指定导入的时候一次跳多少记录,参数是我随便设的你可以研究下怎么设最好,后面的log会记录日志,bad问价会记录没有导入成功的数据,默认50条写满就直接停止导入了,可以通过参数设置其大小,你可以从网上找找。