Error codes 500 – 599


500 Clustered index index-name already exists in the table.

A table may be clustered on only one index at a time. This table is already clustered on the index whose name is shown. Before you can cluster on another index, you must execute ALTER INDEX index-name TO NOT CLUSTER. To see which tables are clustered on which indexes, query sysindexes and systables as follows:
SELECT tabname, idxname FROM systables T, sysindexes X WHERE T.tabid = X.tabid AND X.clustered =C

501 Index index-name is already not clustered.

The table is no longer clustered on this index (if it ever was). Make sure that this is the index you meant; if so, you do not need to alter this index. For a way to see which tables are clustered, see the discussion of error -500.

502 Cannot cluster index.

While the database server was building a new copy of the table with rows in clustered sequence, it got an unexpected error. Check the accompanying ISAM error code for more information. Typical causes include a shortage of disk space.

503 Too many tables locked.

This database server in this host operating system has a limit on the number of tables that can be locked at one time. It was unable to lock the table you requested. Roll back the current transaction. Then redesign the operation to lock fewer tables, to use row-level locking, or to open the database in exclusive mode.

504 Cannot lock a view.

This LOCK TABLE statement cannot be carried out because the table specified is really a view. Only real tables can be locked. Roll back the current transaction. Then redesign the operation to work against the real tables on which the view is based, or open the database in exclusive mode.

505 Number of columns in UPDATE does not match number of VALUES.

This UPDATE statement uses a SET clause in which a list of column names is set equal to a list of expressions or to a SELECT statement. The number of columns on the left of the equal sign is not the same as the number of data values produced on the right. Roll back the current transaction. Then rewrite this statement. If a list of expressions is used, check the punctuation to ensure that each expression is distinct. If a SELECT statement is used, review it to see how many columns it returns.

506 Do not have permission to update all columns.

Your account has been granted the privilege of updating specific columns, but this UPDATE statement updates all columns or columns for which you do not have the privilege. Contact the owner of the table or someone with Database Administrator privilege on this database, and ask to be granted full UPDATE privilege. For a way to list table owners, see the discussion of error -313.

507 Cursor cursor-name not found.

The cursor that is named in the WHERE CURRENT OF clause in this UPDATE or DELETE statement does not exist. Review the spelling of the name. If it is as you intended, check the DECLARE statement to ensure that it has been executed. Also make sure that the cursor has not been freed with the FREE statement.

508 Cannot rename a temporary table.

This RENAME TABLE statement cannot be executed because the specified table is temporary. You cannot rename a temporary table. Review the spelling of the table name. If it is as you intended, drop it, and create it again under a different name.

509 Cannot rename a column in a temporary table.

This RENAME COLUMN statement cannot be executed because the specified table is temporary. You cannot rename a column in a temporary table. Review the spelling of the table name. If it is as you intended, drop it, and create it again with different columns.

510 Cannot create synonym for temporary table table-name.

This CREATE SYNONYM statement cannot be executed because the specified table is temporary. Review the spelling of the table name. If it is as you intended, redesign the application. Either make the table permanent, or do not use a synonym.

511 Cannot modify system catalog table-name.

You are not allowed to update, insert, or delete rows in this table. If you are absolutely sure that you must do so, sign on as user informix. That user account can modify most system-catalog tables. However, this very risky practice is not recommended unless you are specifically instructed by Informix Technical Support.

512 No References privilege on the referenced columns.

You do not have References privilege on the referenced columns. The owner of the referenced table or a user who has References privilege with the grant option on that table can grant you this privilege using the GRANT statement.

513 Statement not available with this database server.

You cannot do an xa_open() execution if another database is already open. Make sure that you have closed any open databases before executing xa_open().

514 Only DBA can create, drop, or grant for another user.

This data definition statement specifies a table, view, index, or synonym that is owned by another user or grants a privilege as another user. Any of these things requires Database Administrator privilege, which you do not have on this database. If you intended to work on objects that you own, review the punctuation of the statement. At some point in it, you have qualified a name with the user ID of another account. Otherwise, get a DBA to grant you DBA privilege or to perform this operation for you.

