`
DataBird
  • 浏览: 71703 次
  • 性别: 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多文件批量导入”这个场景下,我们需要掌握如何利用SQL*Loader一次性处理多个数据文件的导入操作。下面我们将详细讲解这个主题。 首先,了解SQL*Loader的基本结构。SQL*Loader通过控制文件(.ctl...

    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.内含导数据...

    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

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

    **SQL*Loader(SQL Loader)** 是Oracle数据库提供的一款强大数据加载工具,它能够高效地将大量数据从外部文件批量导入到Oracle数据库中。在标题提及的`sqlldr(linux+windows).rar`压缩包中,包含了适用于Linux和...

    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...

    sqlldr通过excel上传数据

    在这个场景下,我们关注的是如何利用sqlldr将Excel数据快速批量地导入到Oracle数据库。下面将详细介绍sqlldr的工作原理、配置过程以及与Excel数据的交互。 一、sqlldr工作原理 SQL*Loader读取指定的控制文件,这个...

    sqlldr导入数据

    SQL*Loader(简称sqlldr)是Oracle数据库提供的一款强大的数据导入工具,用于快速将大量数据批量导入到数据库中。在数据库管理和数据迁移等场景中,它具有高效、灵活的特点,可以处理各种格式的数据文件。本篇文章将...

    sqlldr导入csv文档

    ### SQL*Loader (SQLLDR)导入CSV文档详解 #### SQL*Loader简介 SQL*Loader是Oracle数据库的一个强大工具,用于高效地将大量数据从外部文件加载到Oracle数据库中的表中。它支持多种数据格式,包括CSV、文本、二进制...

    利用sqlldr大量数据导入

    `SQL*Loader`(简称sqlldr)是Oracle数据库提供的一种批量数据加载工具,它能够快速、方便地将大量结构化数据从文本文件导入到Oracle数据库中。下面将详细介绍sqlldr的工作原理、配置过程以及如何利用它进行大量数据...

    oracle最强大的sqlldr上传工具

    - 性能优化:通过并行加载、批量提交、使用直接路径加载等方式提高数据导入速度。直接路径加载绕过PGA(程序全局区),直接写入数据文件,减少了内存开销,但会锁定表,不适合在线环境。 5. SQL*Loader的适用场景...

    浅谈ORACLE的SQLLDR

    ### ORACLE SQLLDR知识点详解 #### 一、SQL Loader的特点与应用场景 ##### 特点概述 - **兼容性好**:SQL Loader是Oracle提供的一个非常实用的数据导入工具,能够处理不同格式的数据文件,并将其导入Oracle数据库...

    oracle 11.2客户端 sqlldr相关文件

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

    Oracle11G客户端64位(sqlldr可用)

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

    sqlldr报超出字符长度错误

    ### SQL*Loader 超出字符长度错误解析与解决方案 #### 概述 在使用SQL*Loader工具导入数据时,可能会遇到超出字符长度限制的错误。这类问题通常出现在需要将包含较长字符串的数据加载到表中时,而目标列定义的长度...

    Windows版oracle10g精简客户端(带sqlldr)

    Oracle 10g是一款历史悠久的关系型数据库管理系统,广泛应用于企业级的数据存储与管理。Windows版的Oracle 10g客户端是专为在Windows操作系统上运行而设计的,它提供了连接到Oracle服务器、执行SQL查询、数据导入...

    sqlldr2 linux64工具

    oracle 快速导出表大量数据 工具 ,sqlldr2 解压即可用,简单高效 oracle@Testdbstd:~/tabsqlldr2> ./sqluldr2_rhel6_110201.bin SQL*UnLoader: Fast Oracle Text Unloader (GZIP, Parallel), Release 5.0.1 (@) ...

    sqlldr_所有命令及用法

    SQL*Loader,简称sqlldr,是Oracle数据库系统中用于快速加载大量数据到数据库的一个实用工具。它是Oracle Data Pump的一部分,提供了高效的数据导入功能,适用于批量处理大数据量的场景。 1. **sqlldr简介** SQL*...

Global site tag (gtag.js) - Google Analytics