`
Nanigac
  • 浏览: 14065 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Excel Macro - SQL*Loader helper

阅读更多

        关键字:oracle import export csv fixed-length sql*loader control file

        Revisions:2011-06-15 24:00 追加更新功能3。

 

        最近某Member担当了Sybase导出为CSV导入Oracle的Ticket,纠结于CSV导入到Oracle时的数据格式化,以及手写CTL文件出现的五花八门的错误。于是,我给其弄了一个Excel Macro的小工具:SQL*Loader Helper。
        目前SQL*Loader Helper主要有3个功能,其一:生成Oracle Table导出CSV的SQL文件,其二:生成CSV导入Oracle Table的CTL控制文件,其三:生成Fixed-Length记录文件导入Oracle Table的CTL控制文件。
        如下图sample Sheet例子:

按下<Make Export-CSV SQL>按钮,生成的emp_out.sql文件长这样:

set heading off
set feedback off
set trimspool on
set termout off
set echo off
set pages 0
set line 9999
spool c:\emp.csv
select 'EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO' from dual;
select
EMPNO ||','||
ENAME ||','||
JOB ||','||
MGR ||','||
TO_CHAR(HIREDATE,'YYYY/MM/DD HH24:MI:SS') ||','||
SAL ||','||
COMM ||','||
DEPTNO
from EMP
order by EMPNO;
spool off

执行sqlplus scott/tiger @ emp_out.sql就可以拿到emp.csv。

 

按下<Make CSV-IN CTL File>按钮,生成的emp_in.ctl文件长这样:

OPTIONS(SKIP=1,LOAD=-1,ERRORS=-1,ROWS=2)
LOAD DATA
INFILE 'c:\emp.csv'
BADFILE 'c:\emp.bad'
TRUNCATE
INTO TABLE EMP
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(
EMPNO,
ENAME,
JOB,
MGR,
HIREDATE "TO_DATE(:HIREDATE,'YYYY/MM/DD HH24:MI:SS')",
SAL,
COMM,
DEPTNO
)

 执行sqlldr scott/tiger control=emp_in.ctl就可以导入CSV为Table Records。

 

按下<Make DATA-IN CTL File(Fixed-Length)>按钮,生成的emp_fix_in.ctl文件长这样:

OPTIONS(ERRORS=-1,ROWS=-1)
LOAD DATA
INFILE 'c:\emp.txt'
BADFILE 'c:\emp.bad'
APPEND
INTO TABLE EMP
TRAILING NULLCOLS
(
EMPNO POSITION( 1 : 4 ) DECIMAL EXTERNAL,
ENAME POSITION( 5 : 14 ) CHAR,
JOB POSITION( 15 : 23 ) CHAR,
MGR POSITION( 24 : 27 ) DECIMAL EXTERNAL,
HIREDATE POSITION( 28 : 35 ) DATE "YYYYMMDD",
SAL POSITION( 36 : 42 ) ZONED(7,2),
COMM POSITION( 43 : 49 ) CHAR "decode(:COMM,'',null,to_number(:COMM))",
DEPTNO POSITION( 50 : 51 ) DECIMAL EXTERNAL
)

测试用emp.txt长这样:

 

9001TEST1     JOB1     2011061524001234567       30
9002TEST2     JOB2     2011061524001234567    12330

 执行sqlldr scott/tiger control=emp_fix_in.ctl就可以导入emp.txt为Table Records。

 

以上Windows XP + Oracle 9.2.0.1.0 实验通过。

 

好吧,罗嗦了。readme Sheet里面有详尽的Chinglish解释。

 

SQL*Loader Helper附件已删除,想要的请留下email。

 

个人翻译整理测试成文,主要参考:

Oracleメモ(Hishidama's Oracle Memo)

SQL*Loader Field List Reference

 

※转载请Mail:Nanigac.Yin#Gmail.COM,谢谢。

  • 大小: 25.8 KB
分享到:
评论

相关推荐

    [confluence插件] confluence-markdown-macro-1.6.22.jar

    [confluence插件] confluence-markdown-macro-1.6.22.jar [confluence插件] confluence-markdown-macro-1.6.22.jar [confluence插件] confluence-markdown-macro-1.6.22.jar [confluence插件] confluence-markdown-...

    FTP命令大全

    - **$macro-name[args]**: 执行宏定义`macro-name`。 - **account[password]**: 提供登录远程系统所需的额外密码。 - **append local-file[remote-file]**: 将本地文件追加到远程文件中,若未指定远程文件名,则使用...

    SAS Certification Prep Guide: Base Programming for SAS 9

    - **宏(MACRO)**:类似于函数或子程序,可以接受参数并执行一系列操作。 - **SAS程序的特点**: - **模块化**:便于管理和维护大型项目。 - **可重复性**:相同的代码可以在不同数据上运行。 - **文档记录**:...

    ANSYS软件程序中英文对照说明

    - **宏录制 (Macro Recording)** - **批处理 (Batch Processing)** - **插件管理 (Plugin Management)** - **选项 (Options)** - **精度设置 (Precision Settings)** - **单位系统 (Unit System)** - **语言...

    ftp用法大全 命令大全

    - **$macro-name args**:执行预先定义的宏命令。 - **account password**:向远程系统提供密码,用于认证。 - **append local-file remote-file**:将本地文件追加到远程文件的末尾。 - **ascii**:设置传输模式为...

    confluence-markdown-macro-1.6.25.jar

    confluence-markdown-macro-1.6.25

    51单片机keil软件常见错误解决办法

    - **ERROR118: missing ‘(’ after macro identifier** - **原因**:宏调用中实参表的左括号缺失。 - **解决方法**:确保宏调用格式正确,包括所有的左括号`(`。 - **ERROR119: reuse of macro formal parameter*...

    英语中常用的前缀和后缀

    - **定义与含义**:前缀“macro-”表示大的意思。 - **示例**: - **economics** → **macroeconomics**:宏观经济 - **organism** → **macroorganism**:大型生物 通过以上对英语中常用前缀的学习,我们可以...

    FTP命令大全(整理)

    - **$macro-name [args]**:执行宏定义`macro-name`及其参数`args`。 - **account [password]**:提供登录远程系统所需的密码。 - **append local-file [remote-file]**:将本地文件`local-file`追加到远程文件`...

    sac guide.pdf

    - **Macro**:执行宏命令。 - **Message**:发送消息到标准输出。 - **News**:显示新闻信息。 - **Pause**:暂停命令执行。 - **Printhelp**:打印帮助信息。 - **Production**:控制输出模式。 - **Readbbf**:...

    ftp命令详解非常实用

    - **$ macro-name [args]**:执行名为`macro-name`的宏定义。 - **account [password]**:向远程系统提供额外的登录密码或信息,主要用于需要双重验证的系统。 - **append local-file [remote-file]**:将本地文件...

    2021-2022计算机二级等级考试试题及答案No.19248.docx

    - **宏(Macro)**:是一种可以执行一系列操作的自动化工具,在Access中常用于简化重复任务。 - **窗体(Form)**:用于显示数据、输入数据和编辑数据,能够提供用户友好的界面。 - **模块(Module)**:包含VBA...

    gcc指南

    - **-U &lt;macro&gt;**: 取消定义宏。 - **-include **: 强制包含文件。 10. **传递选项给汇编器**: - **-masm=**: 设置汇编器选项。 11. **链接选项**: - **-l **: 链接指定的库。 - **-L **: 添加链接搜索目录。...

    FTP命令全集

    - **命令**:`$macro-name[args]` - **描述**:执行之前定义的宏命令。 - **用途**:用于自动化一些重复性的FTP任务。 ##### 2.3 account[password] - **命令**:`account[password]` - **描述**:提供登录远程系统...

    ftp命令详解

    - **$macro-name [args]**:执行预定义的宏命令。 - **account [password]**:提供远程系统的账号信息,在某些情况下可能需要验证远程系统权限。 - **append local-file [remote-file]**:将本地文件追加到远程...

    Qt MOC处理器 UML图

    3. **Macro** - **symbols**: 与宏相关的符号集合。 - **«typedef»**: 标注此宏为类型定义。 4. **MacroName** - **«typedef»**: 标注宏名为类型定义。 5. **MacroSafeSet** - 一种安全设置宏的方法或结构...

    [Wrox] Excel VBA 24-Hour Trainer.pdf

    《Excel VBA 24-Hour Trainer》是一本专门讲解Excel VBA编程的英文版教程,由Tom Urtis撰写,Wiley Publishing, Inc.出版于2011年。这本教程涵盖了VBA(Visual Basic for Applications)的基础知识、核心编程技能和...

    macro-compat_2.12-1.1.1-API文档-中文版.zip

    赠送jar包:macro-compat_2.12-1.1.1.jar; 赠送原API文档:macro-compat_2.12-1.1.1-javadoc.jar; 赠送源代码:macro-compat_2.12-1.1.1-sources.jar; 赠送Maven依赖信息文件:macro-compat_2.12-1.1.1.pom; ...

    FTP命令详解.txt

    - **$macro-name [args]**:执行一个已定义的宏命令。 - **account [password]**:提供远程系统的登录账号密码,在某些系统上可能需要额外的身份验证。 - **append local-file [remote-file]**:将本地文件追加到...

Global site tag (gtag.js) - Google Analytics