515 Constraint constraint-name has already been dropped.

You are trying to drop a constraint that has already been dropped in the same ALTER TABLE statement.

516 System error – temporary output file not created yet.

This internal error indicates a problem in the communication between the database server and the library functions that call it. Check that your program is at the same software level as the database server in use. If the error recurs, please note all circumstances and contact Informix Technical Support.

517 The total size of the index is too large or too many parts in index.

All database servers have limits on the number of columns that can be included in an index and on the total number of bytes in a key (the sum of the widths of the columns). This CREATE INDEX statement would exceed that limit for this database server. Informix Dynamic Server and INFORMIX-Universal Server allow 16 key parts (columnar or functional) and a width of 390 bytes. INFORMIX-SE supports 8 columns and a width of 126 bytes. Other Informix database servers allow 16 columns and 255 characters.

518 Child constraint constraint-name not found.

If this internal error recurs, please note all circumstances and contact Informix Technical Support.

519 Cannot update column to illegal value.

One of the values in this UPDATE statement is based on an expression that is in error. Check each expression in the SET clause for validity. Look in particular at uses of built-in functions such as LENGTH and DATE.

520 Cannot open database tblspace.

The database server cannot locate the disk partition in which it has stored a table that is referenced in this command. Contact the database server administrator to find out what the problem is. Possibly the chunk that contains this tblspace has been taken off-line.

521 Cannot lock system catalog table-name.

You cannot lock any of the tables that comprise the system catalog. All users need them at all times. The database server handles concurrent access to them correctly, so simply remove this statement from your program.

522 Table table-name not selected in query.

You used a correlation name to qualify a column name in either a GROUP BY clause or a SET clause. Consider rewriting the statement in an SPL routine that you then use as the triggered action, passing the column value as an argument. In any case, you must rewrite the statement without a using a correlation name in the GROUP BY clause or the SET clause.

523 Can only recover, repair or drop table.

This statement (RECOVER, REPAIR, or DROP) specifies a view. However, these statements are only supported for real tables, not views. In the case of DROP, if you drop any of the tables used in the view, the view will be removed as well. To recover or repair this table, you must recover or repair the tables on which the view is defined. For a way to list the names of tables that are views, see the discussion of error .

524 Lock table can only be used within a transaction.

Because this database has a transaction log, a table can only be locked within a transaction. Review the program, and ensure that a BEGIN WORK statement is issued to start a transaction before this statement.

525 Failure to satisfy referential constraint constraint-name.

During an ALTER TABLE or SET statement, you have added or re-enabled a referential constraint that the data in the table violates. Check that the data in the referencing column (child key) exists in the referenced column (parent key).

526 Updates are not allowed on a scroll cursor.

For a DECLARE statement, the clause FOR UPDATE is not allowed in conjunction with the SCROLL keyword. For an UPDATE statement in an ANSI-compliant database (in which the FOR UPDATE clause is not required when declaring a cursor for update), the cursor named in this statement was declared with the SCROLL keyword and may not be used for updates. The way a scroll cursor is implemented makes it unsafe for updating a table, since it will sometimes not reflect the current state of the selected rows. If you want to use a scroll cursor to examine rows and then update them, you may redesign your application in the following way (among many). Use the scroll cursor to select also the ROWID of each row. Declare a second, nonscrolling cursor that selects one row for update based on its ROWID. When it is time to update a selected row:

  • Open the update cursor using the ROWID value found by the scrolling cursor.
  • Fetch the row, and check the error code (the row might have been deleted).
  • If the fetch succeeded, verify that the row contents are unchanged from those selected by the scrolling cursor (the row is now locked, so it cannot change further, but it might have changed between the two fetches).
  • If the row is unchanged, update it using the nonscrolling cursor.
  • Close the nonscrolling cursor.
  • This procedure ensures that the update reflects the current state of the table but also retains the convenience of the scrolling cursor. A fetch by ROWID of a recently fetched row will usually entail no disk activity and so will not cost much time.

