日期:2014-05-16  浏览次数:20439 次

批处理命令 建表和导数据
一 连接数据源
【1】 文件名  env_db.bat
【2】 文件内容

       set oracle_url=zlj/zlj@mwdb_10.40.33.248

      rem 系统管理语种类型(en,cn)

      set lang=cn

二 创建表

【1】文件名 createTable.bat

【2】文件内容

        if "%oracle_url%" == "" call env_oracle.bat

       sqlplus %oracle_url% @oracle_list.sql

       rem find "ERROR at" to cerntain right

【3】 文件名 oracle_list.sql

【4】 文件内容
       set echo on

      spool log/predb_oracle.log
   
      @xxx.sql /** 每张表的建表语句*/

      spool off;

      set echo off;

      exit;

三 导入数据

【1】文件名 loadData.bat

【2】文件内容

    if "%oracle_url%" == "" call env_oracle.bat

   sqlldr %oracle_url% control=ctl/xxx.ctl log='log/xxx.log'

【3】xxx.ctl
   内容
   load data infile '../data/%lang%/xxx.unl' 
   replace into table acsinfo
   fields terminated by "|"
   (acsid,address,acsport,ftpname,ftppassword,ftppath,acsdes)
【4】xxx.log
    显示需要显示的日志
     例如
    
SQL*Loader: Release 9.2.0.1.0 - Production on 星期一 7月 11 10:41:09 2011

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

控制文件: ctl/acsinfo.ctl
数据文件: ../data/cn/acsinfo.unl
错误文件: ctl/acsinfo.bad
废弃文件: 未作指定
:
(可废弃所有记录)

加载数: ALL
跳过数: 0
允许的错误: 50
绑定数组: 64 行,最大 256000 字节
继续:    未作指定
所用路径:       常规

表ACSINFO
已加载从每个逻辑记录
插入选项对此表REPLACE生效

   列名                        位置      长度  中止 包装数据类型
------------------------------ ---------- ----- ---- ---- ---------------------
ACSID                               FIRST     *   |       CHARACTER           
ADDRESS                              NEXT     *   |       CHARACTER           
ACSPORT                              NEXT     *   |       CHARACTER           
FTPNAME                              NEXT     *   |       CHARACTER           
FTPPASSWORD