ORA-00054在加载大数据文件时

时间:2010-09-29 06:46:53

标签: oracle oracle10g sql-loader ora-00054

我在加载大数据文件时得到ORA-00054(~10 gb) 在前一个文件之后加载新文件时会发生错误。 我有什么想法可以解决这个问题吗?

4 个答案:

答案 0 :(得分:1)

一种可能的情况。

这是直接路径加载吗?如果是这样,请检查v $ locked_object视图,看看在加载过程中是否被某人锁定。

select dbao.object_name
  from v$locked_object vlo,
       dba_objects dbao
  where vlo.object_id = dbao.object_id
    and dbao.object_name = 'Table that you are trying to load...'

来自http://download.oracle.com/docs/cd/B10500_01/server.920/a96524/c21dlins.htm

的Oracle文档
  

使用锁定注意事项   直接路径插入

     

在直接路径INSERT期间,Oracle   获取表上的独占锁   (或在分区的所有分区上   表)。结果,用户不能   执行任何并发插入,更新,   或删除表上的操作,和   并发索引创建和构建   不允许进行操作。   然而,并发查询是   支持,但查询将返回   只有插入之前的信息   操作

答案 1 :(得分:0)

这可能与表空间数据文件大小,表大小有关,因为ORA-00054通常在运行ALTER语句时出现。

我不假装就在这里。

答案 2 :(得分:0)

检查这些观点。

  • DBA_BLOCKERS - 显示等待锁等待的非等待会话

  • DBA_DDL_LOCKS - 显示所有持有或被请求的DDL锁

  • DBA_DML_LOCKS - 显示所有持有或被请求的DML锁

  • DBA_LOCK_INTERNAL - 为持有或被请求的每个锁或闩锁显示1行,其中包含谁持有锁的用户名

  • DBA_LOCKS - 显示所有持有或被请求的锁或锁存

  • DBA_WAITERS - 显示所有等待但未等待锁定的会话

http://www.dba-oracle.com/t_ora_00054_locks.htm

答案 3 :(得分:0)

您的桌子似乎已被锁定:ORA-00054 这可能是因为Oracle驱动程序处理BLOB类型的方式(驱动程序锁定记录,打开流以写入二进制数据,并需要“一些帮助”来释放记录)。 我会尝试下一个安全措施:

  1. 加载第一个文件
  2. COMMIT;
  3. 加载第二个文件