527 Lock Mode is not available on this system.

You tried to use the SET LOCK MODE TO WAIT statement on INFORMIX-SE, but your INFORMIX-SE database server uses CREATE LOCKING rather than System V locking. If the error recurs, please note all circumstances and contact Informix Technical Support.
The database server cannot execute the SET LOCK MODE TO WAIT statement because the host operating system does not have adequate support for locking to permit waiting for a lock to be released. On this system, your program will be notified when a table or row is locked (with an error such as -233 or -378); your program determines what to do next, such as rolling back the transaction and trying it again.

528 Maximum output rowsize max-size exceeded.

The total number of bytes that this statement selects exceeds the maximum that can be passed between the database server and the program. Make sure that the columns selected are the ones that you intended. Check that you have not named some very wide character column by mistake, neglected to specify a substring, or specified too long a substring. If the selection is what you require, rewrite this SELECT statement into two or more statements, each of which selects only some of the fields. If it is a join of several tables, you might best select all desired data INTO TEMP; then select individual columns of the temporary table. If this is a fetch via a cursor in a program, you might revise the program as follows. First, change the cursor to select only the ROWID of the desired row. Second, augment the FETCH statement with a series of SELECT statements, each of which selects one or a few columns WHERE ROWID = the saved row ID.

529 Cannot attach to shared memory.

This error message appears prior to Version 6.0. Your application program is unable to initialize its connection to the database server because you are using a shared-memory implementation. Either the database shared memory has not been initialized, or the maximum number of users has already started using the system. Check the accompanying ISAM error code for more information.
Cannot attach to transaction.
This error message appears beginning with Version 6.0. Your application program is unable to initialize its connection to the database server because you are using a shared-memory implementation. Either the database shared memory has not been initialized, or the maximum number of users has already started using the system. Check the accompanying ISAM error code for more information.

530 Check constraint constraint-name failed.

The check constraint placed on the table column(s) was violated. To see the check constraint associated with the column(s), query the syschecks system catalog table. However, you must know the constrid for the check constraint before you query syschecks. (The constrid is assigned in the sysconstraints system catalog table.) Use the following subquery to show the check constraint for constraint-name:
SELECT * FROM syschecks WHERE constrid = (SELECT constrid FROM sysconstraints WHERE constrname = constraint-name)

531 Duplicate column column-name exists in view.

This CREATE VIEW statement gives a list of column names, and at least one of them appears twice in the list. Review the list of column names, and make sure that each appears only once.

532 Cannot alter temporary table table-name.

The table shown is only a temporary table. It will vanish when this session ends. Such tables cannot be altered. To alter the shape of the table, simply drop it, and re-create it.

533 Extent size too small, minimum size is number k.

The size that is specified for a disk extent (either the EXTENT SIZE or the NEXT SIZE clause) must be at least four times the disk page size, as shown. Generally, set EXTENT SIZE large enough to hold all of the rows as you initially estimate them, and set NEXT SIZE at an eighth or a quarter of that.

534 Could not insert new row into table, table is locked.

Database servers at Version 4.0 and later do not return this error. In earlier versions, its meaning is the same as error -271 with ISAM error code -113. Roll back the current transaction, and run it again when the table has been unlocked.
Cannot open EXPLAIN output file.
The statement SET EXPLAIN ON has been executed, and the database server is trying to open the file sqexplain.out in the current working directory. An operating-system error of some kind prevents it. See the ISAM error code for more information. Look for operating-system error messages that might give more detail. Likely problems include a lack of write permissions in the current directory and a full disk. This error message appears beginning with Version 4.1.

535 Already in transaction.

This BEGIN WORK statement is redundant; a transaction is already in progress. If this is a program, review its logic to make sure it has not accidentally failed to end the previous transaction.

536 Number of columns in child constraint does not match number of cols in parent constraint.

