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

自动生成SQL Loader ctl文件

阅读更多
SQL Loader可以用来将大批量数据导入数据库,如果用insert语句一条条插入的话,还是很慢的。

本人测试下来数据:
一张150个字段的表导入10万条记录
用普通的INSERT语句插入,耗时538s
换成SQL Loader以后,耗时70s。
可以节省相当多的时间!

SQL Loader使用入门(通过例子教你,通俗易懂):
http://www.oracle-dba-online.com/sql_loader.htm
http://www.thegeekstuff.com/2012/06/oracle-sqlldr/

命令:
sqlldr userid=user/pass@sid control=/export0/home/xx.ctl log=/export0/home/xx.log


另附一个自动生成SQL Loader ctl文件的方法:
运行以下SQL即可
select
'LOAD DATA
APPEND
INTO TABLE ' || '&TABLE_NAME' ||
' FIELDS TERMINATED BY ","
TRAILING NULLCOLS
(' "Column Name",' ' "sql_loader_type" from dual
union all
select
COLUMN_NAME,
DECODE(DATA_TYPE,
'TIMESTAMP(6)','TIMESTAMP "YYYY-MM-DD HH24:MI:SS.FF",',
'NUMBER','DECIMAL EXTERNAL,',
'VARCHAR2','CHAR,',
'CHAR','CHAR',
'DATE','"TO_DATE(SUBSTR(:' || column_name || ',1,19),''YYYY-MM-DD HH24:MI:SS'')",'
) "sql_loader_type"
from (
select * from
all_tab_cols
where owner=UPPER('&SCHEMA_NAME') AND TABLE_NAME = UPPER('&TABLE_NAME')
order by column_id)
union all
select ')' "Column Name" , '' "sql_loader_type" from dual  


运行完把结果拷贝出来再加工一下即可。
分享到:
评论

相关推荐

    通过sqlloader将csv中文件写入数据库中

    它读取外部数据文件,如CSV,然后根据控制文件(ctl文件)的指令将数据解析并插入到数据库表中。控制文件是`SQL*Loader`的核心,它定义了数据文件的格式、字段映射、转换规则等。 1. **创建控制文件**:一个`.ctl`...

    SQL loader and oracle sql study

    SQL Loader的工作原理基于控制文件,这是一个包含有关如何处理数据文件的指令的文本文件。通过指定字段的格式、数据转换规则和错误处理策略,SQL Loader能够快速将数据从文本文件加载到Oracle表中。它的优点在于速度...

    sqlloader入门

    SQL*Loader是Oracle数据库系统提供的一种高效的数据加载工具,它能够快速地将结构化文本数据文件导入到数据库中。在大型数据仓库应用中,SQL*Loader因其直接路径和并行加载功能而备受青睐,这些特性使得它在大量数据...

    SQL_LOADER例子

    在描述中提到,"sqlloader方便数据的导入导出",确实如此,SQL*Loader不仅支持数据的导入,还可以用于导出数据。对于导入,它能处理大量数据,并且支持多种数据类型,包括字符串、数字、日期等。对于导出,可以通过...

    sqlloader使用教程

    随后,SQL*Loader将根据指定的控制文件(CTL类型)执行数据加载任务。例如,若控制文件名为`CARLOAD.ctl`,则可通过以下命令启动数据加载流程: ``` sqlload /carload ``` 其中,斜杠`/`表示用户名将基于当前的...

    SqlLoader实用教程(基础入门)

    ### SQLLoader实用教程知识点详解 #### 一、SQL*Loader简介 SQL*Loader是Oracle数据库提供的一个强大且灵活的数据加载工具,主要用于将外部文件中的数据批量导入到Oracle数据库中。这些外部文件通常为文本文件,但...

    oracle sqlloader使用指南.doc

    Oracle SQL*Loader是Oracle数据库系统提供的一个强大工具,用于快速高效地从外部数据文件批量导入数据到数据库中。它的灵活性和可配置性使得用户可以根据不同的数据格式和需求进行定制化的数据加载。 首先,使用SQL...

    sqlload的使用

    - **日志文件**:SQL*Loader 在运行过程中会生成日志文件,记录导入过程中的详细信息,包括成功的记录和失败的记录。 #### 四、SQL*Loader 基本使用步骤 1. **创建数据文件**:通常是一个文本文件,其中包含了要...

    如何通过txt文件批量导入数据到oracle数据库

    我们需要编写一个控制文件(.ctl文件),它定义了如何解析TXT文件和如何将数据插入到数据库表中。 4. **编写控制文件**:控制文件包含了关于如何读取TXT文件和加载数据的具体指令。例如,指定字段的分隔符、是否...

    oracle大数据导出工具sqluldr2

    在具体使用过程中,SQL*Loader依赖于控制文件(.ctl文件),这是一个包含数据文件格式和数据库表映射信息的文本文件。用户可以通过编辑控制文件来指定要加载的数据字段、数据类型、排序顺序、数据验证规则等。例如,...

    NXY_ETL.zip

    动态生成CTL(Control File)文件是SQL Loader的重要环节,因为这些文件包含了数据导入的具体指令,如字段映射、数据格式等。 接下来,"远程目录文件解压"涉及到文件系统的操作和网络通信。在shell脚本中,可以使用...

    sqluldr-oracle.rar

    SQL*Loader的工作原理是读取用户指定的数据文件,通过控制文件(.ctl文件)定义数据格式,然后将数据批量加载到Oracle数据库的表中。控制文件是SQL*Loader的核心,它包含关于如何解析数据文件、如何映射字段到数据库...

    oracle学习笔记.docx

    下面是一个SQLLoader的例子,创建了一个名为SOURCE_JRB的表,然后使用一个名为jrb.ctl的控制文件来定义数据加载规则。控制文件指示了数据文件(jrb.dat)的布局,如字段位置、数据类型转换和加载模式。例如,JR字段...

    D:\sqluldr2\sqlldr(linux+windows).rar

    SQL*Loader通过读取控制文件(.ctl文件),将数据从文本文件(如CSV或固定宽度格式)加载到数据库表中。控制文件定义了数据文件的格式、字段映射以及加载规则。 **2. 数据导入流程** - **创建控制文件**:控制文件...

    往oracle数据库中,插入excel文件中的数据

    2. **查看日志文件**:SQL*Loader会在执行过程中生成日志文件(默认为`input.log`),用于记录导入过程中发生的错误或警告。通过检查日志文件可以确保数据导入的成功与否。 #### 验证数据 1. **使用SQL*Plus验证**...

    关于spool 和 sqlldr 的实例代码

    结合`Spool`和`SQL*Loader`,我们可以创建一个自动化流程,先使用Spool收集SQL查询结果,然后将结果保存到CSV文件,最后使用SQL*Loader将这些数据导入到数据库。这样的流程对于数据迁移、备份和分析非常有帮助。 在...

    sqlldr导入带有自动增加的数据

    在Oracle数据库管理中,SQL*Loader(简称sqlldr)是一个非常强大的工具,用于将外部数据文件中的数据批量加载到Oracle数据库表中。当涉及到处理带有自动增加字段的表时,SQL*Loader提供了一些灵活的方法来确保数据的...

    将txt文件中的数据导入到oracel数据库中,完整代码,不限txt数量,只需要对应表结构就行

    SQL*Loader会生成日志文件,帮助你定位和解决问题。 6. **批量处理**:由于描述中提到“不限txt数量”,所以可能涉及多个TXT文件的批量导入。这可以通过编写脚本或程序循环调用SQL*Loader,每次处理一个文件来实现...

Global site tag (gtag.js) - Google Analytics