sqlldr导入Sequence等类型数据
目标表SQL:
create table STM_TERMINAL_INFO
(
terminal_id NUMBER(12) not null,
terminal_ip VARCHAR2(200) not null,
storey VARCHAR2(50) not null,
region_id VARCHAR2(50) not null,
ccs_id VARCHAR2(50) not null,
seat_code VARCHAR2(50) not null,
seat_desc VARCHAR2(200),
terminal_type VARCHAR2(50) not null,
manage_code VARCHAR2(1024),
manage_tel VARCHAR2(1024),
fault_cause VARCHAR2(1024),
state NUMBER(1) not null,
create_date DATE not null,
create_code VARCHAR2(20) not null,
op_code VARCHAR2(20) not null,
op_id NUMBER(12) not null,
org_id NUMBER(12) not null,
org_name VARCHAR2(200) not null,
done_code VARCHAR2(30) not null,
done_date DATE not null,
notes VARCHAR2(1024),
is_fault NUMBER(1)
);
create sequence STM_TERMINAL_INFO$SEQ
minvalue 1
maxvalue 999999999999
start with 1181
increment by 1
cache 20;
要导入的数据:
IP_ADDRESS A.CENTER_CODE||A.FLOOR_CODE CITY_CODE CENTER_CODE SEAT_CODE 'TESTLEI' '1' 'M000000' '13939012107' '故障原因' 1 TO_CHAR(SYSDATE,'YYYY-MM-DDHH 'M000000' 'M000000' 0 911 '雷智民' 0 TO_CHAR(SYSDATE,'YYYY-MM-DDHH 'LEIZHIMIN' F
1 10.97.106.11 STM_000003_A_211 STM_000003_A STM_000003_A_2 99511 testlei 1 M000000 13939012107 故障原因 1 2011-01-05 16:24:04 M000000 M000000 0 911 雷智民 0 2011-01-05 16:24:04 leizhimin 0
2 10.97.106.12 STM_000003_A_211 STM_000003_A STM_000003_A_2 99512 testlei 1 M000000 13939012107 故障原因 1 2011-01-05 16:24:04 M000000 M000000 0 911 雷智民 0 2011-01-05 16:24:04 leizhimin 0
3 10.97.106.13 STM_000003_A_211 STM_000003_A STM_000003_A_2 99513 testlei 1 M000000 13939012107 故障原因 1 2011-01-05 16:24:04 M000000 M000000 0 911 雷智民 0 2011-01-05 16:24:04 leizhimin 0
4 10.97.106.14 STM_000003_A_211 STM_000003_A STM_000003_A_2 99514 testlei 1 M000000 13939012107 故障原因 1 2011-01-05 16:24:04 M000000 M000000 0 911 雷智民 0 2011-01-05 16:24:04 leizhimin 0
5 10.97.106.15 STM_000003_A_211 STM_000003_A STM_000003_A_2 99515 testlei 1 M000000 13939012107 故障原因 1 2011-01-05 16:24:04 M000000 M000000 0 911 雷智民 0 2011-01-05 16:24:04 leizhimin 0
导入配置文件:
OPTIONS (skip=1,rows=128)
LOAD DATA
INFILE "STM_TERMINAL_INFO.data"
append
INTO TABLE STM_TERMINAL_INFO -- 要插入记录的表
Fields terminated by " "
trailing nullcols --表的字段没有对应的值时允许为空
(
virtual_column FILLER, --这是一个虚拟字段,用来跳过由 PL/SQL Developer 生成的第一列序号
TERMINAL_IP,
STOREY,
REGION_ID,
CCS_ID,
SEAT_CODE,
SEAT_DESC,
TERMINAL_TYPE,
MANAGE_CODE,
MANAGE_TEL,
FAULT_CAUSE,
STATE,
CREATE_DATE DATE "YYYY-MM-DD HH24:MI:SS",
CREATE_CODE,
OP_CODE,
OP_ID,
ORG_ID,
ORG_NAME,
DONE_CODE,
DONE_DATE DATE "YYYY-MM-DD HH24:MI:SS",
NOTES,
IS_FAULT,
TERMINAL_ID "Stm_Terminal_Info$seq.Nextval"
)
导入操作:
E:\loaddata>dir
驱动器 E 中的卷没有标签。
卷的序列号是 1470-E67B
E:\loaddata 的目录
2011-01-05 16:45 <DIR> .
2011-01-05 16:45 <DIR> ..
2011-01-05 16:32 705 ldrcfg.cfg
2011-01-05 16:45 3,173 ldrcfg.log
2011-01-05 16:27 1,193 STM_TERMINAL_INFO.data
3 个文件 5,071 字节
2 个目录 672,718,848 可用字节
E:\loaddata>sqlldr csm/csm_123@hatest control=ldrcfg.cfg
SQL*Loader: Release 10.2.0.1.0 - Production on 星期三 1月 5 16:45:17 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
达到提交点 - 逻辑记录计数 5
E:\loaddata>
日志文件:
SQL*Loader: Release 10.2.0.1.0 - Production on 星期三 1月 5 16:32:29 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
控制文件: ldrcfg.cfg
数据文件: STM_TERMINAL_INFO.data
错误文件: STM_TERMINAL_INFO.bad
废弃文件: 未作指定
(可废弃所有记录)
要加载的数: ALL
要跳过的数: 1
允许的错误: 50
绑定数组: 128 行, 最大 256000 字节
继续: 未作指定
所用路径: 常规
表 STM_TERMINAL_INFO,已加载从每个逻辑记录
插入选项对此表 APPEND 生效
TRAILING NULLCOLS 选项生效
列名 位置 长度 中止 包装数据类型
------------------------------ ---------- ----- ---- ---- ---------------------
VIRTUAL_COLUMN FIRST * WHT CHARACTER
(FILLER FIELD)
TERMINAL_IP NEXT * WHT CHARACTER
STOREY NEXT * WHT CHARACTER
REGION_ID NEXT * WHT CHARACTER
CCS_ID NEXT * WHT CHARACTER
SEAT_CODE NEXT * WHT CHARACTER
SEAT_DESC NEXT * WHT CHARACTER
TERMINAL_TYPE NEXT * WHT CHARACTER
MANAGE_CODE NEXT * WHT CHARACTER
MANAGE_TEL NEXT * WHT CHARACTER
FAULT_CAUSE NEXT * WHT CHARACTER
STATE NEXT * WHT CHARACTER
CREATE_DATE NEXT * WHT DATE YYYY-MM-DD HH24:MI:SS
CREATE_CODE NEXT * WHT CHARACTER
OP_CODE NEXT * WHT CHARACTER
OP_ID NEXT * WHT CHARACTER
ORG_ID NEXT * WHT CHARACTER
ORG_NAME NEXT * WHT CHARACTER
DONE_CODE NEXT * WHT CHARACTER
DONE_DATE NEXT * WHT DATE YYYY-MM-DD HH24:MI:SS
NOTES NEXT * WHT CHARACTER
IS_FAULT NEXT * WHT CHARACTER
TERMINAL_ID NEXT * WHT CHARACTER
列的 SQL 串: "Stm_Terminal_Info$seq.Nextval"
ROWS 参数所用的值已从 128 更改为 45
表 STM_TERMINAL_INFO:
5 行 加载成功。
由于数据错误, 0 行 没有加载。
由于所有 WHEN 子句失败, 0 行 没有加载。
由于所有字段都为空的, 0 行 没有加载。
为绑定数组分配的空间: 255420 字节 (45 行)
读取 缓冲区字节数: 1048576
跳过的逻辑记录总数: 1
读取的逻辑记录总数: 5
拒绝的逻辑记录总数: 0
废弃的逻辑记录总数: 0
从 星期三 1月 05 16:32:29 2011 开始运行
在 星期三 1月 05 16:32:29 2011 处运行结束
经过时间为: 00: 00: 00.29
CPU 时间为: 00: 00: 00.04
注意,Sequence要放到最后一个位置。
分享到:
相关推荐
它支持多种数据源格式,如文本文件、Excel文件等,并能够处理各种数据类型。SQL*Loader可以自动转换数据格式,检测并处理错误,以及在加载过程中执行复杂的逻辑操作。 ### 自动增加字段的处理 在创建数据库表时,...
2. SQL*Loader导入数据: SQL*Loader是Oracle用于将数据从外部文件加载到数据库的工具。它的使用流程与SQLULDR2类似,但方向相反: - 创建控制文件,定义要导入的表结构、字段映射等。 - 运行SQL*Loader命令,...
4. **运行批处理**:双击批处理文件或通过命令行执行,启动SQL*Loader并导入数据。 5. **查看结果**:导入完成后,通过日志文件和错误文件检查导入状态,了解成功记录数、失败记录及原因。 **四、优化技巧** 1. *...
3. 索引和约束:在导入数据前,考虑暂时禁用索引和约束,导入完成后重新启用,以提高效率。 总之,SQL*Loader是Oracle数据库进行大量数据导入的强大工具,通过合理配置和使用,可以有效提高数据导入效率,减少系统...
它支持多种数据格式,包括CSV、文本、二进制等,并提供了高度灵活的数据转换和映射选项。在企业环境中,SQL*Loader常被用于数据迁移、数据导入和日常的数据维护任务。 #### 使用案例解析:导入CSV至Oracle表 在...
同时代码还会生成sqlldr命令需要用到的control文件和bat文件,以及连接Oracle的配置文件,只要将MySQL导出的数据文件合到一起,执行bat文件,即可完成数据导入到Oracle的任务。所有文件都是以导入导出的那张表的表名...
- **错误处理**:设置SQL*Loader的错误日志和限制,以便处理导入过程中遇到的问题,如坏记录、数据类型不匹配等。 - **性能优化**:使用绑定变量、直方图加载、大块读取等技术提升加载速度。 - **事务管理**:根据...
本篇文章将深入探讨sqlldr的使用方法以及如何通过它来批量导入数据。 首先,我们要理解sqlldr的基本结构。它通过控制文件(如`gl_point.ctl`)来定义数据导入的规则,包括字段映射、数据格式、错误处理等。例如,`...
3. 运行sqlldr命令导入数据,如: ```bash sqlldr user/pass@database CONTROL=InputLost.ctl LOG=import_log.log ``` 这里,`user/pass@database`是数据库连接信息,`CONTROL`指定了控制文件,`LOG`用于记录...
当使用SQL*Loader导入数据时遇到超出字符长度限制的错误,可以通过调整目标表列的长度、修改控制文件中的定义、优化控制文件以及检查源文件等多种方式来解决。在处理此类问题时,确保对SQL*Loader的工作原理有充分的...
Oracle sqlldr 大批量数据导入工具使用实例,通过Oracle 自带的sqlldr 工具可快速导入大批量的数据至Oracle中。 工具使用前提条件: 1.安装的Oracle Client 不能为精简版,要不然就找不到sqlldr.exe 2.将Oracle的...
6. 数据库会话设置:在导入数据前,确保数据库会话的字符集设置正确,可以通过以下SQL语句临时改变会话字符集: ``` ALTER SESSION SET NLS_CHARACTERSET = 'AL32UTF8'; ``` 三、总结 解决SQL*Loader导入乱码...
SQL*Loader(简称sqlldr)是Oracle数据库提供的一款强大的数据加载工具,用于高效地将大量数据从外部文件导入到数据库表中。在这个场景下,我们关注的是如何利用sqlldr将Excel数据快速批量地导入到Oracle数据库。...
Oracle SQL*Loader(sqlldr)是Oracle数据库提供的一种强大的数据加载工具,用于将大量数据从文本文件快速导入到数据库表中。在这个实例中,我们将详细探讨如何使用SQL*Loader导入包含日期列的数据。 首先,我们...
VS2013 C#.Net开发 C#利用SqlLdr 数据批量导入Oracle程序源码,高效可达万行/秒。 1.可多表同时执行 2.可视导入信息反馈,可查看错误数据及导入日志。 3.内含 批处理 执行方法 及 导入 ldr Demo文件。 4.内含导数据...
使用`ora_load.sh`脚本来自动化导出源数据库中的表数据,然后在目标数据库上创建相同的表结构,接着通过FTP传输数据文件到目标数据库,并执行`batch_load_data.sh`脚本来导入数据。导出数据时,利用`spool`功能将...
- **impdp**:用于导入数据,可以从DMP文件中恢复数据到数据库中。 2. **Sql Loader (sqlldr)** Sql Loader是一种命令行工具,通过读取控制文件(.ctl文件,如提供的`ldr_object.ctl`)来确定如何解析输入数据...
3. **支持多种数据格式**:OraLoader不仅支持常见的CSV、TXT等文本格式,还支持Excel、XML、JSON等多种数据格式,满足不同场景下的数据导入需求。 4. **性能优化**:OraLoader利用了sqlldr的底层性能优势,能够在...
用于手工将数据导入SQL SERVER数据库中,暂时支持2008和2012,2016没有试过,可以很快速的导入数据入库。欢迎大家下载