The number of referencing columns (child key) does not match the number of referenced columns (parent key) in the referential constraint. Check that a one-to-one relationship exists between referenced and referencing columns.

537 Constraint column column-name not found in table.

The column that is specified in a constraint definition does not exist.

538 Cursor cursor-name has already been declared.

The cursor that is named in this DECLARE statement has also been named in a DECLARE statement that was executed earlier. Possibly the same DECLARE is being executed in a loop, or possibly the program meant to execute a FREE statement for this cursor but did not. Review the program logic to ensure that it executes only a single DECLARE for each cursor (except after freeing one).

539 DBTEMP too long.

The pathname in the DBTEMP environment variable exceeds the limit on pathnames, which is 80 characters. You will have to locate the temporary directory higher in the directory hierarchy. Since Version 5.01, the INFORMIX-SE database server uses the DBTEMP environment variable, but Informix Dynamic Server and INFORMIX-OnLine Dynamic Server do not.

540 Write failed on constraints.

An error occurred while defining a constraint. Possibly you have defined a constraint whose name duplicates the name of another constraint, table, or index. If this is the case, repeat the statement, specifying a unique name. Otherwise, check the accompanying ISAM error code for more information.

541 User does not have ALTER privilege.

You must have the correct privilege before you can alter the name of a table or the names, types, or number of columns in it. You must also have the correct privileges to set the object modes for constraints and triggers.
You must be the owner of the database object, have Database Administrator privilege in the database, or be granted ALTER privilege for the database object by its owner or a DBA. See the discussion of error -313 for a way to list the owners of tables and users with DBA privilege.

542 Cannot specify a column more than once in a constraint, trigger, or index.

You name the same column more than once in the triggering column list of an update trigger. Remove the duplicate occurrence of the column name, and try again. This error also will appear if duplicate column names exist in the index list.

543 ESCAPE character must be only one character.

In the WHERE clause, a subclause ESCAPE char contains more than one character as char. Review the punctuation of the clause, and revise it so that it specifies just one character.

544 Cannot have aggregates within aggregates.

The statement contains a call on an aggregate function within the parameter list for another aggregate function, such as SUM(MAX(column)). This action is not supported because all aggregates are calculated over the same groups of rows. If you did not intend an expression of this sort, look for missing or misplaced parentheses. If you did intend it, rethink the query. For example, you might select the MAX values into a temporary table and then take their SUM.

545 No write permission for table table-name.

Check the accompanying ISAM error code for more information. With this database server, a database is a directory with the name dbname.dbs, while tables and indexes are files within that directory. You need to have read and write access to all these files in order to exercise normal database functions.

546 Cannot have host variables when creating a view view-name.

This statement either prepares or executes a CREATE VIEW statement in which the SELECT statement refers to host variables. This action is not supported. The SELECT statement in a view can be executed from any program and cannot rely on the variables of one program. Review the CREATE VIEW statement, and make sure that it does not contain the names of any host variables, an INTO clause, or a ? placeholder.
Database servers after Version 5.01 do not use this error message.

547 Must rollforward database in the directory where the database is.

Before you execute the ROLLFORWARD statement, make the current directory the directory that contains the dbname.dbs directory for the database. Then execute the statement again.

548 No referential constraint or trigger allowed on a TEMP table.

You cannot create a constraint or a trigger on a temporary (TEMP) table. Consider creating the temporary table as a permanent table in the database. If this option is feasible, create the table, and then create the trigger on it.

549 Column column-name in UNIQUE constraint is not a column in the table.

The column appears in the list of columns for a UNIQUE clause, but it is not one of the columns defined in this table. Check the spelling of all column names in this statement. If they are as you intend, then check the definition of the table. See the discussion of error -328 for a way to list all column names in a table.
Database servers after Version 5.01 do not use this error message.

550 Total length of columns in constraint is too long.

