通过更改表空间加载大型csv文件

时间:2015-02-19 18:18:36

标签: sql oracle sql-loader

我在笔记本电脑上加载Oracle中的大型csv文件(> 1.5G)。并且出现了一些错误" ORA-01653:表SYSTEM.CTS无法通过1024(在表空间SYSTEM中)扩展。"

我知道我可以使用以下代码修复它:

alter tablespace SYSTEM add datafile 'XXX' size 2000m;

我的问题是:

(1)我的代码中XXX应该是什么?我正在使用sqlldr加载文件,这是我的ctl文件:

LOAD DATA INFILE 'C:\...cts.csv'
APPEND
INTO TABLE cts
FIELDS TERMINATED BY "," OPTIONALLY ENCLOSED BY '"'
TRAILING NULLCOLS
(
   Tdate,
   Symbol,
   Topen,
   Thigh,
   Tlow,
   Tclose,
   Tvolume
)

(2)尺寸2000米够吗?

1 个答案:

答案 0 :(得分:1)

您可以通过添加另一个数据文件来增加SYSTEM表空间。取而代之的是你的' XXX'应该是新数据文件的位置,例如:

alter tablespace SYSTEM add datafile 'C:\oracle\OracleHome\oradata\orcl\extra_system.dbf' size 2000m;

我认为2000m对于1,5G文件来说已经足够了,但考虑到它是SYSTEM表空间,你可能想要多加一点。

将您自己的数据放在单独的表空间btw中,而不是在SYSTEM中,这可能是明智之举。这样,您就可以为SYSTEM和您的个人应用程序分别创建数据文件,这意味着您可以更轻松地将自己的内容移动到更大的硬盘或备份它们。这也更安全和可管理,因为您不必使用可以更改SYSTEM表空间的用户。

编辑:数据文件是Oracle用于存储其数据的文件。数据库中的所有数据都将存储在Oracle安装目录(通常)中的这些类型的文件中。您可以使用以下查询查看当前SYSTEM数据文件的名称:

SELECT  FILE_NAME, BLOCKS, TABLESPACE_NAME
FROM DBA_DATA_FILES
WHERE TABLESPACE_NAME = 'SYSTEM';