Stefan wrote:
please see the following error:
com.ibm.db.DataException: A database manager error occurred. :
[IBM][CLI Driver][DB2/NT] SQL1477N Table "SID.TEST" cannot be
accessed. SQLSTATE=55019
You will need to drop the table. switching of logging has its price...
SQL1477N For table "<table-name>" an object "<object-id>" in
table space "<tbspace-id>" cannot be accessed.
Explanation:
An attempt was made to access a table where one of its objects is
not accessible. The table may not be accessible because of one
of the following reasons:
o The table had NOT LOGGED INITIALLY activated when the unit of
work was rolled back.
o The table is a partitioned declared temporary table and one
or more partitions failed since the temporary table was
declared (all declared temporary tables have the schema name
SESSION).
o ROLLFORWARD encountered the activation of NOT LOGGED
INITIALLY on this table or a NONRECOVERABLE load on this
table.
Access to this table is not allowed because its integrity cannot
be guaranteed.
User Response:
One of the following actions can be taken.
o If the object is a table and it had NOT LOGGED INITIALLY
activated, drop the table. If this table is required,
re-create it.
o If the object is a data partition, detach it from the table.
If this data partition is required, add a new one.
o If the object is a non-partitioned index, drop the index. If
this index is required, create a new one.
o If the table is a declared temporary table, drop the table.
If this table is required, declare it again.
o Otherwise, restore from a tablespace or database backup. The
backup image must have been taken subsequent to the commit
point following the completion of the non-recoverable
operation (NOT LOGGED INITIALLY operation, or NONRECOVERABLE
load).
The catalogs can be used to determine what the object is. To
determine if the object is a table, use the following query:
SELECT TABNAME
FROM SYSCAT.TABLES
WHERE TBSPACEID="<tbspace-id>" AND TABLEID="<object-id>"
If a table name does not appear as the result for the above
query you can determine if the object is a partition by using the
following query:
SELECT DATAPARTITIONNAME, TABNAME
FROM SYSCAT.DATAPARTITIONS
WHERE TBSPACEID="<tbspace-id>" AND
PARTITIONOBJECTID="<object-id>"
To determine if the object is an index, use the following
query:
SELECT INDNAME
FROM SYSCAT.INDEXES
WHERE TBSPACEID="<tbspace-id>" AND
INDEX_OBJECTID="<object-id>"
sqlcode : -1477
sqlstate : 55019
--
Serge Rielau
DB2 Solutions Development
IBM Toronto Lab
WAIUG Conference
http://www.iiug.org/waiug/present/Fo...Forum2006.html