The total size of all the columns listed in a UNIQUE, PRIMARY KEY, or FOREIGN KEY clause is limited. The limit depends on the database server in use, but all servers support a total of 120 bytes. The limit is the same as the restriction on the total size of all columns in a composite index. For additional information, see the CREATE TABLE statement in the Informix Guide to SQL: Syntax.

551 The constraint contains too many columns.

The total number of columns listed in a UNIQUE, PRIMARY KEY, or FOREIGN KEY clause is limited. The limit depends on the database server in use, but all database servers support eight columns. The limit is the same as the restriction on the number of columns in a composite index. For additional information, refer to the CREATE INDEX statement in the Informix Guide to SQL: Syntax.

552 Blob host variables are disallowed in multi-statement prepares.

This EXECUTE statement executes a prepared list of multiple statements. One or more of the host variables supplied for the ? placeholders in the list is a locator structure for a TEXT or BYTE value. This action is not allowed. Statements that refer to TEXT or BYTE variables may be prepared and executed, but they must be single statements, not part of a multistatement list.

553 Mkdbsdir not found in $INFORMIXDIR/bin. Consult your installation instructions.

An executable program, mkdbsdir, is used to create the initial contents of the database directory during a CREATE DATABASE statement. It is distributed with the database server and should be found in the bin subdirectory of the directory that the INFORMIXDIR environment variable names, but it was not. Check the setting of INFORMIXDIR, and then consult with the person who installed the software.

554 Syntax disallowed in this database server.

The database server that you are using does not support this statement or some clause in it. When a program starts, the database server in use is chosen based on the SQLEXEC environment variable (for database servers prior to Version 6.0). Several small differences in statement syntax exist between INFORMIX-SE and other Informix database servers. For example, INFORMIX -SE supports the IN pathname clause of the CREATE TABLE statement while other Informix database servers support the IN dbspace clause instead.

555 Cannot use a select or any of the database statements in a multi-query prepare.

The statement text that is presented with this PREPARE statement has multiple statements divided by semicolons, and one is a SELECT, DATABASE, CREATE DATABASE, or CLOSE DATABASE statement. These statements must always be prepared as one-statement texts. Check the statement text string, and make sure that you intended multiple statements. If you did, revise the program to execute these four statement types alone.

556 Cannot create, drop, or modify an object that is external.

This statement attempts to create, drop, or alter an object in an external database, one other than the current database. You can only read the contents of an external database.
If you make the external database your current database, you can modify the contents. Review all uses of names beginning with , which refers to an object in the external database .

557 Cannot locate table that is external to the current database after levels of synonym mapping.

One of the tables named in this query was in fact a synonym, and it pointed outside the current database. It named another synonym that pointed outside its database, and so on for synonyms with no real table being found. The database server has given up on the query in case an endless chain of synonyms exists.
To review the synonyms in the current database that refer to external databases, query systables and syssyntable as follows:
SELECT T.tabname synonym, servername, dbname, user, S.tabname FROM systables T, syssyntable S WHERE T.tabtype = S AND T.tabid = S.tabid AND S.btabid IS NULL
To follow a chain of synonyms through external databases, use a similar query in the external database and substitute for servername, dbname, and tabname the values that the preceding query returns each time.
SELECT T.tabname synonym, servername, dbname, user, S.tabname FROM dbname@servername:systables T, dbname@servername:syssyntable S WHERE T.tabtype = S AND T.tabname = tabname AND T.tabid = S.tabid
When this query returns no row, the requested tabname is not defined as a synonym in that database (it is a table, a view, or not defined).

558 Changrp not found in $INFORMIXDIR/bin. Consult your installation instructions.

This command requires the presence of an executable program named changrp, which is normally installed as part of the database server. It should be in the bin subdirectory of the directory that INFORMIXDIR environment variable names. Check the value in that variable, and then consult with the person who installed the software.

559 Cannot create a synonym on top of another synonym.

