使用sqlldr向oracle导入文本数据
D:\> sqlldr mcp/mcp_asia D:\mcp_operator.ctl mcp_operator.bad silent=header,feedback
[说明]
silent=header,feedback 隐藏数据载入过程中的提示信息
其中,控制文件mcp_operator.ctl的内容如下:
Load data
infile 'D:\mcp_operator.AVL'
into table mcp.int_03001_20100616
append
fields terminated by ','
(
op_id,op_name,login_name,phone,op_status,lock_status,org_id,region_code,county_code
)
[说明]
infile 要载入的数据文件完整路径
into table mcp.int_03001_20100616 向表中插入数据
fields terminated by ',' 字段分隔符为逗号
(op_id,op_name,...) 定义字段顺序
row 多少条记录提交一次,默认为64
数据载入方式:
a、insert,为缺省方式,在数据装载开始时要求表为空
b、append,在表中追加新记录
c、replace,删除旧记录,替换成新装载的记录
d、truncate,同上
表字段无对应值,允许其为空:
TRAILING NULLCOLS
参考:http://www.cnblogs.com/twyth/archive/2009/08/16/1547141.html
1) 把 users_data.cvs 中的内容补到 users.ctl 中,并以 BEGINDATA 连接,还要把 INFILE "users_data.csv" 改为 INFILE *。同时为了更大化的说明问题,把数据处理了一下。此时,完整的 users.ctl 文件内容是:
OPTIONS (skip=1,rows=128) -- sqlldr 命令显示的选项可以写到这里边来,skip=1 用来跳过数据中的第一行
LOAD DATA
INFILE * -- 因为数据同控制文件在一起,所以用 * 表示
append -- 这里用了 append 来操作,在表 users 中附加记录
INTO TABLE users
when LOGIN_TIMES'8' -- 还可以用 when 子句选择导入符合条件的记录
Fields terminated by ","
trailing nullcols
(
virtual_column FILLER, --跳过由 PL/SQL Developer 生成的第一列序号
user_id "user_seq.nextval", --这一列直接取序列的下一值,而不用数据中提供的值
user_name "'Hi '||upper(:user_name)",--还能用SQL函数或运算对数据进行加工处理
login_times terminated by ",", NULLIF(login_times='NULL') --可为列单独指定分隔符
last_login DATE "YYYY-MM-DD HH24:MI:SS" NULLIF (last_login="NULL") --当字段为"NULL"时就是 NULL
)
BEGINDATA --数据从这里开始,USER_ID,USER_NAME,LOGIN_TIMES,LAST_LOGIN
1,1,Unmi,3,2009-1-5 20:34
2,2,Fantasia,5,2008-10-15
3,3,隔叶黄莺,8,2009-1-2
4,4,Kypfos,NULL,NULL
5,5,不知秋,1,2008-12-23
======================================================================
日期类型: op_time date "YYYY-MM-DD"
timestamp类型: so_date timestamp "YYYY-MM-DD HH24:MI:SS.ff"
使用Oracle函数: so_nbr "TRIM(:so_nbr)"
分享到:
相关推荐
8. **安全性**:OraLoader尊重Oracle的安全机制,确保在装载数据时遵循用户的权限设定,避免不必要的安全风险。 **应用场景:** 1. **数据库初始化**:在新系统上线或数据迁移时,OraLoader可以帮助快速将大量历史...
最后,文章中通过一个实例来说明了如何使用SQL*Loader装载数据,这个过程包括编写控制文件、准备数据文件以及运行sqlldr命令行工具等步骤。通过这个实例,用户可以更具体地了解到如何将外部数据文件中的数据导入...
SQL*Loader,简称sqlldr,是Oracle数据库系统中用于快速加载大量数据到数据库的一个实用工具。它是Oracle Data Pump的一部分,提供了高效的数据导入功能,适用于批量处理大数据量的场景。 1. **sqlldr简介** SQL*...
整个过程包括以下几个步骤:SqlLdr命令启动、读取控制文件、读取数据文件、根据规则转载数据,最后记录日志文件。 对于SQL Loader的性能提升技术措施,文章提出了相关的技术细节。这些措施可能包括对控制文件语法的...
整个流程可以概括为:`sqlldr命令 -> 读取控制文件 -> 读取数据文件 -> 根据规则加载数据`。 SQL*Loader主要由以下组件组成: 1. 控制文件:这是SQL*Loader的核心,定义了数据加载的具体规则。 2. 数据文件:存储了...
此外,如果要装载大量数据(如超过10GB),则建议采用并行直接装载数据的方法。 综上所述,SQL*Loader是进行高效数据加载和迁移的关键工具,它提供了一种简洁、直接的方式来处理数据导入任务。通过灵活地使用控制...
sqlldr userid=system/manager@serviceName control=input.ctl ``` 默认的日志文件名为`input.log`,用于记录导入过程中的错误信息;默认的坏记录文件为`input.bad`,用于保存无法正确导入的数据。 ##### 3. ...
这个工具提供了多种选项和灵活性,使得数据装载过程能够适应各种不同的数据格式和需求。下面我们将深入探讨如何使用SQL*Loader以及其关键特性。 首先,SQL*Loader通过控制文件(如`loader.ctl`)来定义数据导入的...
1. **常规路径装载**:通过标准SQL语句(如INSERT)加载数据,适用于需要触发器或约束的场景。 2. **直接路径装载**:绕过Oracle的标准SQL处理机制,直接写入数据块,速度更快,但不支持某些数据库特性,如事务管理...
Oracle提供了高效的文本装载工具(sqlldr)来装载格式化文本文件(如CSV文件)里的数据到Oracle中,却不提供一个文本导出工具来做不同数据库之间的数据交换。特别是在各种大数据技术兴起的年代,文本文件是最好的...
* insert:在数据装载开始时要求表为空 * append:在表中追加新记录 * replace:删除旧记录,替换成新装载的记录 * truncate:同上 这些选项可以根据实际需求选择使用。 Oracle SQL Loader 是一种强大的数据导入...
sqlldr userid=lgone/tiger control=a.ctl ``` 其中,`userid` 是数据库用户名和密码,`control` 是控制文件的名称。 控制文件 (`control` 文件) 是一个文本文件,用于指定导入数据的格式和规则。控制文件的内容...
- 默认驱动程序,支持使用Oracle的装载技术从外部文件中读取数据。 - 示例创建语法如下: ```sql CREATE TABLE "SYS_SQLLDR_X_EXT_DEPT_NEW" ("DEPTNO" NUMBER(2), "DNAME" VARCHAR2(14), "LOC" VARCHAR2(13)) ...
首先,`loaddata.ctl`是SQL*Loader的数据装载控制文件,它是整个数据导入过程的核心。这个文件包含了关于如何解析输入文件、如何映射字段到数据库表列以及执行其他特定于数据加载的操作的指令。例如,它可能包含以下...
- **FILLER**:标记为FILLER的字段不会被实际装载到表中,可以用来跳过某些不需导入的数据。 - **TRAILING NULLCOLS**:允许在字段值缺失的情况下,字段仍保留为NULL。 ##### 字段映射示例 ```plaintext FIELDS ...
数据库装载器是Oracle提供的一种高效工具,用于将大量数据从文本文件导入到Oracle数据库中。这一过程不仅能够节省时间,还能确保数据的准确性和一致性。下面,我们将详细探讨如何使用Oracle的SQL*Loader进行数据导入...
- **sqlldr**: 数据装载工具,用于将数据批量导入到数据库。 - **exp/imp**: 导出和导入工具,用于数据库对象或整个数据库的数据迁移。 - **sqlplus**: 命令行查询工具,进行SQL操作和数据库管理。 5. **备份与...
- **SQL*Loader (Sqlldr)**:批量加载数据到数据库的工具。 - **PL/SQL Developer**:用于编写、测试和调试PL/SQL代码的集成开发环境。 #### 三、数据字典与动态性能视图 **3.1 数据字典** - 存储有关数据库对象...