Error 623

Severity

21

Message text

Versions prior to 15.0:

Attempt to retrieve row from page via RID  failed because logical page %ld is not a data page. %S_RID. %S_PAGE.

Version 15.0 and later:

Adaptive Server failed to retrieve a row via its RID in database '%.*s' because the target page is not a data page. %S_RID. %S_PAGE.

NoteThis error may be caused by a hardware problem.

Explanation

This error occurs when Adaptive Server tries to retrieve a row from a data page by specifying the row ID (RID) and the retrieval fails because the requested page was not a data page. This error is usually caused by a server problem.

After loading a database on top of an existing database, error 623 may appear during recovery or while doing a checkpoint.

This error may or may not be transient (transient errors disappear after Adaptive Server is restarted). In the worst case, error 623 may indicate corruption in your database. Perform the action below as soon as possible to determine how serious the error is and to avoid further corruption if corruption has occurred.

Action

Determine whether this error is transient by performing these steps:

  1. Refer to “Finding an object name from a page number” in the chapter “Other Useful Tasks” in the Troubleshooting and Disaster Recovery guide for instructions on how to use the dbcc page command to determine the table involved. Save this information and use it in the appropriate section below.

    WARNING! The procedure referenced in the step 1 uses the dbcc page command. Use the dbcc page command only as directed. This command is undocumented, nonstandard, and is provided “as is” without any warranty. Sybase Technical Support does not support this command for general use. Although the command syntax is provided for reference, use this command only in the specific diagnostic situations described, and with the specific syntax shown. Failure to do so could cause performance problems and database corruption.

  2. Use the object ID found in step 1 to issue this query to determine the table name:

    1> select object_name(<object_ID>)
    2> go
    
  3. Use the table name displayed in the output from step 2 and issue this query to determine whether corruption has occurred:

    1> dbcc checktable(<table_name>)
    2> go
    

If no errors occur when you run dbcc checktable, the 623 error was probably transient. Shut down and restart the server.


If the error is not transient

If errors do occur when you run dbcc checktable, refer to the write-ups for those errors in this manual for instructions on how to recover from them or restore your database from a clean backup. To restore from backup, follow the instructions in the section “Restoring a database from backups” in the chapter “Developing a Backup and Recovery Plan in the System Administration Guide: Volume 1.

If loading from backups is not feasible, call Sybase Technical Support. Have the information on hand listed in “Reporting errors”, including the output from select * from master..sysusages.

Versions in which this error is raised

All versions