This CREATE SYNONYM statement names another synonym. Making a chain of synonyms is not supported. See the discussion of error -218 for a way to list the names of all synonyms. To have a second synonym with the same meaning as the first, find out the meaning of the other synonym. Then make a new synonym to refer to the same base table. To see the base table for a given synonym, query systables and syssyntable as follows, substituting the name of the synonym:
SELECT T.tabname synonym, S.* FROM systables T, syssyntable S WHERE T.tabname = name AND T.tabid = S.tabid
If btabid is defined in the resulting display, the synonym refers to a table in that current database with that tabid; otherwise, it refers to an external database.

560 Synonym with tabid number not found in systables.

Either the systables or syssyntable system catalog, or an index on one of these, has been corrupted. Run the bcheck or secheck utility. Be prepared to drop and re-create all synonyms.

561 Sums and averages cannot be computed on datetime values.

This statement applies an aggregate function such as SUM to a column that has the type DATETIME. The function is not defined on this data type since arithmetic is not. Review the use of aggregate functions. You will have to revise the query.

562 Database conversion failed.

You are running a new version of the database server, and you just opened a database for the first time with this level of the software. The database server tried to upgrade the database automatically, probably by defining an additional system-catalog table. An unexpected error occurred. Check the accompanying ISAM error code for more information. If the error recurs, please note all circumstances and contact Informix Technical Support.
Database servers after Version 5.01 do not use this error message.

563 Cannot acquire exclusive lock for database conversion.

You are running a new version of the database server, and you have just opened a database for the first time with this level of the software. The database server has tried to upgrade the database automatically, probably by defining an additional system catalog table. However, it needs to lock the database for exclusive use to do this conversion, and some other user has the database open. Wait a short time, and try this statement again. At that time, the database might be free (or another user’s action might have updated it).

564 Cannot sort rows.

This internal error reflects an unexpected condition during a sort. Check the accompanying ISAM error code for more information. If the error recurs, please note all circumstances and contact Informix Technical Support.

565 Cannot read sorted rows.

This internal error reflects an unexpected condition during a sort. Check the accompanying ISAM error code for more information. If the error recurs, please note all circumstances and contact Informix Technical Support.

566 Cannot initiate sort.

This internal error reflects an unexpected condition during a sort. Check the accompanying ISAM error code for more information. If the error recurs, please note all circumstances and contact Informix Technical Support.

567 Cannot write sorted rows.

This internal error reflects an unexpected condition during a sort. Check the accompanying ISAM error code for more information. If the error recurs, please note all circumstances and contact Informix Technical Support.

568 Cannot reference an external database without logging.

This statement refers to a database other than the current database. However, the current database uses transaction logging, and the external one does not. This action is not supported; the databases that are used in a single transaction must all use logging or all not use it.

569 Cannot reference an external database with logging.

This statement refers to a database other than the current database. However, the current database does not use transaction logging, and the external one does. This action is not supported; the databases that are used in a single transaction must all use logging or all not use it.

570 Cannot reference an external ANSI database.

This statement refers to a database other than the current database. However, the current database is not ANSI compliant, and the external one is. This action is not supported; the databases that are used in a single transaction must all be ANSI compliant, or all must not be.

571 Cannot reference an external non-ANSI database.

This statement refers to a database other than the current database. However, the current database is ANSI compliant, and the external one is not. This action is not supported; the databases used in a single transaction must all be ANSI compliant, or all must not be.

572 The specified wait duration is too long.

The maximum time that you can specify as the WAIT time in SET LOCK MODE is 32,767 seconds. Review this statement, and make sure it specifies the duration in seconds that you intended. If so, either use a shorter duration, or (since 32,767 seconds is more than 9 hours) simply omit the duration to specify an indefinite wait.

573 Cannot set log to buffered in a mode ANSI database.

This statement tries to apply BUFFERED LOG mode, but the database is ANSI compliant; that is, it was created with the clause MODE ANSI. One aspect of ANSI compliance is that all transactions are logged immediately during the execution of the COMMIT WORK statement. The use of a buffered log entails a deferred write of log records. It improves performance at some slight risk of failing to log a transaction. Such a risk is not allowed under the standard; an ANSI-compliant database must use unbuffered logging.

