..and these sections>
1, "Upgrading to version 12
For information about rebuilding an existing database into a version 12 database, see Upgrading SQL Anywhere.
When using dbunload with a version 10.0.0 or later database, the version of dbunload used must match the version of the database server used to access the database. If an older version of dbunload is used with a newer database server, or vice versa, an error is reported."

2,
Note
Version 9 and earlier databases that require recovery cannot be reloaded with version 10 or later of the

So try to unload it using v9 dbunload utility and load into v12.
Hope is helped.

IMHO, that's wrong. You definetely should unload a v9 database with v12 when you're about to migrate to v12. The v12 dbunload will start a particular database engine (the "database unload support engine dbunlspt.exe") that can handle the old database format.

However, I would use a current 12.0.0 (or 12.0.1) EBF - you are using the 12.0.0 GA version, and newer EBFs might contain fixes for unloads.

Another option would be to test with a reload file (instead of the -an option).

I agree with Volker. To upgrade databases from older versions to SA12 I use the wizard in Sybase Central 6.1, but DBUNLOAD would do it as well. Today I successfully rebuilt a datebase originally created with ASA7.

"...the version of dbunload used must match the version of the database server..."

That does relate to the version of the unload program and the database server - they both must match. I.e. you cannot use a 12.0.1.3152 unload with a 12.0.1.3324 database engine. However, it does not refer to the version of the database itself.

"Note Version 9 and earlier databases that require recovery cannot be reloaded with version 10 or later."

I don't find an according quote from the EBF readmes, but I think I remember that this restriction has been resolved. - To omit this problem, you have to close down the v9 database normally and use copies of these files (instead of copies of backups) to do the upgrade. A normally shutdown database does not require recovery.

If a failure occurs during an internal
rebuild of a database using -ar or
-an, after the table data has been reloaded and any indexes on the table
have been rebuilt, dbunload creates a
file named unprocessed.sql in the
current directory. This file contains
all the statements that were not
executed as a result of the failure,
and also includes the statement that
caused the failure as a comment.

Another option would be to test with an external reload (i.e. with reload.sql script file) instead of the -an option. This gives more control over the unload/reload process.