oracle 的 sqlldr 导入数据时

问题描述

oracle的sqlldr导入数据时,1.在java中调用Runtime.getRuntime().exec(sqlLoadSQL);时为什么不能立即入库。要停调tomcat服务后才能全部入库??并且日志文件中才生成数据??是不是sqlldr有什么参数控制啊??1.如果执行Runtime.getRuntime().exec(sqlLoadSQL)后;由于某些错误,不能全部入库只有几百条数据入库;这时我想回滚,该怎么做,,也就是事务处理。。。。急丫。。。。。

解决方案

解决方案二:
2|你用sqlldr加载一个1000万记录的数据表,但是加载了多一半的时候你发现有问题,这个时候你想清空表重新加载。那么最好reusestorage,这样再次加载就不需要再次寻找空闲空间了。数据库操作的sql语句:  使用方法:  truncatetabletable_name;  操作特性:  truncate只删除表中的所有数据,不删除表的结构;  truncate是ddl操作立即生效,原数据不放到rollbacksegment中,不能回滚.,操作不触发trigger.;  truncate语句缺省情况下将空间释放到minextents个extent,除非使用reusestorage;  truncate会将高水线复位(回到最开始)
解决方案三:
1要停调tomcat服务后才能全部入库??和tomcat没有关系吧看看是不是程序逻辑有问题
解决方案四:
sqlLoadSQL设置有提交参数rows,一般默认是64,当插入数据库的条数达到提交条件时,才会提交一次(最后一次不满条件时也会提交),你的插入操作一次插入多少?
解决方案五:
引用1楼dyllove98的回复:

2|你用sqlldr加载一个1000万记录的数据表,但是加载了多一半的时候你发现有问题,这个时候你想清空表重新加载。那么最好reusestorage,这样再次加载就不需要再次寻找空闲空间了。数据库操作的sql语句:  使用方法:  truncatetabletable_name;  操作特性:  truncate只删除表中的所有数据,不删除表的结构;……

又学到不少东西
解决方案六:
引用3楼dubufanchen的回复:

sqlLoadSQL设置有提交参数rows,一般默认是64,当插入数据库的条数达到提交条件时,才会提交一次(最后一次不满条件时也会提交),你的插入操作一次插入多少?

我插入240000条64:错误情况下是插入64条。。在运行正常的情况下:运行Runtime.getRuntime().exec(sqlLoadSQL)只插入836条不知道为什么总是这个数字;我是这样认为的:1.sqlload是不是有参数或缓存控制。2.插入是dml语句应该commit才能提交吧!不解??
解决方案七:
将参数rows=0设置成逐笔提交试一下,如果这样可以说明问题就是这个地方,如果每次都是只插入836条,应该是你的数据格式不正确,看看log文件中的提示(默认与数据文件同一个目录,与ctl文件同名,只是后缀由ctl换成log),里面会有详细的出错说明。
解决方案八:
导入100万数据:1)今天我也遇到这样的问题:执行在sqlldr语句后面加上direct=true即可Processprocess=r.exec("sqlldruserid=customer/soshare@customercontrol=bigdata.ctldata=bigdata.csvdirect=true");[经过测试:用时间为:00:00:30.06]2)还有跟快的Processprocess=r.exec("sqlldruserid=customer/soshare@customercontrol=bigdata.ctldata=bigdata.csvdirect=truestreamsize=10485760");[经过测试:用时间为:00:00:28.19]

时间: 2024-10-02 00:47:01

oracle 的 sqlldr 导入数据时的相关文章

oracle sqlldr导入-Oracle sqlldr 导入数据

问题描述 Oracle sqlldr 导入数据 有表 create table day_gnl_dtl( code char(9),time_stamp timestamp); 需要导入的文本文件day_gnl_dtl.txt 内容为这样的格式: 222022133|2014-04-03 15:59:30.222 222032133|2014-02-03 15:59:30.222 922032233|2014-11-03 15:59:30.222 122312333|2014-09-03 15:

