读书人

将本土数据根据规则导入到数据库表的几

发布时间: 2013-08-14 14:27:55 作者: rapoo

将本地数据根据规则导入到数据库表的几种方法

SQL*Loader

?

SQL*Loader是Oracle数据库导入外部数据的一个系统工具,在Unix下,SQL Loader一般由命令和控制文件组成,命令定义执行的模式,控制文件定义数据映射和可选逻辑。SQL Loader 的特点是能装入不同数据类型文件及多个数据文件以及固定格式,自由定界以及可度长格式的数据,控制文件灵活,速度快(ORACLE自称可以达到每小时处理100GB数据的能力)等。

?

Sqlldr命令

?

首先通过查看SQL Loader的帮助信息来了解下sqlldr的使用方法(注:如下图所示,输入sqlldr后回车即可查看其帮助信息):

?

将本土数据根据规则导入到数据库表的几种方法
?

Ctl 控制文件

?

控制文件是SQL*Loader的灵魂,在控制文件中可以设置以何种方式导入,是追加还是覆盖;以何种方式识别数据文件等等。下面是如何编写控制文件的一个标准模板:

OPTIONS? (? [SKIP=integer] [ LOAD = integer ] [ERRORS = integer] [ROWS=integer] [BINDSIZE=integer] [SILENT=(ALL|FEEDBACK|ERROR|DISCARD) ] ?)

LOAD [DATA]

[ { INFILE | INDDN } {file | * } [ STREAM | RECORD | FIXED length [BLOCKSIZE size]| VARIABLE [length] ]? [ { BADFILE | BADDN } file ] {DISCARDS | DISCARDMAX} integer ]

[ {INDDN | INFILE} . . . ]

[ APPEND | REPLACE | INSERT ]

[RECLENT integer]

[ { CONCATENATE integer | CONTINUEIF { [THIS | NEXT] (start[: end])LAST } Operator { 'string' | X 'hex' } } ]

INTO TABLE [user.]table

[APPEND | REPLACE|INSERT]

[WHEN condition [AND condition]...]

[FIELDS [delimiter] ]

(

column {

RECNUM |

CONSTANT value |

SEQUENCE ( { integer | MAX |COUNT} [, increment] ) |

[POSITION ( { start [end] | * [ + integer] } ) ]

datatype

[TERMINATED [ BY ] {WHITESPACE| [X] 'character' } ]

[ [OPTIONALLY] ENCLOSE[BY] [X]'charcter']

[NULLIF condition ]

[DEFAULTIF condotion]

}

[ ,...]

)

[INTO TABLE...]

[BEGINDATA]

?

?

* 表示前字段之后立刻开始。

+ 从前列开始向后条的位置数。

?

例子:

OPTIONS(SKIP=0)LOAD DATAREPLACEINTO TABLE CUX_TEST_TABLEFIELDS TERMINATED BY X'09'TRAILING NULLCOLS(supp_id                "CUX_TEST_SEQ_S.NEXTVAL",supp_company_code     CHAR  "TRIM(TO_CHAR(:supp_company_code))",supp_date              DATE  'YYYYMMDD',supp_amount           INTEGER   EXTERNAL,supp_process_status     CONSTANT  "1", supp_creation_date      "to_date(SYSDATE)")   

?

?

?


PLSQL Developer工具载入数据

?PLSQL Developer提供一些数据载入的工具,操作比较简单,可以定义数据映射模板,并且可重复使用。

Text Importer

载入数据

菜单栏à Tools à Text Importer

将本土数据根据规则导入到数据库表的几种方法
?

左上角的图标表示:

将本土数据根据规则导入到数据库表的几种方法打开一个数据文件,可支持 txt, csv, tsv, prn文件

将本土数据根据规则导入到数据库表的几种方法通过粘贴数据,可以从Excel中复制数据,点击这个按钮粘贴直接载入数据

将本土数据根据规则导入到数据库表的几种方法新建一个导入

将本土数据根据规则导入到数据库表的几种方法打开一个数据模板定义

打开一个文件或复制数据进入界面后,可以定义相关参数和模板映射,在第一个tab页定义参数:

将本土数据根据规则导入到数据库表的几种方法
?在第二个tab页定义数据映射:

将本土数据根据规则导入到数据库表的几种方法
?选择表的schema和表名,clear table表示是否在载入数据前清空表,然后定义数据映射,映射时需定义数据类型,和处理数据的单值函数,例如trim()。准备载入的数据可以在result preview预览。

最后点击左下角的Import就可以载入。

映射模板

相同的数据映射关系,可以保存模板,下次只要直接打开就可以重复使用映射关系和参数了。

将本土数据根据规则导入到数据库表的几种方法
?

ODBC Importer

?

ODBC Importer功能类似Text Importer,但是ODBC Importer可以解析二进制文件,支持dBASE file, Excel Files和MS Access Database

载入数据

?操作和Text Importer类似,在第一个tab页加载数据。

?路径:菜单栏à Tools à ODBC Importer

将本土数据根据规则导入到数据库表的几种方法
?选择载入类型之后,在user name和password处填的是要载入的到的数据库的用户名和密码,点击connect, 在弹出的对话框里选择相应文件,Excel file类型弹出的如下:

将本土数据根据规则导入到数据库表的几种方法
?选择文件后数据会加载到界面:

将本土数据根据规则导入到数据库表的几种方法
?第二个tab页的操作和Text Import一致,也可以保存和使用模板,并且模板在ODBC Importer和Text Importer之间是可以通用的。

?

读书人网 >其他数据库

热点推荐