574 A subquery has returned not exactly one column.

This statement contains a subquery (a SELECT statement within parentheses) to represent a single value (on one side of a relational operator such as equals). Such a subquery must return exactly one row and one column; otherwise, it is unclear which value the subquery represents. This subquery has returned more than one value. This error can occur if you specify the ITEM keyword in a collection subquery with more than one element in the projection list.
Review all subqueries to make sure that they can return at most one column (by listing only one expression after SELECT) and at most one row (by testing a unique key in the WHERE clause). For a collection subquery, either drop the ITEM keyword or make sure that the projection list contains only one element.

575 LENGTH() requires string type values.

This statement contains a use of LENGTH that is applied to a column or an expression that is not a character type (not CHAR or VARCHAR). This action is not supported. Review the uses of LENGTH, and make sure they apply only to character values.

576 Cannot specify CONSTRAINT name for TEMP table.

You cannot specify a constraint (either UNIQUE, PRIMARY KEY, or CHECK) name for constraints placed on temporary tables. This action is not supported for a temporary table. However, you can specify that a column receives one of these constraints, and you can specify a list of columns as having a constraint, but you may not use the CONSTRAINT constraint-name clause. Temporary tables and their indexes are not recorded in the usual system catalog tables.

577 A constraint of the same type already exists on the column set.

You have placed a constraint (either UNIQUE, PRIMARY KEY, FOREIGN KEY, or CHECK) on a set of columns, but a constraint of the same type on those columns already exists. In the case of a FOREIGN KEY, this error only occurs if the same foreign-key set of columns references the same existing parent key set of columns. Either the constraint was established when the table was created, or it was added later. Because the constraint already exists, it is not added again.

578 Owner name is too long.

This statement contains an owner name that qualifies the name of a table, view, index or synonym, and the owner name is longer than the maximum of 8 characters (for example, overly_long.tablename). Review the punctuation and spelling of all identifiers. Possibly an omitted space or comma causes two names to run together. To check the names of all known owners, select the owner column of the relevant system catalog: systables, sysindexes, or syssynonyms.

579 Not owner of synonym.

You do not own the synonym that is specified in this DROP SYNONYM statement. To drop an object you do not own, you must have Database Administrator privilege.

580 Cannot revoke permission.

This REVOKE statement cannot be carried out. Either it revokes a database-level privilege, but you are not a Database Administrator in this database, or it revokes a table-level privilege that your account name did not grant. Review the privilege and the user names in the statement to ensure that they are correct. To summarize the table-level privileges you have granted, query systabauth as follows:
SELECT A.grantee, T.tabname FROM systabauth A, systables T WHERE A.grantor = USER AND A.tabid = T.tabid

581 Error loading message file.

This SET EXPLAIN statement could not be completed because the database server was unable to find the file of message templates it uses when it prepares explanatory output. Consult with the person who installed the Informix software.

582 Database does not have logging.

This ROLLFORWARD statement could not be executed because this database does not have a transaction log. The rollforward operation uses the transaction log as its input. Since no transactions have been logged, the database cannot be rolled forward.

583 View permissions no longer valid — permissions on remote objects revoked.

This statement queries a view that is based on tables in external databases (databases other than the current database). However, in one or more of those external databases, your account does not have the necessary table-level privilege on a table that the view uses, or possibly your CONNECT privilege for an external database has been revoked. For a way to display the definition of a view, see the discussion of error -385. In the view definition, look for table names that are qualified with database names and possibly site names.

584 Cannot rename system catalog.

This RENAME TABLE statement cannot be carried out because it would rename one of the tables that make up the system catalog. The names of these tables cannot be changed; the database server uses them.

585 Cannot rename column in system catalog.

This RENAME COLUMN statement cannot be carried out because it would rename a column of one of the tables that make up the system catalog. The database server relies on these column names for internal queries, and you cannot change them.

586 Cursor is already open.

