我正在一个项目中,我正在数据库中,在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数据)。因此,请任何人告诉我我现在应该怎么做才能解决此问题?
答案 0 :(得分:2)
您通过添加数据文件来扩展SYSTEM表空间,但需要扩展TEMP表空间(如错误所建议)