insert - Copying rows from remote database oracle -
i using oracle xe 10.2. trying copy 2,653,347 rows remote database statement
insert autoscopia (field1,field2...field47) select * autos@remote;
i trying copy 47 columns 2 million rows locally. after running few minutes, however, error:
ora- 12952 : request exceeds maximum allowed database size of 4 gb data.
how can avoid error?
details: have 3 indexes in local table (where want insert remote information).
you're using express edition of oracle 10.2 includes number of limitations. 1 you're running limited 4 gb of space tables , indexes.
- how big table in gb? if table has 2.6 million rows, if each row more ~1575 bytes, want isn't possible. you'd have either limit amount of data you're copying on (not getting every row, not getting every column, or not getting data in columns options) or need install version , edition allows store data. express edition of 11.2 allows store 11 gb of data , free express edition of 10.2 easiest option. can see how space table consumes in remote database querying
all_segments
column in remote database-- should approximate amount of space you'd need in database
note ignores space used out-of-line lob segments indexes
select sum(bytes)/1024/1024/1024 size_in_gb all_segments@remote owner = <<owner of table in remote database>> , segment_name = 'autos'
- if table less 4 gb size of table + indexes greater 4 gb, copy data locally need drop 1 or more of indexes you've created on local table before copying data over. that, of course, may lead performance issues @ least able data local system.
- if (or else) has created tables in database, tables count against 4 gb database limit well. dropping them free space use table.
- assuming not modifying data in table once copy locally, may want use
pctfree
of 0 when defining table. minimize amount of space reserved in each block subsequent updates.
Comments
Post a Comment