oracle 导入-oracle导入数据时遇到以下错误请大神们看看怎么回事

问题描述 oracle导入数据时遇到以下错误请大神们看看怎么回事 通过imp命令导入: . . importing partition "T_CMS_HB_PROCESS_LOG_3G":"PARTMAX" 1694 rows imported IMP-00017: following statement failed with ORACLE error 1917: "GRANT SELECT ON "T_CMS_HB_PROCESS_LOG_3

dmp-oracle往导入数据时需要的表空间变得很大导致导入中断

问题描述 oracle往导入数据时需要的表空间变得很大导致导入中断 50C 用的oracle11g,我用imp导入一个3g左右的dmp文件,导入用户和表空间都是新建的应该不存在大小不够的问题,我之前试着导入的时候需要的表空间一直增长到了80g左右把我的硬盘都装满了.不知道有没有什么解决方法望指点. 解决方案 http://www.2cto.com/database/201311/254231.html 解决方案二: http://blog.csdn.net/qq275394303/article

导入数据时遇见ORA-00054

今天应开发人员要求对一个表进行导入.发现如下错误: ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired ORA-00955: name is already used by an existing object 经过查看锁的使用情况,发现有开发人员对要导入的表进行dml操作. 下面模拟一下环境:. session 1: yang@rac1>update t set b=1 where a=4;

请问mysql导入数据时,文件名可以用正则表达吗?

问题描述 请问mysql导入数据时,文件名可以用正则表达吗? 我现在有很多iis产生的log文件,想要每天自动导入前一天的log日志到 mysql数据库,现在我只能通过load data local infile '/tmp/ex150801.log'手动导前一天的数据. 如果我要排job自动导出该怎么做? 解决方案 写一个程序定时去跑比较简单,而且灵活. 解决方案二: 用脚本等命令行去调用mysqlimport命令等去加载文件导入数据吧.LOAD DATA语法应该不支持正则

sqlserver-求助:从Oracle向SqlServer导入数据问题

问题描述 求助:从Oracle向SqlServer导入数据问题 情况是这样: 用datareader从oracle中读取数据,100w左右记录,利用.NET的sqlbulkcopy方法插入到sqlserver中. 但是每次执行到80w左右的时候就提示 "primary文件组已满". 网上说的方法都试了没用,磁盘空间足够,ntfs格式.数据库和日志文件设置了自动增长不限大小,每次增长30M-1024M都试过. 目前数据文件在10G左右. 奇怪的是另一张表数据量更大,200多万数据,同样的

:( 用多线程向Access中成批导入数据时,开始执行一段时间没问题,再后就保存失败了。

问题描述 用多线程向Access中成批导入数据时,开始执行一段时间没问题,再后就保存失败了.向Access中添加数据的语句没有错误,用SQL2K试过没有问题.得到在向获取Access添加数据时的错误为"未明确的错误".估计可能是添加数据时,Access成受不了了,所以才报错.但想想应该是有什么办法可以解决的.向Access添加数据的部分如下://保存数据到AccesspublicstringInfoSave(stringstrDBFile,string[]Info){try{strin

Mysql导入数据时-data truncated for column..

在导入Mysql数据库时,发现怎么也导入不进去数据,报错:查看表定义结构:可以看到comm 定义类型为double类型原来是因为数据库文件中: 7369    smith    clerk    7902    1981-03-12    800.00    NULL    20 7499    allen    salesman    7698    1982-03-12    1600.00    300.00    30 7521    ward    salesman    7698  

关于批量导入数据类SqlBulkCopy 导入数据时增加额外的列

问题描述 usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Diagnostics;usingSystem.Data.SqlClient;usingSystem.Data;namespace样本采购订单{classProgram{staticvoidMain(string[]args){Stopwatchst=newStopwatch();st.Start();str