【问题标题】:unable to extend temp segment by 128 in tablespace TEMP for clob无法在表空间 TEMP 中为 clob 将临时段扩展 128
【发布时间】:2018-11-30 17:06:27
【问题描述】:

我正在开发一个项目,在该项目中我正在开发数据库,​​在 java 程序中我需要从数据文件中读取 clob 数据,然后创建 clob 对象并在对象中设置 clob 数据并插入行。我正在做 10000 行的批量插入。但是在阅读了一些(32)行之后,我收到了以下错误:-

java.io.IOException: ORA-01652: unable to extend temp segment by 128 in tablespace TEMP

at oracle.jdbc.driver.OracleClobOutputStream.flushBuffer(OracleClobOutputStream.java:293)
at oracle.jdbc.driver.OracleClobOutputStream.write(OracleClobOutputStream.java:191)
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1793)
at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1769)
at org.apache.commons.io.IOUtils.copy(IOUtils.java:1744)

我在网上搜索了这个错误,并在现场找到了一些解决方案。然后我执行了以下查询:-

select value from v$parameter where name = 'db_block_size';  

select bytes/1024/1024 as mb_size,        
       maxbytes/1024/1024 as maxsize_set,        x.* 
from   dba_data_files x;  


alter tablespace system add datafile 'C:\APP\ADMIN\ORADATA\VIDUSHIEXTRACT\DATAFILE\O2_MF_USERS_FLHMH039_.DBF' size 5024m autoextend on maxsize unlimited;

仅供参考:在我的数据库中,上述类型的数据文件是多个。

但毕竟这在 32 行之后我也得到了同样的错误(我的表中总共有 1028 行,其中每个 clob 列数据有大约 4MB 数据)。那么请谁能告诉我现在应该怎么做才能解决这个问题?

【问题讨论】:

  • 请向我们展示您要插入 CLOB 的表的创建语句。
  • 我猜这更像是关闭临时 CLOB 的问题而不是表空间问题,所以请向我们展示创建 Clob 对象、设置 Clob 数据和插入行的语句...
  • 同意@wolφi,请分享TEMP表空间的大小和clob对象的详细信息。 TEMP 空间就像 Java 中的堆空间,如果它被填满,那么大部分时间都需要修改代码。

标签: oracle clob temp tablespace data-files


【解决方案1】:

您通过添加数据文件扩展了 SYSTEM 表空间,但您需要扩展 TEMP 表空间(如错误提示)

【讨论】:

    猜你喜欢
    • 2017-07-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多