Question:
Folks,
I am trying to export data from a table, then import
that data back
into the table (thus doubling the amount of records in the table).
I've
used the export function (with the INDEXES=N paramater to keep the
primary keys from being duplicated). When I tried to import the data,
I
got a block size error (said it was too small), then an abend.
I thought that I could just edit the db_block_size = 2048
param my database's pfile to something larger (I tried 4096),
restart
the database, and try the import again. HOwever, once I change the
block size, the database will not start.
Any ideas? Am I going about this all wrong?
--Desmond
Answer1:
You are probably confusing two things. Sometimes it happens a record
doesn't
fit in the import buffer. Just include and/or increase the buffer parameter
for imp and you should be fine.
You can't change the db_block_size without creating the database. Note:
If
you have multiple tables with records exceeding 2k, you will get chaining
(one record in multiple blocks). In that case changing the db_block_size
will be advantageous.
If this doesn't resolve the problem, please post the EXACT error message.
Hth,
Sybrand Bakker, Oracle DBA
Answer 2:
Once you've set the block size, you cannot change it anymore.
If you have a primary key on the table, you cannot duplicate the rows,
whatever method you choose. You will need to drop that index.
The easiest way is to do a simple
insert into x
select * from x;
This will only work though if you have 'normal' datatypes. If
you have for
instance a column defined as a long, this will not work.
--
Terry Dykstra
Canadian Forest Oil Ltd.
Check out Sybase Developer's Network: http://www.sybase.com/sdn