SQL*Loader-951错误

在使用datastage开发的时候,遇到错误:

SQL*Loader-951: Error calling once/load initialization

ORA-00604: error occured at recursive SQL level 1

ORA-00054: resource busy and acquire with NOWAIT specified

搬出谷歌大神:

可能是表里索引处于 unusable state --> 导致索引unusable的原因:duplicate keys on unique constraint column,解决的方案SKIP_INDEX_MAINTENANCE or rebuild index

我琢磨了半天,我这个表没有索引啊,怎么可能出现这个问题?也没想太多,把OS重启了事,运行JOB,成功无报错。又试了一次,出现同样的错误。正在纠结中,无意中把delete表语句的session关掉了,JOB就正常了。 最终原因居然是:我删除表数据之后并没有commit,导致重新插入数据的时候报错。太粗心了,把知识重新记一次。

科普自己:

DML(select,insert,update,delete,call,explain plan,lock table,...)不自动提交

DDL 自动提交

DCL 自动提交

sql*plus里面如果没有提交的话,正常退出sql*plus的时候就会自动提交;如果非正常退出sql*plus,不提交。

例子:

insert into src.dw_sjc_q_chel_visit_record_d(appkey,method,time,request,response,provider,isbilling)
select appkey,method,time,request,response,provider,isbilling from dw_biz_credit_access_bf
commit;

时间: 2024-11-01 17:31:32

SQL*Loader-951错误的相关文章

SQL*loader实验

SQL*Loader 用法: sqlldr keyword=value [,keyword=value,... ] SQL*Loader通过控制文件实现对记录的处理,例子命令行下sqlldr scott/tiger control=case.ctl(并非数据库sql>下) case.ctl内容如下: load data infile *  ##使用*表示加载的数据在控制文件中,如果是独立文件要使用'绝对路径名' into table bonus  ##指定要将数据加载到哪个表中,该表必须已经存在

Oracle Sql Loader的学习使用

最近由于遇到oracle控制文件的使用,虽然不是很复杂,但是从来没有用过,专门花点时间看看.点击 这里 查看详细 1,概述: Sql Loader: 一个批量工具,将文件数据导入到数据库.可以导入一个表或者多个表,甚至可以在导入时修改数据. 2,使用 a,你电脑需要装Oracle,不然你是找不到Sqlldr 这个命令的. 在控制输入台输入 sqlldr: 会列出相关的参数介绍. > sqlldr . . . Usage: SQLLDR keyword=value [,keyword=value,

[Oracle] SQL*Loader 详细使用教程(2)- 命令行参数

sqlldr工具 SQL*Loader的客户端工具是sqlldr,在操作系统的命令行下输入sqlldr,后面不接任何参数,将显示帮助信息如下所示(所有命令行参数的简单描述及其默认值),所以你并不需要对下面的参数死记硬背,当你忘记它们时,可以通过这个方式快速查询. [plain] view plain copy print? Valid Keywords: userid -- ORACLE username/password control -- control file name log -- 

[Oracle] SQL*Loader 详细使用教程(1)- 总览

SQL*Loader原理 SQL*Loader是Oracle提供的用于数据加载的一种工具,它比较适合业务分析类型数据库(数据仓库),能处理多种格式的平面文件,批量数据装载比传统的数据插入效率更高.其示意图如下: 控制文件(Control File) (.ctl):用于控制数据导入的行为方式的文件(最重要的文件) 参数文件(可选)(Parameter File) (.par):可以把参数直接写在控制文件里,也可以单独写一个参数文件 数据文件(Data Files) :放置源数据的平面文件(可以一次

[Oracle] SQL*Loader 详细使用教程(3)- 控制文件

控制文件是SQL*Loader里最重要的文件,它是一个文本文件,用来定义数据文件的位置.数据的格式.以及配置数据加载过程的行为,在sqlldr中以control参数指定控制文件.   在控制文件里配置命令行参数 (OPTIONS) 在上一篇中我们讲过命令行参数可以配置在三个地方,其中一个就是可以使用控制文件的OPTIONS字句(这也是最常用的方式),如下所示: OPTIONS (DIRECT=true, SILENT=(ERRORS, FEEDBACK) ) 更多的命令行参数,请见上一篇.  

IT忍者神龟之Oracle 的数据导入导出及 Sql Loader (sqlldr) 的用法

在 Oracle 数据库中,我们通常在不同数据库的表间记录进行复制或迁移时会用以下几种方法: 1. A 表的记录导出为一条条分号隔开的 insert 语句,然后执行插入到 B 表中 2. 建立数据库间的 dblink,然后用 create table B as select * from [email protected] where ...,或 insert into B select * from [email protected] where ... 3. exp A 表,再 imp 到

SQL*Loader 详解

在 Oracle 数据库中,我们通常在不同数据库的表间记录进行复制或迁移时会用以下几种方法: 1. A 表的记录导出为一条条分号隔开的 insert 语句,然后执行插入到 B 表中2. 建立数据库间的 dblink,然后用 create table B as select * from [email protected] where ...,或 insert into B select * from [email protected] where ...3. exp A 表,再 imp 到 B

Sql Loader的简单使用

之前总结的关于SQL*Loader的用法,今天又用到,又翻出来看看 SQL*Loader 可将外部文件中的数据加载到Oracle DB 的表中.它具有一个功能强大的数据分析引擎,因此对数据文件中数据的格式没有什么限制. SQL*Loader 使用以下文件: 输入数据文件:SQL*Loader 从控制文件中指定的一个或多个文件(或操作系统的等效文件)中读取数据.从SQL*Loader 的角度看,数据文件中的数据是按记录组织的.一个特定的数据文件可采用固定记录格式.可变记录格式或流记录格式.可通过控

IMP/EXP,数据泵,SQL*Loader ,rman,oracle数据库备份

IMP/EXP,数据泵,SQL*Loader ,rman 数据库的逻辑备份和恢复:exp和imp1.导库:导出和导入整个数据库2.导表空间:导出和导入表空间3.导表用户:导出和导入用户中所有对象4.导表:导出和导入表或表分区 (1)commit=y 插入并提交,频繁提交会影响数据库效率.提交数据库过大时可以添加.(2)ignore=y/n 该参数表示忽略创建错误,并继续执行.(3)full=y 是否完全导入. 1.导出导入表备份测试表:create tables emp_test as sele

nested exception is java.sql.SQLException: IO 错误

1.错误描述 (mx.messaging.messages::ErrorMessage)#0 body = (null) clientId = "18CE3B03-9709-9DA8-7634-340C23317FDD" correlationId = "3161DF25-D056-D694-E5CF-963E4FE036D9" destination = "waitController" extendedData = (null) faultC