关键字: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-name[args]**: 执行宏定义`macro-name`。 - **account[password]**: 提供登录远程系统所需的额外密码。 - **append local-file[remote-file]**: 将本地文件追加到远程文件中,若未指定远程文件名,则使用...
- **宏(MACRO)**:类似于函数或子程序,可以接受参数并执行一系列操作。 - **SAS程序的特点**: - **模块化**:便于管理和维护大型项目。 - **可重复性**:相同的代码可以在不同数据上运行。 - **文档记录**:...
- **宏录制 (Macro Recording)** - **批处理 (Batch Processing)** - **插件管理 (Plugin Management)** - **选项 (Options)** - **精度设置 (Precision Settings)** - **单位系统 (Unit System)** - **语言...
- **$macro-name args**:执行预先定义的宏命令。 - **account password**:向远程系统提供密码,用于认证。 - **append local-file remote-file**:将本地文件追加到远程文件的末尾。 - **ascii**:设置传输模式为...
- **ERROR118: missing ‘(’ after macro identifier** - **原因**:宏调用中实参表的左括号缺失。 - **解决方法**:确保宏调用格式正确,包括所有的左括号`(`。 - **ERROR119: reuse of macro formal parameter*...
- **定义与含义**:前缀“macro-”表示大的意思。 - **示例**: - **economics** → **macroeconomics**:宏观经济 - **organism** → **macroorganism**:大型生物 通过以上对英语中常用前缀的学习,我们可以...
- **$macro-name [args]**:执行宏定义`macro-name`及其参数`args`。 - **account [password]**:提供登录远程系统所需的密码。 - **append local-file [remote-file]**:将本地文件`local-file`追加到远程文件`...
- **Macro**:执行宏命令。 - **Message**:发送消息到标准输出。 - **News**:显示新闻信息。 - **Pause**:暂停命令执行。 - **Printhelp**:打印帮助信息。 - **Production**:控制输出模式。 - **Readbbf**:...
- **$ macro-name [args]**:执行名为`macro-name`的宏定义。 - **account [password]**:向远程系统提供额外的登录密码或信息,主要用于需要双重验证的系统。 - **append local-file [remote-file]**:将本地文件...
- **宏(Macro)**:是一种可以执行一系列操作的自动化工具,在Access中常用于简化重复任务。 - **窗体(Form)**:用于显示数据、输入数据和编辑数据,能够提供用户友好的界面。 - **模块(Module)**:包含VBA...
- **-U <macro>**: 取消定义宏。 - **-include **: 强制包含文件。 10. **传递选项给汇编器**: - **-masm=**: 设置汇编器选项。 11. **链接选项**: - **-l **: 链接指定的库。 - **-L **: 添加链接搜索目录。...
- **命令**:`$macro-name[args]` - **描述**:执行之前定义的宏命令。 - **用途**:用于自动化一些重复性的FTP任务。 ##### 2.3 account[password] - **命令**:`account[password]` - **描述**:提供登录远程系统...
- **$macro-name [args]**:执行预定义的宏命令。 - **account [password]**:提供远程系统的账号信息,在某些情况下可能需要验证远程系统权限。 - **append local-file [remote-file]**:将本地文件追加到远程...
3. **Macro** - **symbols**: 与宏相关的符号集合。 - **«typedef»**: 标注此宏为类型定义。 4. **MacroName** - **«typedef»**: 标注宏名为类型定义。 5. **MacroSafeSet** - 一种安全设置宏的方法或结构...
《Excel VBA 24-Hour Trainer》是一本专门讲解Excel VBA编程的英文版教程,由Tom Urtis撰写,Wiley Publishing, Inc.出版于2011年。这本教程涵盖了VBA(Visual Basic for Applications)的基础知识、核心编程技能和...
赠送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; ...
- **$macro-name [args]**:执行一个已定义的宏命令。 - **account [password]**:提供远程系统的登录账号密码,在某些系统上可能需要额外的身份验证。 - **append local-file [remote-file]**:将本地文件追加到...
- **`is_macro`**:判断是否是一个宏。 - **`matches`**:用于字符串匹配。 - **`sort`**:对集合进行排序。 - **`html`**:将内容转换为HTML安全的形式。 - **`time`**:处理时间相关的操作。 - **`index_of`**:...