`
DataBird
  • 浏览: 70605 次
  • 性别: Icon_minigender_1
  • 来自: 湖南长沙
社区版块
存档分类
最新评论

解决SQLLDR批量提交与TRIGGER逐行触发的矛盾:去掉FOR EACH ROW即可

 
阅读更多
使用sqlldr导入逗号分隔的txt文件,速度快,可以针对本列进行函数处理,缺陷是(不能绑定其他列变量)不能对其他列进行函数处理,作为新的列。
只好利用触发器,试图在slqldr导入后,根据已经有的列,来update一些空白列。
发现for each row不行,去掉后就OK了,意思是全表导入完成后,再一次性更新,导入1行更新1行是不行的,为什么?手工插入1行记录试验,发现记录还未提交,触发器就动作了!这个应该是原因了,记录还未正式插入,触发器就动作去更新空白列,变成了空对空。sqlldr的控制文件里面写着多少条记录提交1次,这个没提交,就不可能让触发器去update吧?触发器当然不干了,呵呵。

所以啊,sqlldr的批量提交方式必须与去掉FOR EACH ROW的触发器结合使用,才能使update正常进行。

CREATE OR REPLACE TRIGGER LAC_CI_INSERT
  AFTER INSERT ON CME_HUA_LSTGCELLCHMGAD
BEGIN
  UPDATE CME_HUA_LSTGCELLCHMGAD
     SET (LAC, CI) =
         (SELECT SUBSTR(CELLNAME, 1, 5), SUBSTR(CELLNAME, 7) FROM DUAL)
   WHERE RECDATE = TRUNC(SYSDATE);
END;
分享到:
评论

相关推荐

    oracle sqlldr多文件批量导入

    oracle sqlldr多文件批量导入

    java调用shell脚本执行sqlldr与存储过程

    在java代码中调用执行shell脚本,sqlldr导数与使用sqlplus在shell调用执行存储过程。 linux环境中有2个dba的用户:oracle、erm 还有1个web用户:erm 在linux环境中,这三个用户都可以直接在任意目录下执行该shell...

    C#数据批量高效导入Oracle源码(利用SqlLdr )

    VS2013 C#.Net开发 C#利用SqlLdr 数据批量导入Oracle程序源码,高效可达万行/秒。 1.可多表同时执行 2.可视导入信息反馈,可查看错误数据及导入日志。 3.内含 批处理 执行方法 及 导入 ldr Demo文件。 4.内含导数据...

    sqlldr导入数据

    使用sqlldr批量导入数据:http://blog.csdn.net/gengwx_2008/article/details/43792301

    C# 通过oracle sqlldr 将TXT批量导入oracle

    C# 通过oracle sqlldr 将TXT批量导入oracle 一个文件夹里有大量的TXT文件,以"~"区分各字段. 这个程序能批量将此文件夹里的所有的文件导入oralce 并按日期把已导入的TXT文件复制另一个文件夹

    Oracle64位 sqlldr命令安装包

    oracle11g基本客户端,主要是sqlplus,sqlldr,exp,imp这几个命令。最最主要的还是sqlldr,想找个单独可用的sqlldr,在Oracle 10g Client 精简优化安装包不到12M ...

    sqlldr配置文件详解.zip

    修改参数为自己本机配置后,运行脚本,复制输出结果到cmd下,直接运行即可批量将excel文件内容传输至指定Oracle表格中。 包含: sqlldr配置文件详解.sql 批量sqlldr导入.py 批量导入文件SQL语句 示例:祁东县.ctl

    Oracle11G的Linux64的sqlldr版本11.2.0.4

    用的是11.2.0.4的Instant Client,Oracle没给sqlldr,Tools里面也没有(12C就有)。 网上下载了几个都是11.2.0.1的sqlldr,包括标了版本号的,都需要替换库文件。 这个是自己安装p13390677_112040_Linux-x86-64_4of7...

    oracle 11.2客户端 sqlldr相关文件

    oracle 11.2客户端(linux) sqlldr相关文件 如果oracle客户端用的是rpm方式安装: sqlldr命令放在bin 其他文件放在lib 如果oracle客户端用的是直接解压方式: 所有都放在根目录即可

    Oracle sqlldr 大批量数据导入工具

    Oracle sqlldr 大批量数据导入工具使用实例,通过Oracle 自带的sqlldr 工具可快速导入大批量的数据至Oracle中。 工具使用前提条件: 1.安装的Oracle Client 不能为精简版,要不然就找不到sqlldr.exe 2.将Oracle的...

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

    sqlldr工具(同时包含linux版和windows版本),快速上传数据到oracle数据库,并附使用案例,具体执行步骤,请参考我的博客文章

    Oracle11G客户端64位windows环境-sqlldr-imp-sqlplus等可用.zip

    oracle11g基本客户端,主要是用于windows环境下sqlplus,sqlldr,exp,imp这几个命令。最最主要的还是sqlldr,想找个单独可用的sqlldr,在Oracle 10g Client 精简优化安装包不到12M ...

    Oracle11g64位客户端-sqlldr可用

    oracle11g基本客户端,主要是sqlplus,sqlldr,exp,imp这几个命令。最最主要的还是sqlldr,想找个单独可用的sqlldr,在Oracle 10g Client 精简优化安装包不到12M ...

    sqlldr导入csv文档

    主要用于sqlldr,里面有例子的代码,可以参考

    sqlldr_所有命令及用法

    1. sqlldr简介 3 2. sqlldr结构 4 2.1. sqlldr结构图 4 2.2. sqlldr功能描述 5 2.3. 命令结构 6 2.3.1. 程序参数 6 2.4. 控制文件 8 2.4.1. 控制文件语法 8 2.4.2. 控制文件结构说明 9 2.5. 数据文件 11 2.5.1. 数据...

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

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

    论文研究-Oracle SQLLDR介绍及基于SQLLDR的数据库同步系统实现 .pdf

    Oracle SQLLDR介绍及基于SQLLDR的数据库同步系统实现,刘苑琦,邹仕洪,SQL*Loader是Oracle数据库系统提供的一个高速批量数据加载工具,它可以在极短的时间内加载数量庞大的数据,可以直接被前端应用程序调��

    oracle最强大的sqlldr上传工具

    oracle最强大的sqlldr上传工具

    sqlldr导数据实例实例

    利用oracle的sqlldr功能可添加控制规则的导入数据

    浅谈ORACLE的SQLLDR

    oracle sqlldr 工具应用说明,将固定格式的文件数据导入到数据库中

Global site tag (gtag.js) - Google Analytics