This database is operating in ANSI compliance (it was created or started MODE ANSI). By the rules of ANSI SQL, a cursor must always be closed before it can be reopened. Review the logic of the program. Possibly it was originally written to take advantage of one of the Informix extensions to SQL: if a cursor is reopened, it is automatically closed and opened. In the current database, that action is not allowed.

587 Cannot delete file filename.

Version 4.0 and later do not use this message. For previous versions, check the accompanying ISAM error code for more information.

588 Invalid host variable number.

Database servers starting with Version 4.1 detect this internal error. If the error recurs, please note all circumstances and contact Informix Technical Support.

589 Cannot update multiple sites within a single transaction.

This database server supports only single-site update. The operations within one transaction can modify data at only one site in the network. Some preceding statement within this transaction has already modified data at one site; the current statement would modify data at a second site. The statement is not executed. Roll back the current transaction. Examine the application in the light of this restriction. Check the names of all tables that UPDATE, INSERT, and DELETE statements affect to make sure they are all in the same database or in databases that the same database server holds. (Check the definition of any synonyms. Synonyms can make tables in external databases appear to be in the current database.)
Database servers after Version 5.01 do not use this error message.

590 Routine cache corrupted.

If this internal error recurs, please note all circumstances and contact Informix Technical Support.
Procedure cache corrupted.
If this internal error recurs, please note all circumstances and contact Informix Technical Support.

591 Invalid default value for column/variable.

The specified default value is the wrong type or is too long for a column or an SPL-routine variable.
To specify a valid default value for a column, use the DEFAULT clause in a CREATE TABLE statement. To specify a valid default value for a variable in an SPL routine, use the DEFAULT clause in a DEFINE statement.

592 Cannot specify column to be not null when the default value is null.

This CREATE or ALTER TABLE statement specifies that a column may not contain nulls (the NOT NULL clause), but it also has a DEFAULT clause giving the default value for new rows as NULL. This contradiction is not allowed.

593 Cannot specify default value for SERIAL column.

This CREATE or ALTER TABLE statement specifies that a column has a SERIAL data type, but it also has a DEFAULT clause for the column. The database server generates values for a SERIAL column each time a row is created, so the DEFAULT clause is meaningless.

594 Cannot specify non-null default value for TEXT or BYTE column.

This CREATE or ALTER TABLE statement specifies that a column has a data type of BYTE or TEXT. It also has a DEFAULT clause for the column that specifies something other than NULL. You can only designate the default value NULL for columns of TEXT or BYTE data type.

595 Bad use of aggregate in this context.

An aggregate function was used outside an SQL statement inside an SPL routine expression, or it was used inside a check constraint.
An example of the error follows:
LET var = MAX(another_var) + 10;
error
An SPL routine expression, or the expression in a check constraint, can refer to only a single value, so the use of an aggregate function is meaningless.

596 Bad EXIT/CONTINUE statement. Not within a statement-name loop.

The SPL routine EXIT and CONTINUE statements must be placed within a FOREACH, WHILE, or FOR loop.

597 Premature End Of Buffer.

If this internal error recurs, please note all circumstances and contact Informix Technical Support.

598 Bad cursor name cursor-name.

Inside an SPL routine, a nonexistent cursor name was specified in an UPDATE/DELETE…WHERE CURRENT OF statement.
FOREACH cur1 FOR SELECT col INTO var FROM tab UPDATE tab SET col = proc(var) WHERE CURRENT OF bad_cur_name; — error END FOREACH

599 Cannot mix Informix Dynamic Server syntax with INFORMIX-SE syntax.

Syntax specific to Informix Dynamic Server and to the INFORMIX-SE database server was mixed in the same statement. Use the appropriate syntax for your database server.
Cannot mix Dynamic Server or INFORMIX-OnLine syntax with INFORMIX-SE syntax.
Syntax specific to Informix Dynamic Server or INFORMIX-OnLine Dynamic Server and to the INFORMIX-SE database server was mixed in the same statement. Use the appropriate syntax for your database server.

Related articles