昨日碰到的又一将其他数据库中数据导入ORACLE数据库中的例子,其中用到了SEQUENCE来实现一个主键的自动导入,
源数据在SQL SERVER中,因为开发人员已经将其导出成EXCEL文件了,所以放弃了使用HS,使用SQL LOADER干这个活,
问题出在一个列的解决上,要求是在原来数据的基础(有主键)上增加一个新的主键,作导入目标表的主键,
初始尝试直接建立一个SEQUENCE来解决这个问题,结果屡屡报错,最终的解决方法是使用了下面的一个SQLLDR的序列函数,
下面是CTL文件的写法,
options (skip = 1)
load data
infile 'aaa.csv'
Append into table bbb
fields terminated by ','
OPTIONALLY ENCLOSED BY '"'
trailing nullcols
(ID sequence(max,1),
aaa,
bbb,
ccc,
...
)
其中sequence(n,1) 代表序列start with max increment by 1,
值得指出的是,当指定sequence(max,1)时(max大小写不区分) ,sqlldr将自动找到列中的最大值,然后生成并使用这个虚拟的序列来用于插入数据,很好很强大的sqlldr。
相关推荐
Oracle SQL*Loader是Oracle数据库提供的一个用于将外部数据加载到Oracle表...对于数据库管理员和数据工程师来说,掌握SQL*Loader的使用是必须的,因为它在数据迁移、数据整合、数据备份和恢复等场景中发挥着重要作用。
oracle11g基本客户端,主要是sqlplus,sqlldr,exp,imp这几个命令。最最主要的还是sqlldr,...如果使用sqlldr 报以下错误 可能环境变量少配置 Message 2100 not found; No message file for product=RDBMS, facility=UL
在java代码中调用执行shell脚本,sqlldr导数与使用sqlplus在shell调用执行存储过程。 linux环境中有2个dba的用户:oracle、erm 还有1个web用户:erm 在linux环境中,这三个用户都可以直接在任意目录下执行该shell...
这篇博文将详细介绍sqlldr的使用实例,帮助你理解和掌握这一工具,以便在实际工作中更有效地处理大量数据。 1. **SQL*Loader的基本概念** SQL*Loader通过读取控制文件,将数据从文本文件加载到Oracle表中。控制...
Oracle中的sqlldr用法详解 Oracle中的sqlldr工具是用来将数据从外部文件加载到Oracle数据库中的一个命令行工具。sqlldr命令提供了许多参数来控制加载过程,下面将详细介绍这些参数的作用和用法。 userid 参数...
- 使用SQL*Loader将处理后的数据导入到另一个数据库或同一数据库的不同表中。 - 使用`MERGE INTO`语句,根据业务逻辑,将导入的数据与原表进行合并,完成数据的更新和插入。 在实际操作中,我们还需要考虑错误处理...
SQL*Loader(简称sqlldr)是Oracle数据库提供的一款强大的数据加载工具,用于高效地将大量数据从外部文件导入到数据库表中。在这个场景下,我们关注的是如何利用sqlldr将Excel数据快速批量地导入到Oracle数据库。...
在Oracle中,这通常是通过使用序列(sequence)来实现的。序列是一种对象,可以生成连续的整数,通常用于为主键或唯一标识字段提供值。 ### 示例分析 给定的代码示例展示了如何使用SQL*Loader将数据文件`b.txt`中...
Oracle的SQL*Loader(简称SQLLDR)工具就是这样一个强大的数据加载器,它能快速高效地将数据从外部文件批量导入到数据库中。结合批处理(BAT)脚本,我们可以自动化这个过程,提高工作效率。下面我们将详细探讨如何...
包括:libclntsh.so.11.1,sqlldr,中英文的message文件。 应该没有必要替换库文件,包含在里面备用。 打命令行看过确实是11.2.0.4。 --- SQL*Loader: Release 11.2.0.4.0 - Production on 星期五 11月 12 12:25:22 ...
2. **单一控制文件**:在控制文件中使用`WHEN`条件,根据不同的文件名进行导入。这样可以将所有规则放在一个文件中,减少维护工作。 ```sql WHEN (1:1 = 'file1') LOAD DATA INTO TABLE table_name ... WHEN...
在这个"Windows版oracle10g精简客户端(带sqlldr)"中,我们主要关注两个关键组件:Instant Client和sqlldr。 **Instant Client** 是Oracle提供的一种轻量级客户端工具,它允许用户在没有完整安装Oracle数据库的...
在命令行中,使用以下格式运行sqlldr: ``` sqlldr username/password@database control=control_file.ctl log=log_file.log bad=bad_file.bad discard=discard_file.dsc ``` - `username/password@database`:...
- **使用函数装载**:在控制文件中使用转换函数对数据进行处理后再加载。 - **多文件多表装载**:处理多个数据文件并加载到多个表中。 - **默认值装载**:对于没有提供的字段,可以设置默认值。 - **LOB数据装载...
oracle11g基本客户端,主要是sqlplus,sqlldr,exp,imp这几个命令。最最主要的还是sqlldr,想找个单独可用的sqlldr,在Oracle 10g Client 精简优化安装包不到12M ...
通过以上分析,我们了解了SQL*Loader的基本使用方法及其在复杂数据操作中的应用,包括数据导入、更新和插入操作。这些技能对于数据库管理员和开发人员来说都是至关重要的,尤其是在处理大规模数据集时。
在提供的压缩包文件`spool和sqlldr实例`中,你可能找到了一个具体的Shell脚本,该脚本演示了如何结合使用这两个工具。这个脚本可能包含了以下几个部分: 1. 初始化环境,如设置Oracle环境变量。 2. 使用Spool将SQL...
根据题目中的描述,“sqlldr报超出字符长度错误”,这一问题主要是因为源文件中的数据长度超出了目标表中相应列的定义长度。在SQL*Loader执行过程中,如果某一字段的实际值长度超过了目标表该列的长度,就会触发此...
修改参数为自己本机配置后,运行脚本,复制输出结果到cmd下,直接运行即可批量将excel文件内容传输至指定Oracle表格中。 包含: sqlldr配置文件详解.sql 批量sqlldr导入.py 批量导入文件SQL语句 示例:祁东县.ctl