IBM Informix Messages and Corrections.     Publication Date: November, 2015
Version 2015.11                            Message Range: 99999 - 99999
#  END OF VERSION INFORMATION


0	Success.

The operation succeeded. The database server returns this SQLCODE value
to an application when an SQL statement executes successfully.


100	No matching records found.

The database server did not find any more data. This message is an ANSI-
standard SQLCODE value. If you attempted to select or fetch data, you
encountered the end of the data, or no data matched the criteria in the
WHERE clause. Check for an empty table. Use this SQLCODE value to determine
when a statement reaches the end of the data. For more information, see the
discussion of SQLCODE in the IBM Informix ESQL/C Programmer's Manual. The
database server can return this SQLCODE value to a running program.

For the High-Performance Loader (HPL), this message can indicate that the
map might be from a project other than the default project. Use the -p option
in the onpload command line to provide a project name for mappings.


1203	Cannot find message file.

DataExtract cannot locate a needed message file. Check that you
specified the appropriate pathname when you set the INFORMIXDIR and
DBLANG environment variables. Contact your system administrator if you
need help setting these environment variables.


1204	Your system encountered an unknown type of terminal.

Check that you set the TERM environment variable correctly. Check the
database name for correct spelling. Contact your system administrator
if you need help setting the environment variable.


2005	Database database-name not found or not correct format.

Check the database name for correct spelling.


2008	The table table-name does not exist in the database.

The database that is specified in the DATABASE section does not contain
the table name that is included in the TABLE section of the form
specification file. Check the table name for correct spelling.


2009	You did not select any database tables.

You must include one or more table names in the TABLES section of the
form-specification file.


2020	The following tables are involved in an error: table-name.

Check the accompanying message for an indication of system action. The
specified error involves the indicated tables.


4074	Cannot find a C language compiler in any directory in your path.

For this 4GL compiler message, you need a C compiler to finish
compiling your program. Change your execution path so that a C compiler
can be executed under the name cc.


4102	See error number -number.

For this 4GL compiler message, look up the message for -number.


4150	Program error at module, line number line.

The indicated line contains incorrect code that generated this 4GL
runtime message. Sometimes the actual error or omission exists in the
preceding lines of code. Look for additional messages that explain the
error.


4152	FORMS statement error number -number.

For this 4GL runtime error, check the message for -number.


4153	SQL statement error number -number.

For this 4GL runtime error, check the message for -number.


4154	Program stopped at module, line number line.

This 4GL runtime message tells where a program stopped due to an
error. Look for additional messages that explain the error.


4155	4GL run-time error number -number.

For this 4GL runtime error, check the message for -number.


4156	ISAM error number -number.

For this 4GL runtime error, check the message for -number.


4157	SYSTEM error number -number.

For this 4GL runtime error, check the message for -number.


8009	See error number errno.

Check the accompanying message for an indication of system action. Use
the finderr utility to locate the indicated error message.


12750	db <database_name>, tabid <table_identifier>: Must alter raw
table to standard.

Raw (nonlogging) tables exist in the database server that you are trying
to revert to a previous version. Earlier versions of the database server
do not support raw tables.

To change the logging TYPE option of each table from RAW to STANDARD, use
the ALTER TABLE statement. After altering the tables to STANDARD, you
can revert the database server.


16755	oninit: VPCLASS VPCLASS_name duplicate class name.

The VPCLASS parameter in the onconfig file has a duplicate name. The
VPCLASS name must be unique. Correct the onconfig file and restart
oninit.


16872	Logical Recovery Complete - no log replay was necessary.

During restore, the database server determined that none of the dbspaces
involved had any logging activity since they were backed up.  
You do not need to look through log backups on tape because nothing
would be found.

You do not need to take any action.


16888	Logslice successfully altered by adding logs.

Logical logs were added to all new dbspaces in the altered dbslice.

Perform a level-0 backup or fake backup to enable the new 
logical logs.


16889	Dbslice successfully altered by adding dbspaces.

Dbspaces were added to all named coservers.

You do not need to take any action.


19568	oninit: Too many VPCLASS parameters specified.

Too many VPCLASS parameter lines exist in the onconfig file. Reduce
the number of VPCLASS lines and restart oninit.


19569	oninit: VPCLASS VPCLASS_name bad affinity specification.

The affinity specification for the VPCLASS line is incorrect. Affinity
is specified as a range where x is less than or equal to z, and both x
and z are greater than zero.

x: use processor x

x - z: use processors in the range x to z inclusive


19570	oninit: Cannot mix VPCLASS cpu and NUMCPUVPS, SINGLE_CPU_VP,
AFF_SPROC, AFF_NPROCS, or NOAGE parameters.

CPU VPs can be configured using either VPCLASS CPU or the old
parameters NUMCPUVPS and so on. However, CPU VPs cannot be configured
by mixing both formats.


19571	oninit: Cannot mix VPCLASS aio and NUMAIOVPS parameters.

AIO VPs can be configured with VPCLASS AIO or the old parameter
NUMAIOVPS. However, AIO VPs cannot be configured with both formats.


19572	oninit: VPCLASS VPCLASS_name number of VPs is out of the range 0
to 10000.

The initial number of VPs specified by a VPCLASS parameter line must be
in the range 0 to 10,000. Correct the onconfig file and restart
oninit.


19573	oninit: VPCLASS VPCLASS_name maximum number of VPs is out of the
range 1-10000.

The maximum number of VPs specified by a VPCLASS parameter line must be
in the range 0 to 10,000. Correct the onconfig file and restart
oninit.


19574	oninit: VPCLASS VPCLASS_name number of VPs is greater than the
maximum specified.

The initial number of VPs specified by a VPCLASS parameter is greater
than the maximum specified by the same VPCLASS parameter. Correct the
onconfig file and restart oninit.


19575	oninit: VPCLASS VPCLASS_name bad scheduler specification.

One of the options for a VPCLASS parameter is illegal. Check your
Administrator's Guide for legal values. Correct the onconfig file and
restart oninit.


19750	Invalid serial number. Consult your installation guide.

This RSAM error message indicates an incorrect serial number.


19812	Illegal use of replication shadow columns.

The specified operation cannot be performed on the replication shadow
columns while replication is enabled.


19813	Cannot add CRCOLS when the table already has replication shadow columns.

The specified table was created with the WITH CRCOLS clause and
therefore already has the replication shadow columns defined. You
cannot alter this table to add CRCOLS to it.


19814	Cannot drop CRCOLS when table does not have replication shadow columns.

The specified table was not created with the WITH CRCOLS clause, or it
has not been altered to include the CRCOLS. You cannot alter this table
and drop the CRCOLS because these columns do not exist on this table.


19815	Cannot create a temp table with CRCOLS.

You cannot create a temporary table to include the replication shadow
columns. If you did not intend to name a temporary table, check the
spelling of the table name.


19816	Cannot perform this operation on a table defined for replication.

The specified operation cannot be performed on a table if Enterprise
Replication is defined on the table. If you want to perform the specified
operation, you must delete all replicates defined on this table.

If the table is being captured using the Change Data Capture interface,
then you must use CDC API functions to stop data capture and disable 
full row logging on the table.

19989	Enterprise Replication is not in active state

The specified operation cannot be performed on a table defined for
replication if Enterprise replication is not in active state.
If you want to perform the specified operation, you must start Enterprise
Replication.

19991	Table is not in Enterprise Replication alter mode

The specified operation cannot be performed on a table defined for
replication if the table is not in Enterprise Replication alter mode.
If you want to perform the specified operation, you must put the table
in Enterprise Replication alter mode.

19992	Cannot perform insert/delete/update operations on a replicated table while the table is in alter mode

The specified operation cannot be performed on a table defined for
replication if the table is in Enterprise Replication alter mode.
If you want to perform the specified operation, you must unset the
Enterprise Replication alter mode.

19993	Cannot modify a replicated column

The specified operation cannot be performed on a table defined for
replication. If you want to perform the specified operation,
you must remove the column from the replicate definition, alter the column
then add the column again to the replicate definition through
Enterprise Replication remastering process.

19994	Cannot drop a replicated column while the column is part of replicate definition

The specified operation cannot be performed on a table defined for
replication. If you want to perform the specified operation,
you must remove the column from the replicate definition through
Enterprise Replication remastering process.

19995	Enterprise Replication error encountered while setting alter mode. See the message log file to get the Enterprise Replication error code.

Enterprise Replication error encountered while performing the
specified operation. See the message log file to get the
Enterprise replication error code. If you want to perform the
specified operation, correct the Enterprise Replication problem
and reattempt the operation.

19996	Enterprise Replication error encountered while unsetting alter mode. See message log file to get the Enterprise Replication error code

Enterprise Replication error encountered while performing the
specified operation. See the message log file to get the
Enterprise replication error code. Correct the problem and clear
the alter mode manually through cdr command line utility.


19820	Informix OUTER JOIN and ANSI JOIN in the same query block.

You cannot have Informix OUTER JOIN and ANSI JOIN in the same query
block. Informix OUTER JOIN and ANSI JOIN are two different mechanisms
and should not be combined in a single query. You can use only one of
these.


19821	Cannot rename a table using a synonym.

You cannot use a synonym to perform a rename operation. Specify
the <table-name> instead.

To rename the synonym, drop the existing synonym and create a new one.


19822	Cannot alter or truncate a table or drop a table or view using a synonym.

You cannot use a synonym to perform an alter or truncate or drop on a table or a view.
Specify the <table-name> or <view-name> instead.

To drop the table or view or alter or truncate the table using the synonym, 
unset the environment variable USETABLENAME.

To drop the synonym and not the table or view, specify 
DROP SYNONYM <synonym-name> instead.


19823	Cannot use EXECUTE PROCEDURE INTO with the INSTEAD OF trigger.

You cannot use EXECUTE PROCEDURE INTO with the INSTEAD OF trigger.


19824	Cannot use BEFORE or AFTER action with the INSTEAD OF trigger.

You cannot use the BEFORE or AFTER actions with the INSTEAD OF trigger.  You
must use the FOR EACH ROW action with the INSTEAD OF trigger.


19825	Cannot use WHEN clause if INSTEAD OF trigger is defined.

You cannot use the WHEN clause to restrict the triggered action in 
INSTEAD OF trigger definitions.  The action of the triggering statement 
is always replaced by the specified triggered action on the base table 
(or tables) of the view on which the INSTEAD OF trigger is defined.

19826	Cannot create INSTEAD OF trigger for a select event.

You can create an INSTEAD OF trigger for an insert, update, or delete
event, but not for a select event.


19827	Cannot create an INSTEAD OF trigger on a table.

You can only create an INSTEAD OF trigger on a view, not on a base
table or synonym.


21957	Invalid block size.

You have specified inadequate block size for the tape device in your
onload or onunload command. Make the block size larger than the size
(in kilobytes) that the accompanying error message indicates. The
onload and onunload utilities require a block-size parameter with a
minimum value of 4 for 2-kilobyte-page computers or 8 for
4-kilobyte-page computers.


25500	The sqlexecd daemon is not licensed for remote use.

You entered an incorrect serial number or serial-number key while you
were running the IBM Informix client/server product installation script.
Obtain the proper serial number and key and reinstall your IBM Informix
client/server product.


25501	You must log in as root to start the sqlexecd daemon.

Log in as root and start the sqlexecd daemon process.


25502	The sqlexecd daemon cannot execute the fork system call.

Contact your system administrator to solve system problems.


25503	Informix network features not supported on this product.

The sqlexecd daemon does not support your network connections. Check
that you specified the correct database or database server in the
DBPATH environment variable. Consult your system administrator about
IBM Informix NET licensing issues.


25504	The sqlexecd daemon cannot open a socket.

Check that you correctly installed the TCP/IP network. Check for
malfunctions in the TCP/IP network.


25505	The sqlexecd daemon cannot bind a name to the socket.

Enter your request again. If the problem persists, refer to your system
manual for more information.


25506	The sqlexecd daemon cannot accept a connection on the socket.

Check that you correctly installed the TCP/IP network. Check for
malfunctions in the TCP/IP network.


-25507	You specified an unknown service name or protocol.

Determine which of the following conditions produced this error and take the 
appropriate corrective actions:

The value of the NETTYPE configuration parameter in the ONCONFIG file is not 
the same as the NETTYPE setting in the sqlhosts file. If the NETTYPE values 
are different, correct the incorrect value. If you update the ONCONFIG file, 
you must restart the database server.

The correct service name is not in the /etc/services file. If you are using the TCP/IP protocol, check the /etc/services file. If you are using NFS, use the 
ypmake utility to check the /etc/services file. Sometimes the daemon does not 
recognize service names that are added after a default start-up. Add the 
correct service name if it is not present or restart your computer.

The protocol entry in the ONCONFIG file or sqlhosts file is not supported by 
the operating system on your computer. For information about supported 
protocols, see the connectivity information section in the Administrator's 
Guide or the Client SDK release notes in the INFORMIXDIR/release directory. 
Correct the protocol entry in the ONCONFIG file or the sqlhosts file. If you 
update the ONCONFIG file, you must restart the database server.


25510	execv could not start the database engine <server-name>, system
errno <error number>.

Enter your request again. If the problem persists, refer to your system
manual for more information.


25511	The sqlexecd daemon could not receive data from client.

Check that you correctly installed the TCP/IP network. Check for
malfunctions in the TCP/IP network.


25512	Cannot access the database server program.

Check that you can access the requested database server program.


25514	The sqlexecd daemon cannot open the log file.

Check that you can write to the requested log file.


25515	You passed too many arguments to the sqlexecd daemon.

Refer to your IBM Informix product manuals. Check the version information
that is associated with your IBM Informix client/server products to verify
compatibility between those products.


25518	You specified an unknown network type in DBNETTYPE.  Assuming STARLAN.

If your network supports STARLAN connections, set the DBNETTYPE
environment variable to starlan. If your network supports TCP/IP
connections, set the DBNETTYPE environment variable to tcp/ip. IBM Informix
Version 6.0 and later database servers do not use this message.


25519	The sqlexecd daemon cannot open the network device.

Enter your request again. If the problem persists, refer to your system
manual for more information.


25520	The sqlexecd daemon cannot allocate the call structure.

Enter your request again. If the problem persists, refer to your system
manual for more information.


25521	The sqlexecd daemon cannot allocate the return structure.

Enter your request again. If the problem persists, refer to your system
manual for more information.


25522	The sqlexecd daemon cannot allocate the call structure.

Enter your request again. If the problem persists, refer to your system
manual for more information.


25523	The sqlexecd daemon cannot bind the network structures.

The sqlexecd daemon process attempted to use the same service number
that is allocated to another running process. Check that the system
administrator does not need to use the running sqlexecd process, and
then stop the sqlexecd process, and start a new one. Or add a new entry 
to the /etc/services file, and start a daemon for the service using the
new service number. For more information, refer to your system manual.


25526	The sqlexecd daemon cannot listen on the network device.

Enter your request again. If the problem persists, run your network
diagnostics to determine the source of the problem.


25528	The sqlexecd daemon cannot accept a connection.

Check that you correctly installed your network hardware and software.
Check for malfunctions in the network.


25529	The sqlexecd daemon cannot get a host structure.

Check that you requested a valid host name. Verify that the /etc/hosts
file contains the requested host-name entry.


25530	The sqlexecd daemon cannot bind to the required port address.

Check that no other daemons are running on the port address.


25531	The sqlexecd daemon cannot bind to the required address.

Check that no other daemons are running on the port address.


25533	The sqlexecd daemon cannot close the network.

Enter your request again. If the problem persists, refer to your system
manual for more information.


25534	The sqlexecd daemon cannot allocate a structure.

Enter your request again. If the problem persists, refer to your system
manual for more information.


25535	Address translation failed in sqlexecd daemon.

Enter your request again. If the problem persists, refer to your system
manual for more information.


25537	The sqlexecd daemon cannot connect to network.

Check that you correctly installed your TCP/IP or StarGROUP network.
Check for malfunctions in the network.


25543	You specified an unknown service name or protocol.

Examine the /etc/services file to verify that the requested service
name exists. Also check that the /etc/services file specifies the
correct protocol and/or port number.


25544	The sqlexecd daemon cannot find a host structure.

Check that you requested a valid database server name. Examine the /etc/hosts
file to verify that you correctly defined the requested database server name,
client address, and host names.


25545	The sqlexecd daemon cannot advertise the specified service name.

You are starting the sqlexecd daemon on a system that is running
portable IBM Informix OnLine for NetWare with IPX/SPX as the network
protocol, but the daemon is unable to advertise the service name for
the database server on the NetWare network. It is possible that
another sqlexecd daemon is already using the same service name, a
recently stopped sqlexecd daemon with the same service name was unable
to de-advertise its service, or the database server is down.

The service name of each database server must be unique across the
entire NetWare network. The default service name is sqlexec. If
another sqlexecd daemon or database server on the network already uses
the name, use a different service name to start the sqlexecd daemon.
You can explicitly specify a service name as a parameter in the
sqlexecd command line.

If you are restarting a recently terminated sqlexecd daemon, the
previous sqlexecd probably has not finished de-advertising or was
unable to de-advertise the service name. When you terminate an sqlexecd
daemon, use the TERM signal (15) only (that is, kill -15 pid or kill
pid). If you do not terminate a service properly, depending on your
database server configuration, it might take about three minutes for a
terminated service to be de-advertised automatically.


29061	EDA warning (EDA_warning).

The SQL statement has executed successfully, but the EDA client or
server issued a warning. The EDA_warning field contains the warning
information.

The format of the EDA_warning field is the same as for the EDA_Error
field that is described for error message -29060.


32700	Cannot find license file.

The program cannot open the license file. It first tries to open the
file that the user specified in LM_LICENSE_FILE. If you have not set
this environment variable, the program tries to open the license file
in the default location $INFORMIXDIR/etc/ifmxld.dat. If you intend to
use LM_LICENSE_FILE, check that you have set your license-file pathname
correctly in that file.


32701	Invalid license file syntax.

This error occurs if the feature name, daemon name, or server name
exceeds the maximum length allowed, or if the feature line is
incomplete. If you have edited the license file after installation,
check that you did not make a mistake. The maximum length for the
server name is 32 characters. The feature name, daemon name, and
feature lines are generated automatically during installation.


32702	Cannot connect to a license daemon server.

If you edited the license file after installation, check that you did
not make a mistake. This error occurs if the daemon name specified in
the license-file feature line does not match the vendor-daemon name or
if the attempt to connect the vendor daemon on all server nodes was
unsuccessful. Check that the daemons on all license servers are still
running and that the network is working properly.


32703	Licensed number of users already reached. Check the daemon log.

Check the network-licensing activities by using lmstat or by checking
the license-daemon log file to decide whether you need to purchase more
user capacity from IBM.


32704	No such feature exists.

The feature could not be found in the license file. Be sure that the
license file contains the feature line for the product that you are
trying to use and that the product is properly licensed.


32705	No TCP/IP license service exists.

Check the license file in use to ensure that the TCP/IP port number on
the server line or lines is valid. If the TCP/IP port number is not
valid, modify the license file to use a valid one.


32706	No socket connection to license manager server.

This error indicates that an internal error occurred during sending or
receiving of the message. Note all observed behavior and any other
error message. Check with the system administrator to ensure that the
system is functioning properly.


32707	Encryption code in license file is inconsistent.

This error indicates that the code in a license-file line does not
match the other data in the license file. This error usually occurs
when all the software components are not built with the same encryption
code. Check create_license.c, ls_vendor.c, and your application code
carefully to make sure that they have the same vendor code. Do not
modify the encryption code in the license file after it has been
generated during installation.


32708	Invalid host.

This error occurs when the host ID specified in the license file does
not match the node on which the software is running.


32709	Feature has expired.

The present date exceeds the expiration date of the feature in the
license file. Decide if you want to change from an evaluation version
to a regular version of this IBM Informix product and contact IBM for
the procedure that you need.


32710	Invalid date format in license file.

Check that the date field in the license file is in the format
dd-mmm-yyyy where dd is two digits for the day, mmm is three letters
for the month, and yyyy is four digits for the year. The installation
procedure generates these dates. If you did not modify the license file
on those fields, report this problem, along with the output of the
license file, to IBM Technical Support.


32711	Invalid returned data from license daemon server.

Be sure that no other services use the port numbers on the server
lines. Check with your system administrator to ensure that the network
is functioning properly. Check the license-daemon-server log for all
error messages.


32712	No server lines in license file.

No server line exists in the license file. All nonzero license-count
features need at least one server line.


32713	Cannot find SERVER hostname in network database.

Check all relevant system files, such as /etc/hosts, to ensure that the
server host name is known across the network.


32714	Cannot read data from license daemon server.

Be sure that the daemons in all license servers are running. Check the
daemon log for any error message.


32715	Cannot write data to license daemon server.

Check with your system administrator to ensure that the network is
functioning properly. Also check the daemon log for other error
messages.


32716	License daemon server does not support this feature.

The feature has expired or has not yet started, or the version of the
product you are attempting to use is not the licensed version. Check
that the license files in both the license-daemon servers and the
computer that is running this IBM Informix licensed product are set up
properly.


32717	License daemon server busy (no majority).

The license-daemon server is busy establishing a quorum of server nodes
so that licensing can start. Retry this operation later.


32718	License file does not support this version.

Be sure that the version of the product that you are attempting to use
is licensed. Check the license file to ensure that the version of the
desired product on the feature line is the same as or later than the
version that you want to use.


32719	Feature checkin failure detected at license daemon server.

The check-in request did not receive a proper reply from the vendor
daemon. (The license might still be considered in use.) Check the
daemon log output to see if there are any more error messages. If the
error recurs, note all circumstances and contact 
IBM Technical Support.


32720	License daemon server temporarily busy (new server connecting).

The vendor daemon is busy establishing a quorum condition. New requests
from clients are deferred during this period. Retry this operation
later.


32721	License daemon server does not support this version of this feature.

The version that you are attempting to use is more recent than the
version for which you are licensed. Check the feature line in the
license file to ensure that the version of the desired product is the
same as or later than the version that you are trying to use.


32722	Request for more licenses than this feature supports.

A checkout request was made for more licenses than are supported in the
license file. Be sure that you did not make a change to the license
checkout request to check out more licenses than it is capable of
handling. Check out only one license for each request.


32723	Cannot read license file.

Be sure that the license file has the correct read permission.


32724	Bad encryption handshake with daemon.

The client performs an encryption handshake operation with the daemon
before any licensing operations can occur. This handshake operation
failed. Check with the system administrator to ensure that the system
and the network are working properly. If the error recurs, note
all circumstances and contact IBM Technical Support.


32725	Feature database corrupted in daemon.

The runtime-feature data structures of the daemon are corrupt. This
internal daemon error indicates that a serious problem exists. If the
error recurs, note all circumstances and contact IBM Technical Support.


32726	Cannot allocate dynamic memory.

The malloc() call failed to return sufficient memory. This error can
occur while the system is reading the features from the license file
(especially if the user has set an extremely long LM_LICENSE_FILE path).
Check with your system administrator to ensure that the system is working
properly.


32727	Feature was never checked out.

This message provides information to the user. It is not an error.


32728	Clock setting check not available in daemon.

This message provides information to the user. It is not an error.


32766	Unknown error message number.

The program that you have started cannot locate the Informix error
message file. The INFORMIXDIR environment variable is probably not set
properly. INFORMIXDIR points to the directory that contains the msg
directory where message files are stored.


32788	Dbspaces added to a mirrored Dbslice must be mirrored.

The database administrator attempted to add dbspaces to an existing
mirrored dbslice by using the ALTER DBSLICE ADD DBSPACE command
without the MIRROR clause for each chunk.

Reissue the ALTER DBSLICE ADD DBSPACE command with the MIRROR clause
for each chunk.


32789	Dbspaces added to a non-mirrored Dbslice must not be mirrored.

The database administrator attempted to add dbspaces to an existing
unmirrored dbslice by using the ALTER DBSLICE ADD DBSPACE command
with at least one MIRROR clause for a chunk.

Reissue the ALTER DBSLICE ADD DBSPACE command without the MIRROR clause
for each chunk.


32792	Coservers successfully blocked.

The EBR BLOCK command completed successfully.


32793	Coservers successfully unblocked.

The EBR UNBLOCK command completed successfully.


33987	External Space successfully created.

The onspaces command that you used to create the external space was
successful.


33988	External space creation failed.

The database server could not add the external space. Check the error
returned with this failure.


33989	External Space successfully dropped.

The onspaces command that you used to drop the external space was
successful.


33990	External space drop fails.

An attempt to drop the external space failed. Check the error
associated with this failure.


33991	External Space reference count not zero. Drop fails.

The reference count for this external space was not 0. Check the
reference count for the external space before you attempt to drop the
space.


33992	onmode: Unknown option argument.

Unknown argument passed to onmode. Retry with the correct argument
list.


35201	SQLCODE used in SQL statement or declared as IN parameter.

Remove SQLCODE from the SQL statement and/or remove IN from the
parameter list. SQLCODE is an out parameter only.


35202	SQLCODE parameter must be declared with type SQLCODE_TYPE.

Only declare SQLCODE as an SQLCODE_TYPE parameter.


35579	General Table Manager: Invalid argument.

An invalid argument was passed while you were attempting to create a
table. If this internal error recurs, note all circumstances
and contact IBM Technical Support.


35580	General Table Manager: No table allocated.

The table has not been created or was deleted. If this internal error
recurs, note all circumstances and contact IBM Technical Support.


35581	General Table Manager: No memory.

Allocation of memory for a table or a table entry failed. Try to
decrease the amount of memory that is used so some memory is freed for
the table or table entry.


35582	General Table Manager: Mutex cannot be created.

Table or entry mutexes cannot be created. Try to decrease the amount of
memory that is used so some memory is freed for the creation of the
mutex.


35583	General Table Manager: Duplicate keys not allowed.

Table entries with the same key are not allowed. If this internal error
recurs, note all circumstances and contact IBM Technical Support.


35584	General Table Manager: Table is full.

Table is full and cannot be extended. If this internal error recurs,
note all circumstances and contact IBM Technical Support.


35585	General Table Manager: Entry is locked.

Entry of a table is already locked (not yet used). If this internal
error recurs, note all circumstances and contact IBM Technical Support.


35586	General Table Manager: Table is locked.

Table is already locked (not yet used). If this internal error recurs,
note all circumstances and contact IBM Technical Support.


35587	General Table Manager: No entry.

The required entry does not exist. If this internal error recurs,
note all circumstances and contact IBM Technical Support.


35588	General Table Manager: Invalid entry specification.

The specification of an entry is invalid (for example, a NULL pointer).
If this internal error recurs, note all circumstances and
contact IBM Technical Support.


35589	Running oninit without setuid causes use of descriptor limit.

When you run the database server in developer mode (not suid to root), this
message is a reminder that the number of file descriptors available to the
database server is now limited by the shell from which the database server
is initialized. File descriptors are needed for accessing chunks and
making network connections. If the database server runs out of file
descriptors, you need to choose one of the following solutions: limit the
number of connections, limit the number of chunks used, or run as root.


35590	You do not have the correct permission to run the database server
without the -U option.

The user was not root or informix and was not in the group informix.
The only way to run the database server without permissions is with the -U
option.


35591	You must be the owner of this server to start it.

You are attempting to boot the database server but are not the owner.
Try again after you log in as the correct user.


35592	You are not the owner of this server.

You attempted to run onstat or onmode against a database server that you do
not own.


38002	Unknown event mnemonic or code event-mnemonic.

An unknown event mnemonic or code was encountered in the audit trail.
Check the event mnemonic or code, correct the command line or the load
file, and try again.


38005	Invalid path name, pathname (errcode = number).

You have specified an invalid pathname. Check your entry and try
again.


38006	Invalid file name, filename (errcode = number).

You have specified an invalid filename. Check your entry and try
again.


38007	No read permission on file filename.

You do not have read permission for the specified file. Check the
permissions and try again.


38008	Cannot create file filename (errcode = number).

The specified file cannot be created. Check the path and directory
permissions and try again.


38010	Internal error: Illegal use of set_msg (bounds exceeded).

The set_msg function has exceeded the allocated storage in the error
buffer. If the error recurs, note all circumstances and contact
IBM Technical Support.


38047	Invalid serial number. Consult the installation instructions.

You have entered a serial number that is not valid. Check the
installation instructions for your product and try again.


38053	Bad option usage: -u required for add.

Your add command for onaudit is incomplete; you did not specify a user
name. Check the usage information and try again.


38054	Bad option usage: -u required for modify.

Your modify command for onaudit is incomplete; you did not specify a
user name. Check the usage information and try again.


38055	Unknown option '-x'.

Your command line for onaudit has incorrect or incomplete syntax. You
have specified an unknown option. Check the usage information and try
again.


38060	Badly formatted mask/role/event definition at line line-number.

The database server failed to parse the mask/role/event definition in a
load file. Edit the load file and try again.


38061	Actions must be the first argument to onaudit.

Your command line for onaudit has incorrect or incomplete syntax.
Actions must be the first argument. Check the usage information and try
again.


38062	Option without required argument found.

Your command line for onaudit has incorrect or incomplete syntax. You
have not included a required argument with an option. Check the usage
information and try again.


38064	No more than two events sets may be defined.

Your command line for onaudit has incorrect or incomplete syntax. You
have specified more than two event sets. Check the usage information
and try again.


38065	Unable to connect to shared memory.

Confirm that the database server is up and try again.


38083	Masks cannot be modified during a bulk operation (line line-number).

The mask that was defined in a load file already exists. Either edit
the load file or delete the existing definition.


38084	OS mode auditing not supported for this platform.

The -O option is not implemented for this platform. Delete it from the
command and try again.


38085	Cannot locate ONCONFIG file.

The database server could not locate the $INFORMIXDIR/etc/$ONCONFIG
file, and/or ADTPATH and/or DBSERVERNAME is not defined.


38086	Badly formatted audit record found.

The audit trail traversal contains a parsing error. Check the path and
directory permissions and try again.


38088	Failed to action user user-name -- error number occurred.

This general onaudit failure message could indicate that a command is
incorrect or incomplete, the database is inaccessible, or the user is
not informix. Check the permissions, ID, and command-line syntax, and
try again.


38089	Failed to action -- error number occurred.

This general onaudit failure message could indicate that a command is
incorrect or incomplete, the database is inaccessible, or the user is
not informix. Check the permissions, ID, and command-line syntax, and
try again.


38090	Skipped existing audit trail filename.

The database server could not overwrite an existing audit-trail file.
This message might appear when the database server comes up and
ADTPATH holds old audit data. Remove all old audit trails.


38091	Audit trail creation failed for filename.

The database server could not open the next audit file because the call
to aio_fopen() failed. Check that ADTPATH points to a valid directory
to which the user or group informix can write.


38092	Could not open next audit file.

The database server could not open the next audit file because the call
to aio_fopen() failed. Check that the ADTPATH points to a valid
directory to which the user or group informix can write.


38093	Informix level audit write failure (errcode = number).

The database server could not write the current audit record to the
audit-trail file. Check that ADTPATH points to a valid directory to
which the user or group informix can write and that space is available.
Also, check the directory and audit-trail file permissions.


38094	string is invalid setting for ADTERR.

The ONCONFIG file contains a bad parameter. Fix the ONCONFIG file so
that the parameter is 0/1.


38095	string is invalid setting for ADTMODE.

The ONCONFIG file contains a bad parameter. Fix the ONCONFIG file so
that the parameter is 0/1.


43007	Data required to insert a row into table_name.

An insert into this table cannot occur without the specified data.
Verify that the required data exists before you attempt another insert
in this table.


43008	Failed to build WHERE clause for query.

Attempt to build a WHERE clause for the specified query failed. Verify
that the data needed to create the WHERE clause exists.


43010	Missing data for table_name.

Required data is missing. Verify that the data exists.


43011	Updates to table_name primary key are not allowed.

Updating the primary key for a table is not allowed. Delete the row and
then insert a new row with the new primary key.


43012	Unable to open connection to server.

The database server is in an incorrect state. Bring the database server
to the correct state. For a backup, the database server should be in
online or quiescent mode. For a warm restore, the database server
should be in online, quiescent, backup, or recovery mode. For a cold
restore, the database server should be off-line. Use the onmode or
oninit commands.


43014	Unable to read ONCONFIG file parameters.

The ONCONFIG file is inaccessible. It might be missing or have
incorrect permission values. Verify that an ONCONFIG file exists and
that its permissions are correct. For details, see your Administrator's
Guide.


43015	Unable to set INFORMIXSHMBASE.

Unable to attach to shared memory. Contact your database system
administrator.


43018	Must be user root or informix.

Only users root and informix and are allowed to execute ON-Bar. Log in
as root or informix before you attempt the backup, restore, or database
logging mode change.


43036	User is not a member of the informix-admin group.

Only users listed in the informix-admin group can execute ON-Bar. Ask
your system administrator to add your user name to the informix-admin
group.


43039	Version version_number of the XBSA shared library is not compatible
with version version_number of ON-Bar.

Either IBM has not certified the XBSA shared library that the
Storage Management Vendor provides, or an error occurred during
installation of ON-Bar. Verify that ON-Bar was installed properly.
Verify that the XBSA library is certified.


43040	DB/BLOBspace dbspace_name/blobspace_name does not exist.

Verify that the storage space exists in this database server.


43043	Must restore logical logs from date_time or later.

The user wants to stop the restore at a logical log that is too early.
A storage-space backup occurred after the log that the user
specified. Retry the restore up to the specified logical log or later.


43047	Cannot warm restore-critical media: dbspace_name.

The user wants to stop the restore at a logical log that is too early.
A storage-space backup occurred after the log that the user
specified. Retry the restore up to the specified logical log or later.


71561	This command can be executed only by members of the informix-admin
group.

The account under which you are logged on might not be a member of the
informix-admin group. Contact your Windows system administrator.


71562	Use the -iy option to initialize the database server.

The command-line option that was specified in the Control
Panel->Services->Startup dialog box was -i. When the database
server runs as a service, it does not prompt you for confirmation.

If you are sure that you want to initialize the root dbspace
completely, start the database server with the -iy option instead.


71563	The database server cannot access %INFORMIXDIR%\dbssodir or
%INFORMIXDIR%\aaodir.

First, check access rights to path segments that lead to dbssodir and
aaodir. If %INFORMIXDIR% is on a network drive, make sure the oninit
process privileges are not altered. In addition, make sure that the AAO
and DBSSO group names in the following registry key are valid:

HKEY_LOCAL_MACHINE\SOFTWARE\Informix\OnLine\CurrentVersion\Security


71564	Warning: SYSTEM command not supported in SPL routines.

Prior to Version 7.21, IBM Informix OnLine Dynamic Server for Windows NT
did not support system commands in SPL routines (stored procedures).
This feature was added in Version 7.21.

Run the system command outside of the SPL routine.


71565	The root dbspace is not large enough for the specified configuration.
The actual size is xxx pages, and the required size is yyy pages.

Try to free some space on the drive that contains the root dbspace and
re-initialize the database server.


71566	The value specified for TAPEDEV or LTAPEDEV in the ONCONFIG file
is invalid.

Specify a valid value for TAPEDEV and/or LTAPEDEV. For specific information
about setting configuration parameters, see your administrator's guide. 


71567	The database server failed to start in Recovery Mode. Check Event
Log for errors.

Check the Event Log for errors from the database server and correct them.


71568	oninit: DBSERVERNAME `servername' not found under SQLHOSTS key in
the Registry.

Add key into the registry. For more information, refer to your
administrator's guide.


71569	The database server failed to start in Recovery Mode.  Service
already running.

Check the registry settings for INFORMIXSERVER under the SQLHOSTS key.


71570	System() command "<command-name>" in SPL routine cannot be
executed because user "<username>" did not connect with a password.

Log on again with a password and execute the SPL routine.


71571	Insufficient buffer size for error message.

The buffer size allocated for the error message is not sufficient. If
the error recurs, note all circumstances and contact IBM Technical Support.


71572	System() command in SPL routine failed.

Check the message log for more information.


79511	Warning: DB_LOCALE environment variable does not match
locale of the database.

The dbaccess utility issues this message when you connect to a database
that does not match the value of your $DB_LOCALE environment variable.
For more information, see the section on performing code-set
conversions in the IBM Informix GLS User's Guide.


80622	Illegal DBSERVERNAME or DBSERVERALIAS:  <dbname> must
begin with a letter.

The onconfig file has a value for DBSERVERNAME or DBSERVERALIASES that does
not begin with a letter.

Edit the onconfig file. Make sure the DBSERVERNAME value and
all DBSERVERALIASES values begin with a letter.


-1	Not owner.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Check the ownership and permissions of
files and directories that are used in the current operation. Look for
other operating-system error messages that might give more
information.


-2	No such file or directory.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information.


-3	No such process.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information. If the error recurs,
note all circumstances and contact IBM Technical Support.


-4	Interrupted system call.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. You might have pressed the interrupt
key at a crucial moment, or the software might have generated an
interrupt signal such as the UNIX command kill. Look for other
operating-system error messages that might give more information. If
the error recurs, note all circumstances and contact IBM Technical Support.


-5	I/O error.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information. If the error recurs,
note all circumstances and contact IBM Technical Support.


-6	No such device or address.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. You might have made an error when you
configured the database software or in the REPORT TO clause of a
report. Look for other operating-system error messages that might give
more information.


-7	Arg list too long.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information. If the error recurs,
see the information about trapping errors in your Administrator's
Guide or Reference to acquire additional diagnostics. Contact IBM Technical 
Support with the diagnostic information.


-8	Exec format error.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information. If the error recurs,
note all circumstances and contact IBM Technical Support.


-9	Bad file number.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information. If the error recurs,
note all circumstances and contact IBM Technical Support.


-10	No children.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information. If the error recurs,
note all circumstances and contact IBM Technical Support.


-11	No more processes.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information. If the error recurs,
note all circumstances and contact IBM Technical Support.

-12	Not enough core.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Core probably refers to data space in
memory that an operating-system function needed. Look for other
operating-system error messages that might give more information.


-13	Permission denied.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. This error code usually follows an
attempt to execute a file that is not a program or shell script; it
might reflect an error in a REPORT TO specification in a report. Look
for other operating-system error messages that might give more
information.


-14	Bad address.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information. If the error recurs,
note all circumstances and contact IBM Technical Support.


-15	Block device required.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. An error might exist in the
configuration of the database software. That error might include an
incorrect address in the chunk-device or tape-device parameters that
were given to the database server. Look for other operating-system
error messages that might give more information.


-16	Mount device busy.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information. If the error recurs,
note all circumstances and contact IBM Technical Support.


-17	File exists.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. This error may reflect an attempt in a
REPORT TO specification to replace an existing file. Look for other
operating-system error messages that might give more information.


-18	Cross-device link.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-19	No such device.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information. If the error recurs,
note all circumstances and contact IBM Technical Support.


-20	Not a directory.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information. Some database servers store
databases as directories that are named database.dbs. If you place a
file (not a directory) with the .dbs suffix in your DBPATH, this error
might result.


-21	Is a directory.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. A file-type operation has been
directed to a directory. Some database servers store tables, indexes,
and lock files as files with particular suffixes in the database
directory. If a directory replaced such a file, this error might
result. Look for other operating-system error messages that might give
more information.


-22	Invalid argument.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information. If the error recurs,
refer to information about trapping errors in your Administrator's
Guide or Reference to acquire additional diagnostics. Contact IBM
Technical Support with the diagnostic information.


-23	File table overflow.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information. If the error recurs,
note all circumstances and contact IBM Technical Support.

-24	Too many open files.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. This error probably reflects a limit
that was configured in your operating system. Look for other
operating-system error messages that might give more information.


-25	Not a typewriter.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. An error might exist in the
configuration of the database software. That error might include an
incorrect address in the log-device parameter given to the database
server. Look for other operating-system error messages that might give
more information. If the error recurs, note all circumstances
and contact IBM Technical Support.


-26	Text file busy.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the current operation requires the
use of a text file (such as the input file to LOAD or to a PRINT FILE
statement in a report), retry the operation later. Look for other
operating-system error messages that might give more information.


-27	File too large.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Check the documentation for your
operating system to find out what too large might mean in the context
of the current operation.


-28	No space left on device.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Either a database table or an ASCII
output file has probably filled the available disk space. Look for
other operating-system error messages that might give more
information.


-29	Illegal seek.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information, such as the device on which
the error occurred. If the error recurs, note all circumstances
and contact IBM Technical Support.


-30	Read-only file system.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. An entire file system (a disk or disk
partition) has been made read-only. Contact your system administrator
to find out why.


-31	Too many links.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information, especially which file or
files are involved. If the error recurs, note all circumstances
and contact IBM Technical Support.


-32	Broken pipe.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. A pipe is a data path between two
processes; a pipe is broken if one of the processes has unexpectedly
quit while the other is waiting for data. Look for other
operating-system error messages that might give more information,
especially which processes were involved. If the error recurs,
note all circumstances and contact IBM Technical Support.


-33	Argument too large.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-34	Result too large.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-35	Operation would block.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-36	Operation now in progress.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-37	Operation already in progress.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-38	Socket operation on non-socket.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information, particularly the operation
in question and the processes that are involved. If the error recurs,
note all circumstances and contact IBM Technical Support.


-39	Destination address required.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-40	Message too long.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-41	Protocol wrong type for socket.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-42	Option not supported by protocol.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-43	Protocol not supported.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-44	Socket type not supported.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-45	Operation not supported on socket.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstance, and contact IBM Technical Support.


-46	Protocol family not supported.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-47	Address family not supported by protocol family.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-48	Address already in use.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-49	Can't assign requested address.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-50	Network is down.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If you are attempting to use
IBM Informix STAR or IBM Informix NET, contact your system administrator to
find out when the network will be backed up. If not, note all
circumstances and contact IBM Technical Support.


-51	Network is unreachable.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If you are attempting to use
IBM Informix STAR or IBM Informix NET, contact your system administrator to
find out what the network problem is. If not, note all
circumstances and contact IBM Technical Support.


-52	Network dropped connection on reset.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If you are attempting to use
IBM Informix STAR or IBM Informix NET, contact your system administrator to
report a network problem. If not, note all circumstances and
contact IBM Technical Support.


-53	Software caused connection abort.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If you are attempting to use
IBM Informix STAR or IBM Informix NET, contact your system administrator to
report a network problem. If not, note all circumstances and
contact IBM Technical Support.


-54	Connection reset by peer.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If you are attempting to use
IBM Informix STAR or IBM Informix NET, contact your system administrator to
report a network problem. If not, note all circumstances and
contact IBM Technical Support.


-55	No buffer space available.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information, especially which file or 
files are involved. If the error recurs, note all circumstances
and contact IBM Technical Support.

-56	Socket is already connected.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-57	Socket is not connected.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-58	Can't send after socket shutdown.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-59	Too many references: can't splice.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-60	Connection timed out.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If you are attempting to use
IBM Informix STAR or IBM Informix NET, contact your system administrator to
report a network problem. If not, note all circumstances and
contact IBM Technical Support.


-61	Connection refused.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If you are attempting to use
IBM Informix STAR or IBM Informix NET, contact your system administrator to
report a network problem. If not, note all circumstances and
contact IBM Technical Support.


-62	Too many levels of symbolic links.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. The database server does not normally
use symbolic links. Look for other operating-system error messages that
might give more information, particularly which file or files were
being accessed.


-63	File name too long.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. An error might exist in the coding of
a REPORT TO statement of a report. If not, note all
circumstances and contact IBM Technical Support.


-64	Host is down.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If you are attempting to use
IBM Informix STAR or IBM Informix NET, contact your system administrator to
report a network problem. If not, note all circumstances and
contact IBM Technical Support.


-65	Host is unreachable.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If you are attempting to use
IBM Informix STAR or IBM Informix NET, contact your system administrator to
report a network problem. If not, note all circumstances and
contact IBM Technical Support.


-66	Directory not empty.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information, particularly what directory
was being removed. If the error recurs, note all circumstances
and contact IBM Technical Support.


-67	Too many processes.

Your application was unable to start a database server process or was
unable to create a process that was needed for some subordinate
function such as a REPORT TO pipe or a network-access program. This
error probably reflects a limit configured in your operating system.
Look for other operating-system error messages that might give more
information.


-68	Too many users.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. This error probably reflects a limit
configured in your operating system. Look for other operating-system
error messages that might give more information.


-69	Disc quota exceeded.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. A disk-quota limit is probably
configured in your operating system. Look for other operating-system
error messages that might give more information, particularly the disk
involved. Contact your system administrator to inquire about more
liberal quotas.


-70	Stale NFS file handle.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. An error exists in a file server on a
networked file system. Although IBM Informix database servers do not
support database access to NFS-mounted file systems, this error can
occur when the database server executable files or other files that are
related to the database server are located on an NFS-mounted disk. (In
other words, the INFORMIXDIR environment variable names an NFS-mounted
disk.) The error is usually transient, reflecting a crash and
subsequent restart of the file server. Remount the file system to your
workstation and rerun your application.


-71	Too many levels of remote in path.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-72	Not a stream device.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. Look for other operating-system error
messages that might give more information, particularly which device is
involved. If the error recurs, note all circumstances and
contact IBM Technical Support.


-73	Timer expired.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-74	Out of stream resources.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-75	No message of desired type.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-76	Not a data message.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Supportat.


-77	Identifier removed.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-78	Deadlock situation detected/avoided.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. If the error recurs, note all
circumstances and contact IBM Technical Support.

Under AIX, this code means connection timed out.


-79	No record locks available.

An operating-system error code with the meaning shown was unexpectedly
returned to the database server. This implementation of the IBM Informix
database server probably uses kernel locking, the use of the
operating-system facilities to lock rows of tables. The capacity of the
operating-system lock table has been exceeded. Contact your system
administrator and inquire about configuring the operating system to
support more locks. Also examine your database application to see if it
can use fewer locks by updating fewer rows in each transaction or by
locking whole tables instead of rows.


-100	ISAM error: duplicate value for a record with unique key.

A row that was to be inserted or updated has a key value that already
exists in its index. For C-ISAM programs, a duplicate value was
presented in the last call to iswrite, isrewrite, isrewcurr, or
isaddindex. Review the program logic and the input data. For SQL
products, a duplicate key value was used in the last INSERT or UPDATE.


-101	ISAM error: file is not open.

The program attempted to use an unopened file, table, partition,
tablespace, or other storage object, or one of these whose access
mode did not support the requested operation (for example, an
attempt to write to a file that was opened in read-only mode).

If the error recurs, refer to the information on trapping errors in
your Administrator's Guide or Reference for additional diagnostics.
Contact IBM Technical Support with the diagnostic information.


-102	ISAM error: illegal argument to ISAM function.

A parameter that was presented to one of the C-ISAM functions is
outside the range of acceptable values. For C-ISAM programs, review the
parameters that were used in this function call, and compare them to
the documentation for the function. If the error recurs, refer
to the information on trapping errors in your Administrator's
Guide or Reference to acquire additional diagnostics. Contact IBM 
Technical Support with the diagnostic information.


-103	ISAM error: illegal key descriptor (too many parts or too long).

The ISAM processor has been given an invalid key descriptor. For C-ISAM
programs, review the key descriptor. Each key descriptor has a maximum
of 8 parts and 120 characters. If the error recurs, refer to the
information on trapping errors in your Administrator's Guide or Reference to
Appendix entitled "Trapping Errors" in your Administrator's Guide or Reference 
to acquire additional diagnostics. Contact IBM Technical Support
with the diagnostic information.


-104	ISAM error: too many files open.

The ISAM processor has reached its limit of open files. For C-ISAM
programs, review the program logic and change it so that fewer files
are open concurrently. Use isclose to close unneeded files. For SQL
products, this query is too complex; it uses too many tables
concurrently. For example, a trigger procedure running with PDQ
enabled can open many tables during constraints processing.
Perform the query in steps, and use temporary tables.


-105	ISAM error: bad ISAM file format.

The contents of an ISAM file (table or index) have been corrupted. For
C-ISAM, if you used transaction logging, you can use the isrecover
program to recover the file. Otherwise, re-create the file or restore
it from backup. For SQL products, use the bcheck or secheck utility to
get more information on the problem and possibly correct it (use
the oncheck utility (or tbcheck with IBM Informix OnLine versions 6.0 and
earlier). If the utility cannot recover the table or index, you will
have to re-create or restore it.


-106	ISAM error: non-exclusive access.

The ISAM processor has been asked to add or drop an index but it does
not have exclusive access. For C-ISAM programs, the file must be opened
with exclusive access before you perform this operation. Review the
program logic, and make sure that it opens this file by passing the
ISEXCLLOCK flag to isopen. For SQL products, the database server
returns this error when an exclusive lock is required on a table. For
example, this error appears when a second user tries to alter a table
that the first user has locked.
Or the ISAM processor could not obtain access to the requested table or 
index because it has been opened exclusively by another user.
This condition is normally transient, retry operation after some delay.  


-107	ISAM error: record is locked.

Another user request has locked the record that you requested or the
file (table) that contains it. This condition is normally transient. A
program can recover by rolling back the current transaction, waiting a
short time, and re-executing the operation. For interactive SQL, redo
the operation. For C-ISAM programs, review the program logic and make
sure that it can handle this case, which is a normal event in
multiprogramming systems. You can obtain exclusive access to a table by
passing the ISEXCLLOCK flag to isopen. For SQL programs, review the
program logic and make sure that it can handle this case, which is a
normal event in multiprogramming systems. The simplest way to handle
this error is to use the statement SET LOCK MODE TO WAIT. For bulk
updates, see the LOCK TABLE statement and the EXCLUSIVE clause of the
DATABASE statement.


-108	ISAM error: key already exists.

The ISAM processor has been asked to create an index that already
exists. For C-ISAM programs, review the program logic. The program must
delete this existing index before it defines another. If the error
recurs, note all circumstances and contact IBM Technical
Support.


-109	ISAM error: the key is the file's primary key.

The ISAM processor has been asked to delete the primary key index. For
C-ISAM programs, the isdelindex call cannot delete the primary key. If
the error recurs, note all circumstances and contact IBM Technical Support.


-110	ISAM error: end or beginning of the file.

Reading rows sequentially, forward or backward, the ISAM processor has
reached one end of the file (table). For C-ISAM programs, this message
is the normal signal for end of file. Use a different retrieval mode of
isread to reposition the file. For SQL products, see the SQL error
message or return code.


-111	ISAM error: no record found.

The ISAM processor cannot locate the requested record. For C-ISAM
programs, no record was found with the requested index value or record
number, depending on the retrieval mode in use. Make sure that the
correct index is in use. For SQL products, see the SQL error message or
return code. Probably no row was found for this query.


-112	ISAM error: there is no current record.

The ISAM processor has been asked to return the current record, but
none has been established. For C-ISAM programs, review the program
logic. Before the program uses the ISCURR retrieval mode, it must use
another retrieval mode, such as ISFIRST, to establish a current record.
If the error recurs, note all circumstances and contact
IBM Technical Support.


-113	ISAM error: the file is locked.

Another user request has opened the file (table) that was requested in
exclusive mode. In systems that use files for locking, a tablename.lok file
exists. Possibly such a file was left behind when another program terminated
abnormally. If you are sure that is the case, you can release the lock by
emptying that file. Lock files are not used in many systems, and they are
never used with IBM Informix Dynamic Server or IBM Informix OnLine Dynamic Server.

This error occurs with IBM Informix Dynamic Server or IBM Informix OnLine Dynamic
Server when a user attempts to access a table that has been locked.

For C-ISAM programs, rerun the program after the file is unlocked. For
SQL products, tables are locked explicitly using the LOCK TABLE statement
and implicitly during the execution of the CREATE INDEX or ALTER TABLE
statement. Rerun the program or query when the table is unlocked.

If you get this error (-113) when using a transaction isolation mode of
REPEATABLE READ or SERIALIZABLE, and if your query did not use an index
(and therefore had to use a sequential scan of the entire table), the cause
of the error might be that another user had either an exclusive lock or a
promotable lock on at least one row in the table. If you are in REPEATABLE
READ or SERIALIZABLE mode and your query requires a scan (search) of every
single record in the table to find all the records that meet the conditions
in the WHERE clause, then the engine will need to lock every record in the
table to maintain the repeatability of the read. In practice, rather than
locking every single record, the engine will try to lock the entire table.
But if there are any exclusive locks, or even promotable locks, on any row
in the table, then the engine will not be able to get a shared lock on the
entire table, and the query will fail.


-114	ISAM error: the file name is too long.

The ISAM processor has been asked to open or create a file with a
filename longer than 10 characters. For C-ISAM programs, this length
exceeds the maximum for the product. Choose a shorter filename. If the
error recurs, note all circumstances and contact
IBM Technical Support.


-115	ISAM error: cannot create lock file.

The ISAM processor has been asked to access a file or row using
locking. Because this operating system uses files for locking, ISAM
must create a tablename.lok file. When it tried to do so, it received
an error code from the operating system. The disk might be full, or
your account might not have write permission in the relevant directory.
Look for operating-system error messages that might give more
information.


-116	ISAM error: cannot allocate memory.

The ISAM processor needed to allocate memory for data storage but was
unable to do so. A problem may exist in the operating system; look for
operating-system error messages that might give more information. One
cause of this error might be selecting a row that contains large BYTE
or TEXT columns into a temporary table or as part of an INSERT or
UPDATE. In some releases, an entire row that includes BLOB values is
buffered in memory. For C-ISAM programs, review the program to look for
ways that it can use less memory. For SQL products, simplify the
program, form, or report if possible.


-117	ISAM error: bad custom collating sequence.

No current IBM Informix product displays this message. If the error recurs,
note all circumstances and contact IBM Technical Support.


-118	ISAM error: cannot read log record.

The ISAM processor is trying to roll back a transaction or recover a
file but has encountered an error while reading the transaction log.
Look for operating-system error messages that might give more
information. Use the dblog or selog utility to get more information
about the problem. If the file (table) cannot be recovered, you will
have to re-create it or restore it from backup.


-119	ISAM error: bad log record.

The ISAM processor is trying to roll back a transaction or recover a
file but has encountered bad data in a transaction log record. The
dblog or selog utility can be used to get more information about the
problem. If the file (table) cannot be recovered, you will have to
re-create it or restore it from backup.


-120	ISAM error: cannot open log file.

The ISAM processor is trying to open the transaction log file but has
received an error from the operating system. Look for operating-system
error messages that might give more information. For C-ISAM programs,
review the parameter passed to islogopen. Make sure that it specifies
the correct filename of an existing, writable log file and that it
includes a path if the file is not in the current directory. For SQL
products, the START DATABASE statement establishes the transaction log
file. Make sure that the log file still exists in the same directory
location as when START DATABASE was issued and that your account has
write access to it.


-121	ISAM error: cannot write log record.

The ISAM processor is trying to add a record to the transaction log but
has received an error from the operating system. The disk might be
full. Look for operating-system error messages that might give more
information. The transaction-log file can grow quite large. To reduce
its size, you must do two things. First, make a backup copy of the data
file (for C-ISAM) or all database files (for SQL). Second, make the
transaction-log file an empty file. If you perform these steps
routinely, you can control the size of the log file.


-122	ISAM error: transaction not available.

The ISAM processor has been asked to mark the start or end of a
transaction, but transaction logging is not in effect. For C-ISAM
programs, this file was not opened with logging. Review the calls to
isopen, and make sure that the ISTRANS parameter is included. For SQL
products, this database does not support transaction logging. If you
are using the database server, have the database server administrator
enable logging for this database. Otherwise, use the START DATABASE
statement to begin transaction logging. In all cases, logging should
only start immediately after the database has been fully backed up.


-123	ISAM error: no shared memory.

This implementation of ISAM uses shared memory; however, the
shared-memory partition has not been established. Contact the system
administrator or the person who installed the product.


-124	ISAM error: no begin work yet.

The ISAM processor has been asked to mark the end of a transaction, but
no transaction has been started. For C-ISAM programs, review the
program logic to make sure that it calls isbegin before it calls
iscommit or isrollback. For SQL products, make sure that you execute
BEGIN WORK before COMMIT WORK or ROLLBACK WORK.


-125	ISAM error: can't use nfs.

The ISAM processor has been asked to open a file that is located on a
disk attached to another computer and that is accessed using the
Network File System (NFS). This action is not supported. Database files
must be on disks that are physically attached to the computer on which
the ISAM processor is running. To use a database on a different
computer, you must install the IBM Informix STAR or IBM Informix NET networking
software. Then an application on this computer can communicate with a
database server that is running on the computer to which the disks are
attached.


-126	ISAM error: bad row id.

The ISAM processor was asked to retrieve a row by its physical location
but could not find a row at that location.

The error occurred due to one or more of the following reasons:

For queries using the dirty read isolation level, the data being queried was in
a temporarily inconsistent state that prevented it from being read. This is
normal behavior for the dirty read isolation level, which allows queries to
access data that is being updated concurrently by other transactions. Resubmit
the query. To prevent this error from occurring, use a higher isolation level.

For C-ISAM programs, if you are using access by record number, review the
number stored in isrecnum; it is invalid. Otherwise, the current index
might be damaged; run the bcheck or secheck utility.

For SQL products, the index has been damaged. Run the oncheck utility to
check and repair the index if you are using IBM Informix Dynamic Server,
IBM Informix Universal Server, or IBM Informix OnLine Dynamic Server. Run
bcheck or secheck if you are using the IBM Informix SE database server. Run
tbcheck if you are using the IBM Informix OnLine database server.


-127	ISAM error: no primary key.

The ISAM processor was called for a function that requires a unique
primary-key index, but no such index exists for this file. For C-ISAM
programs, review the design of the data file; it was created with a
zero-part primary index (that is, for retrieval by record-number
sequence). If that is not the case, the index might be damaged; run the
bcheck or secheck utility. If the error recurs, note all
circumstances and contact IBM Technical Support.


-128	ISAM error: no logging.

The ISAM processor was called for a function that requires a
transaction log, but none exists for this file. For C-ISAM programs,
review the creation of the data file. Before the program uses functions
such as isbegin, it must set up a log using islogopen. For SQL
products, this database does not support transaction logging. If you
are using the database server, have the database server administrator
enable logging for this database. Otherwise, use the START DATABASE
statement to begin transaction logging. In all cases, start logging
only immediately after the database has been fully backed up.


-129	ISAM error: too many users.

This implementation of ISAM uses shared memory, and it has reached the
maximum number of concurrent users for which the shared memory was
configured. 

The word users can be misleading; the limit is on the number of
concurrent application programs using the database server. It is
possible for one user to start multiple applications at the same time.
For example, when a user starts the IBM Informix 4GL Programmer's
Environment, it opens a session with the database server. When that
user issues a command to compile a 4GL program, the 4GL compiler starts
and also opens a session with the database server. During a compile,
this user has two sessions running.


-130	ISAM error: no such dbspace.

This code indicates one of two problems. The most likely problem is
that this operation specifies a dbspace by name (for example, in the IN
clause of a CREATE TABLE statement or in the DBSPACETEMP environment
variable setting), but that name has not been defined. You can run the
onstat utility with the -d option to see the names of defined dbspaces.
Ask the database server administrator about creating a new dbspace.

If the operation does not explicitly name a dbspace, or if the name is
correct, the problem might be more serious. The error might reflect
corruption of reserved pages in the root dbspace. Use the tbcheck or
oncheck utility with the -cr option to check for this condition.


-131	ISAM error: no free disk space.

Not enough contiguous free disk space is available to complete the
current operation. For C-ISAM programs, if transaction logging is in
use, roll back the current transaction. Make some disk space available,
and run the program again. For SQL products, roll back the current
transaction, if possible. Contact the system administrator about
acquiring more disk space for databases.


-132	ISAM error: rowsize too big.

The limit on a single row is the disk page size that the database
server supports.

Define the table differently, so that each row is shorter. Consider
splitting the table into two or more tables or using more compact data
types.


-133	ISAM error: audit trail exists.

The ISAM processor has been asked to operate on a file in a way that is
incompatible with an audit trail, yet an audit trail exists for the
file. For C-ISAM programs, you cannot call iscluster while an audit
trail exists. First call isaudit with the AUDSTOP mode. For SQL
products, you cannot create a clustered index on a table while it has
an audit trail. First use the DROP AUDIT statement to drop the audit
trail.


-134	ISAM error: no more locks.

The ISAM processor needs to lock a row or an index page, but no locks
are available. The number of locks that an operation requires depends
primarily on the number of rows that a single transaction modifies. You
can reduce the number of locks that an operation needs by doing less in
each transaction or by locking entire tables instead of locking rows.
Depending on the implementation that you are using, the number of locks
that is available is configured in one of three places: the
operating-system kernel, the shared-memory segment, or the database
server. Consult your database server administrator about making more
locks available.


-135	ISAM error: tblspace does not exist.

This error might indicate corruption of control information in the root
dbspace, a serious problem that might require restoring the system from
archive. In the short term, roll back the current transaction, and
terminate the application. Then the database server administrator
should run the tbcheck, oncheck, or onutil utility.


-136	ISAM error: no more extents.

The database server needs to add an extent to a table but cannot
do so. Either not enough disk space is available in the dbspace, or the
table has been given the maximum number of extents that is allowed, or
the maximum number of pages has been reached. The database server
administrator can determine the cause as follows:

    1.  Determine the tblspace number for the table. It is the value in
	the partnum column of the systables table for this table.

    2.  Convert the tblspace number to hexadecimal and extract its
	most-significant 2 digits (the high-order byte). This chunk
	number indicates where the table resides.

    3.  Use the onstat utility -t option to find out disk usage for this
        table. Note particularly the values reported for npages (disk
        pages available), nused (disk pages used), and nextns (number of
        extents).

If nused is less than npages, and nextns is large, the table may have
too many extents. The upper limit of extents per table depends on the
page size of the dbspace it is in, as well as how much space is consumed
by other entries on its tblspace page. An estimate of the maximum
allowed number of extents is the page size in bytes, minus 150 bytes of
overhead, divided by eight. Thus a table in a 2K page size dbspace is
limited to roughly (2,048 - 150) / 8 = 237 extents, but the actual limit
may be lower if other entries on its tblspace page reduce the space
available for extent entries. Larger page sizes allow correspondingly
higher numbers of extents.

If there are too many extents, reallocate the table using fewer, larger
extents, or in a dbspace with a larger page size. To reallocate the
table, unload it to a flat file, then drop the table. Re-create the
table, specifying a first-extent size sufficient to hold all its current
data and a next-extent size between one-fourth and one-sixteenth its
current size. Then reload the data into the table.

If nextns is small or the difference between npages and nused is less
than the size of the next-extent size for the table, not enough disk
space is available in the dbspace where the table resides. Use the
chunk number from step 2 and the ON-Monitor or ON-Monitor Chunks display
to determine the dbspace, then add a new chunk to that dbspace.

If nused is close to 0xFFFFFF (16,777,215), the maximum number of pages
has been reached for the table. Reallocate the table in a dbspace with
a larger page size as described above.


-137	ISAM error: chunk table overflow.

The database system administrator sees this error message. The database
server is configured to handle a certain number of disk chunks. The
limit has been reached, so a chunk could not be added. Increase the
CHUNKS parameter of the ONCONFIG file, and initialize shared memory.


-138	ISAM error: dbspace table overflow.

The database server administrator sees this error message. The database
server is configured to handle a certain number of dbspaces. The limit
has been reached, so a dbspace could not be added. Increase the
DBSPACES parameter of the ONCONFIG file, and initialize shared memory.


-139	ISAM error: logfile table overflow.

The database server administrator sees this error. The database server is
configured to handle a certain number of logical logs. The limit has
been reached, so a log could not be added. Increase the LOGSMAX
parameter of the ONCONFIG file and initialize shared memory.


-140	ISAM error: operation illegal on a DR secondary.

UPDATABLE_SECONDARY disabled:

A DR secondary server is meant for read-only operations. Any kind of write
operation to a nontemporary dbspace is not allowed. For example, you cannot
create a table in a regular dbspace, and you cannot do an insert, update, or
delete operation on a table in a regular dbspace.

Review your application logic and rewrite it to remove any operations that
would write to a nontemporary dbspace.

UPDATABLE_SECONDARY enabled:

A DR secondary server is updatable. Some of the DML/DDL statements are not
supported on an updatable secondary server. For example, create database 
without log is not supported on an updatable secondary server. Also raw 
tables and external tables creatiion are also not supported on 
secondary server.

All secondary servers:

Certain operations on the secondary servers require temporary data to be stored
in temporary dbspaces, such as sorting and view processing. Ensure that temporary
dbspaces are available for such operations.


-141	ISAM error: tblspace table overflow.

The database server is configured to handle a certain number of
open tblspaces (which correspond approximately to tables). This limit
has been reached, so a table that is used in this statement could not
be opened. In the short term, roll back the current transaction and
then re-execute it when fewer concurrent operations are going on. To
prevent recurrence, the database server administrator should configure 
the system to handle more open tblspaces. The TBLSPACES parameter of the
ONCONFIG file sets the limit. The ovrtable count in the
ON-Monitor or ON-Monitor Profile display reflects the number of times
this error occurs.


-142	ISAM error: overflow of tblspace page.

An internal error (probably obsolete) occurred. If the error recurs,
note all circumstances and contact IBM Technical Support.


-143	ISAM error: deadlock detected.

The database server has detected an impending deadlock between
your request and other, concurrent user requests. Each user request is
waiting for a resource (a row or disk page) that is held by another
request in the chain; if your requested operation went forward, the
chain would be closed and all requests would be deadlocked. In the
short term, treat this error the same as -107 (record is locked). Roll
back the current transaction, and re-execute it after a delay. To
prevent recurrence, review the design of the applications that use the
same tables and execute concurrently. Various design strategies can
minimize the probability of deadlock.

When IBM Informix STAR is active, and your application is using tables in
both this system and another system, deadlock detection is no longer
deterministic but probabilistic, based on the duration of a delay
waiting for resources in another system. The database server administrator 
can set the length of the delay after which deadlock is assumed.


-144	ISAM error: key value locked.

The current operation inserts a row with a certain primary key value or
updates a row with a certain primary key value, but a transaction that
has not yet been committed has deleted that key value from the index.
This error occurs only when the lock mode is set to NOT WAIT. Treat it
the same as error -107 (record is locked). Roll back the current
transaction, and re-execute it after a delay. Then, if the other
transaction was committed, the lock no longer exists. If it was rolled
back, the key exists, and this operation receives a duplicate-key
error.


-145	ISAM error: system does not have disk mirroring.

The database server administrator sees this error. This database server
has not been initialized to support disk mirroring. Before you can add
a mirror chunk, you must reconfigure the database server to support
mirroring.


-146	ISAM error: the other copy of this disk is currently disabled or
non-existent.

The database server administrator sees this error. You must bring the other
chunk of this mirror pair to online status before you can take this
chunk off line.


-147	ISAM error: archive in progress.

The database server administrator sees this error. The action that you have
requested cannot be carried out while an archive is being made. For
example, you cannot add a log or a mirror during archiving. Cancel the
archive or wait until it is complete, and then reissue the command.


-148	ISAM error: dbspace is not empty.

The database server administrator sees this error. You cannot remove a dbspace
until all tables that are in it have been dropped. To find the names of
remaining tables, use the tbcheck or oncheck utility with the -pe
option; its report lists tables by chunk within dbspaces.


-149	ISAM error: IBM Informix OnLine daemon is no longer running.

Your application was in communication with the database server, but the
database server is no longer running. Your current transaction will be
rolled back when the database server goes through fast recovery as it
next starts up. Terminate the application, and contact the database
server administrator to find out what happened and when the database
server will be restarted.


-150	The limits of the IBM Informix Demo Version have been exceeded.

You are using a demonstration version of the database server. This
version has severe limits on the number of tables and the size of the
tables that it can manage. The current operation causes it to exceed
one of those limits. Contact your IBM representative about buying
the production version of the software.


-151	ISAM error: Illegal value in varchar length field.

This internal error occurs when the leading byte in a VARCHAR column on
disk indicates a VARCHAR length greater than the column was defined to
hold when the column was created.

If the error recurs, refer to the information on trapping errors in your
Administrator's Guide or Reference. To acquire additional diagnostics,
contact IBM Technical Support with the diagnostic information.


-152	ISAM error: Illegal message type received from remote process.

This internal error should not occur. Note all the details about the
network software in use and the version level of the database servers
in this and the other host system. If the error recurs, note all
circumstances and contact IBM Technical Support.


-153	ISAM error: not in ISMANULOCK mode.

The ISAM processor has been asked to lock or unlock the current file
(table), but the file was not opened in the appropriate mode. For
C-ISAM programs, review the uses of isopen, and make sure that the
ISMANULOCK flag is passed when the program opens a table for manual
locking. If the error recurs, note all circumstances and
contact IBM Technical Support.


-154	ISAM error: Lock Timeout Expired.

This network operation has been suspended, awaiting a response from
another database server, for the maximum duration allowed. The local
database server assumes that a distributed deadlock exists and that
this user request is awaiting a resource that was locked by a user in a
different system, which is awaiting a resource that this user owns.
Roll back the current transaction, and retry it after a delay. If this
error occurs frequently, ask the database server administrator to adjust
the length of the deadlock time-out interval.

This code is also returned when an explicit wait time limit expires;
that is, if you have SET LOCK MODE TO WAIT 3, and your request is
queued for more than 3 seconds for a lock, the operation ends with this
ISAM error code.


-155	ISAM error: Primary and Mirror chunks are bad.

The primary chunk (and the mirror chunk, if one exists) are unusable.
Roll back the current transaction and terminate the application.
Contact the database server administrator. New disk chunks must be 
defined, and then the system must be restored.


-156	ISAM error: Cannot attach to shared memory.

Unable to attach to shared memory. Look for operating-system messages
that might give more information. After you verify that no system
limit or local problem exists, note all circumstances and contact
IBM Technical Support.


-157	ISAM error: Interrupted ISAM call.

An interrupt that was detected from client process has terminated the
operation. Restart the operation.


-158	ISAM error: Operation disallowed on SMI pseudo table.

You have attempted an SQL operation that is not supported on System
Monitoring Interface (SMI) pseudo tables. Try another operation.


-159	ISAM error: Collation sequence invalid.

You are attempting to use a collation sequence that is either not
supported or does not match the sequence originally used to create the
ISAM file. Use islanginfo() to determine the language of the ISAM
file.


-160	ISAM error: only one TEXT or BYTE field may be open at any time.

This internal error should not occur. The database server has called
the isbopen function twice in a row. If the error recurs,
note all circumstances and contact IBM Technical Support.


-161	ISAM error: no TEXT or BYTE field is open.

This internal error should not occur. The database server has called a
TEXT or BYTE function without first calling isbopen. If the error
recurs, note all circumstances and contact IBM Technical
Support.


-162	ISAM error: Storage space does not exist.

The most likely cause of this error is that the current statement
attempts to define a BYTE or TEXT column using the clause IN blobspace,
but no storage space of that name has been defined. However, if the
storage space was correctly spelled and should exist, a reserved page in
the root dbspace might have been corrupted. In that case, the database
server administrator should run tbcheck -cr, oncheck -cr, or onutil to
check the situation. If the statement makes no reference to TEXT or
BYTE columns, possibly the root dbspace is full or corrupted; contact 
the database server administrator for further help.


-163	ISAM error: begin and end page stamps are different.

The database server is reporting evidence of corruption of the
database. Each disk page has time stamps at each end that should be
identical when the page is read from disk. This test of data integrity
has failed, indicating either that a disk page was not fully written to
disk or that one has been partially overwritten on disk or in memory.
In any case, you should roll back the current transaction and terminate
the application. Then notify the database server administrator, who should 
run the tbcheck, oncheck, or onutil utility to get more information about 
the failure.


-164	ISAM error: TEXT or BYTE stamp is incorrect.

This operation has returned an invalid BYTE or TEXT value. Possibly the
data pages have been corrupted. Roll back the current transaction. Have
the database server administrator use tbcheck -D, oncheck -D, or
onutil to get more information about the problem.

If the program is operating with Dirty Read or Committed Read
isolation, this code might indicate that another process or thread has
deleted the BYTE or TEXT value and its pages have been partly
reallocated to an unrelated value. A program using Dirty Read isolation
can read rows that have been deleted if the deletion has not yet been
committed. If the deletion is committed while the program is reading a
BYTE or TEXT value, and if the space allocated to the value is reused
for some other program, this error code might be returned.

When a program uses Committed Read isolation, it does not see a row
that has been marked for deletion; however, no lock is placed on a row
that is not read for update. BYTE or TEXT data is read in a second
step, after the row has been fetched. During this lengthy step, it is
possible for another program to delete the row and commit the deletion
and for the storage space to be reused. To determine if this has occurred,
the program should stop processing the BYTE or TEXT value and reread
the row. If the program can no longer read the other fields in the
row, the row has been deleted. If the program can still read the row,
the storage space is corrupted.


-165	ISAM error: TEXT or BYTE column does not exist.

This internal error should not occur. The database server has called
the isbcreate function for a table column that is not defined as BYTE
or TEXT. If the error recurs, note all circumstances and contact
IBM Technical Support.


-166	ISAM error: Storage space is full.

This operation attempts to insert or update the value of a BYTE or TEXT
column, but not enough space is available in the storage space in which
that column is stored. Roll back the current transaction, and terminate
the application. Then ask the database server administrator to add a
chunk of disk space to this storage space.

When BYTE and TEXT values are deleted or replaced, the pages that they
occupy in the storage space do not become available for reuse until the
logical log in which that transaction appears has been freed. A logical
log has been freed if the log is backed up to tape and all transactions
in the log are closed.


-167	ISAM error: Storage-space size is not multiple of PAGESIZE.

The database server administrator sees this error. When you define a
storage space, you must specify a page size that is an integral multiple of
the system page size. The system page size is set in the Parameters
screen when the database server is first initialized.


-168	ISAM error: archive is blocking storage space allocation.

Allocation of disk pages in a storage space is frozen while an online
archive is being made. Therefore, pages that contain TEXT or BYTE data
at the time that the archive began are not freed and overwritten by new
pages before they can be written to the archive tape. As soon as all
the used pages in the chunk are archived, allocation in that chunk can
resume. Normal row data can go on changing while the archive is being
made because changed dbspace pages can be written, or rewritten, on the
tape at any point.


-169	ISAM error: Pages for TEXT or BYTE data can't be allocated from
a chunk until chunk add is logged.

When a storage space containing TEXT or BYTE data has been extended by
adding a new chunk, no pages can be allocated until the log record
showing the addition of the chunk has been logged. If this rule were
not enforced, certain anomalies could occur during recovery. You do not
have to wait until the log is full; you can run the tbmode or onmode
utility with the -l option to force a switch to the next log.


-170	ISAM error: illegal use of a storage space for TEXT or BYTE data.

You attempted to add a log to a storage space for TEXT or BYTE data.
You can add logs only to dbspaces.


-171	ISAM error: ISAM file format change detected.

A program that uses a particular locking method or index-node size has
attempted to access an ISAM file that was created using a different
locking method or index-node size.

If you are migrating files from a platform that uses another index-node
size, you must run the bcheck or secheck utility with the -s option
against all of the ISAM files (.dat and .idx) to resize the index
nodes.

For IBM Informix SE, if you are migrating applications between platforms
that use different locking methods, you must set the environment
variable RESETLOCK to convert ISAM files as you access them. You can
access all files for a given database by running UPDATE STATISTICS in
that database, if time permits.

For C-ISAM applications, if you are migrating applications between
platforms that use different locking methods, you must set the
environment variable RESETLOCK to convert C-ISAM files as you access
them.


-172	ISAM error: Unexpected internal error.

You encountered an unanticipated internal event. Consult the online.log
to see if the diagnostics preserved any additional information
regarding this event. If the error recurs, refer to your Administrator's
Guide to acquire additional diagnostics. Contact IBM Technical Support
with the diagnostic information.


-173	ISAM error: An error has occurred during logical log back up.

This generic message indicates that the logical-log backup has failed.
The SQL API also contains useful error text that is associated with
this error.


-174	ISAM error: An error has occurred during archive back up.

This generic message indicates that the archive backup has failed. The
SQL API also contains useful error text that is associated with this
error.


-175	ISAM error: Cannot get lock while holding a buffer.

This message indicates an internal error when attempting to lock a
row while holding a buffer. The database server will attempt to
retry the operation.


-176	ISAM error: An error has occurred during physical restore.

This generic message indicates that the physical restore has failed.
The SQL API also contains useful error text that is associated with
this error.


-177	ISAM error: An error has occurred during logical restore.

This generic error indicates that the logical restore has failed. The
SQL API also contains useful error text that is associated with this
error.


-178	ISAM error: Database is locked; pending change to logging mode.

A request has been made to change the logging status of a database.
Until a level-0 archive is done for all the storage spaces that the
database uses, access to the database is blocked.


-179	ISAM error: No free disk space for sort.

While performing a sort, the database server did not find enough
contiguous free disk space to create necessary temporary files. You
might have insufficient disk space and need to make more disk space
available before you run the program again. You might have made an
error when you specified the names of temporary dbspaces in DBSPACETEMP
or directory names in PSORT_DBTEMP. Check the spelling of your
temporary space names as specified in DBSPACETEMP. If you specified
multiple temporary dbspaces, check that you used colons (:) or commas
(,) as delimiters.


-181	ISAM error: No Optical Subsystem connection.

The Optical subsystem is not present. This message usually means that
you requested an Optical operation on a database server that
is being used without the Optical subsystem or IBM Informix OnLine/Optical.


-182	ISAM error: Duplicate optical BLOBSpace name.

A storage space for TEXT or BYTE data has been defined with the same
name as an Optical family name.


-183	ISAM error: DDR log post processing is already active.

This message indicates an internal error when attempting to start 
DDR log post processing when it is already active.


-185	ISAM error: DDR log post processing is not active.

This message indicates that ER is down.


-186	ISAM error: Cannot open partition. Online create/drop index in progress.

The current operation is trying to open a partition on which a online 
create/drop index is in progress. Wait a short time, and try again. 

-187	ISAM error: User Defined Routine execution failed.

A user-defined routine (UDR) failed to execute properly. Typically, this
occurs when the UDR raises an error.

For more specific information, see the message log.


-188	ISAM error: Cannot add transaction logging on a DR primary with DR on.

Transaction logging cannot be added to a database on the primary
database server of a data replication (DR) pair while DR is in use.
DR has to be turned off for transaction logging to be added.

Adding transaction logging to a database after turning DR off requires
bringing up the DR pair again through a level-0 archive on the primary
database server and its physical restore on the secondary database
server. Restarting DR is necessary to avoid DR failures due to
inconsistencies between the primary and secondary database servers,
caused by the addition of transaction logging.


-190	ISAM error: Transaction table overflow.

No more slots are available in the transaction table. To see this
table, run onstat with the -x option.


-191	ISAM error: No such chunk.

The chunk that was specified to be dropped does not exist.


-192	ISAM error: Cannot drop first chunk.

The first chunk of a storage space is never a candidate to be
dropped. Select a different chunk.


-193	ISAM error: Chunk is busy.

Logical recovery cannot roll forward a chunk add because the chunk
already exists. This error results when the chunk is dropped from a
storage space, or the space is dropped, and the chunk is reused
for another storage space without a level-0 backup performed first.


-194	ISAM error: Chunk not empty.

A chunk is not empty and therefore cannot be dropped.


-195	ISAM error: No miscellaneous vp.

This message indicates that no VP exists for miscellaneous VP class.


-196	ISAM error: Operation not allowed in temporary dbspace.

An operation was executed on a temporary dbspace that required
functionality that temporary dbspaces do not provide (most likely
logging). Use a nontemporary dbspace for this operation.


-197	ISAM error: Cannot open a recently appended logged partition for writing.

A level-0 backup is needed before you can write to the target database. 
If this error recurs after a level-0 backup, note all circumstances and contact 
IBM Technical Support.


-198	Cannot alter table. Too many in-place alters of the table in progress.

Informix limits the number of outstanding in-place ALTER TABLE requests
to 255. A 256th in-place alter of a table was requested before the
completion of the first in-place alter. Completion means that all rows
of the table in the first in-place alter have been physically altered.

To recover from this error, you must take one of the following steps:

    *   Wait until the first in-place alter is complete, and issue
	another in-place ALTER TABLE statement.

    *   Change the format of the ALTER TABLE statement to request an
	alter that does not add columns to the end of the table. Such a
	statement will use the older algorithm instead of the in-place
	alter algorithm.

    *   Perform an update of each row in the table to force the
	outstanding alters to complete. Because rows are only modified
	to the latest schema as they are updated, the only way to force
	an in-place alter to complete physically is to update each row
	in the table. To accomplish this result, use a dummy update in
	which a column in the table is set to its own value. The dummy
	update forces the row to be updated to the latest schema in the
	process without actually changing column values. Rows are
	always altered to the latest schema, so a single pass through
	the table that updates all rows will complete all outstanding
	in-place alters.


-199	ISAM error: Dbspace is full.

The dbspace is full. If you are adding a logical log through onparams, there
is not enough space in the dbspace for a log of the size specified. This
error also occurs if you attempt to create a temporary table with log
(the default log setting for temporary tables) when the DBSPACETEMP variable
in ONCONFIG is set to TEMP or NOTCRITICAL. 

To add the logical log, either add one or more chunks to the dbspace or
specify a smaller log size.

To create temporary tables, either set DBSPACETEMP to ALL or create
temporary tables with no log.

-199	Smart Disk Error.

An error has occurred with the Smart Disk system. For more information,
see the accompanying message.


-200	Identifier is too long.

An SQL identifier exceeded the maximum number of characters. In IBM Informix
Dynamic Server 9.2x or later, the maximum length for identifiers in SQL
statements is 128 characters. In other Informix database servers, the
maximum length for identifiers in SQL statements is 18 characters.

Check that no identifier in the statement is longer than the maximum
length and that no punctuation error, such as a missing space or comma,
combines two identifiers into one.


-201	A syntax error has occurred.

This general error message indicates mistakes in the form of an SQL
statement. Look for missing or extra punctuation (such as missing or
extra commas, omission of parentheses around a subquery, and so on),
keywords misspelled (such as VALEUS for VALUES), keywords misused (such
as SET in an INSERT statement or INTO in a subquery), keywords out of
sequence (such as a condition of "value IS NOT" instead of "NOT value
IS"), or a reserved word used as an identifier.

Database servers that provide full NIST compliance do not reserve any
words; queries that work with these database servers might fail and
return error -201 when they are used with earlier versions of IBM Informix
database servers.

The cause of this error might be an attempt to use round-robin syntax with
CREATE INDEX or ALTER FRAGMENT INIT on an index. You cannot use round-robin
indexes.

The error may also occur if an SQL statement uses double quotation marks 
around input strings and the environment variable DELIMIDENT is set. 
If DELIMIDENT is set, strings that are surrounded by double quotation 
marks are regarded as SQL identifiers rather than string literals. For 
more information on the usage of DELIMIDENT, see the IBM Informix Guide to 
SQL: Reference.


-202	An illegal character has been found in the statement.

A character that cannot be interpreted as part of an SQL statement is
embedded in this statement. If a program constructed the statement, the
character might be a nonprinting control character. Make sure the
statement contains only printable ASCII characters, and reexecute it.


-203	An illegal integer has been found in the statement.

Where an integer value is expected, an unacceptable numeric constant
appears. Inspect the statement and look for numbers that should be
integers but that contain a decimal point or the letter e or that are
larger than 2,147,483,647 ((2 to the 31st power) - 1).


-204	An illegal floating point number has been found in the statement.

A numeric constant that is punctuated like a floating-point number
(with a decimal point and/or an exponent starting with e) is
unacceptable. Possibly the exponent is larger than can be processed.


-205	The statement failed because you cannot use ROWID for views with union, 
intersect, minus, aggregates, group by, multiple tables, or derived tables.

The keyword ROWID stands for a virtual column that exists only in
simple tables. This message refers to the ROWID of a table that is
actually a view that is based on a selection involving union/intersect/minus, 
aggregate functions, grouping, a join of two or more tables, or derived 
expressions. Such query products do not have ROWID columns. Therefore this 
view does not have a ROWID, even though it appears to be a table. In order to 
use ROWID in a query, you have to apply the query to the tables that underlie 
the view.


-206	The specified table <table-name> is not in the database.

The database server cannot find a table or view specified in the statement.
The table or view might have been renamed or dropped from the database.

You might also get this message if you omit the keyword "TYPE" when you are
trying to grant USAGE privileges on a user-defined type. For example, the
following GRANT statement is correct:

   GRANT USAGE ON TYPE person_row_type TO usr2;

The following GRANT statement, however, generates error -206:

   GRANT USAGE ON person_row_type TO usr2;

Check the names of tables and views in the statement or check for omission
of the keyword "TYPE" in a GRANT statement. If the names are spelled as you
intended and "TYPE" is not missing, check that you are using the database
you want. To find the names of all tables in the database, query the 
systables table. To find the names of all views, query the sysviews table.


-207	Cannot update cursor declared on more than one table.

The cursor that is used in this statement was declared FOR UPDATE but
with a SELECT statement that joins two or more tables. This action is
not supported; the database server does not know how to distribute
update values across multiple tables. If you declared the SELECT
statement with the cursor, modify either it or the FOR UPDATE clause.
If a program constructed the SELECT statement and associated it with
the cursor dynamically, the program should inform its user not to use a
multitable SELECT statement in this application. (This message occurs
only with Version 4.0 or earlier.)


-207	Cannot declare a SELECT INTO statement FOR UPDATE.

When you declare a cursor, you may not use both the INTO clause and the
FOR UPDATE clause. To use this cursor to update selected rows, omit the
INTO clause. Instead, use an INTO clause on the FETCH statement (or in
4GL, the FOREACH statement).


-208	Memory allocation failed during query processing.

The database server needed to allocate data-space memory in order to
process the query, but none was available. This error may reflect a
hardware limit, an operating-system configuration limit, or a temporary
shortage of space.

Try the query again after a delay. If it still fails, consult your
system administrator. If possible, revise your query to join fewer
tables, to order or group on fewer columns, or to operate in two or
more separate statements. On DOS systems, exit to the operating-system
command line, free some disk space or reduce the complexity of your
program, and resubmit the program.

In versions later than 5.01, only this error message informs you that
the database server is unable to allocate memory.


-209	Incompatible database format.

An obsolete version of the database software built this database.
Convert the database to work with the current software. Use the
dbupdate utility. You will have to run it before you use the data.
(This message is not current since Version 4.0.)


-210	Explicit path name too long.

This statement contains a file pathname that exceeds the maximum length
of 64 characters. Inspect the statement to make sure that the pathname
is that long. It is possible a punctuation error caused other
parts of the statement to be included in the pathname. If this is not
the case, either relocate the file or rename some directories along the 
path with shorter names.


-211	Cannot read system catalog <error-text>.

The database server refers to the tables of the system catalog while it
processes most statements. When it cannot read one of these important
tables, a serious error results. Check the accompanying ISAM error code
for more information. The effect of the error depends on the statement
that is being executed and the particular table, as follows:

    *   CREATE TABLE statement, systabauth not read; the table is
	created, but PUBLIC is not granted authorization as it normally
	is.

    *   DROP TABLE statement, systables not read; no action taken.

    *   DROP TABLE statement, sysviews not read; the table is dropped
	but any views that depended on the table were not automatically
	dropped.

    *   DROP VIEW statement, sysviews not read; no action taken.

    *   DROP INDEX statement, sysindexes or systables not read; no
	action taken.

    *   DROP SYNONYM statement, systables or syssynonyms not read; no
	action taken.

    *   DROP DATABASE statement, systables not read; no action taken.

    *   START DATABASE statement, systables not read; no action taken.

    *   DATABASE statement, systables or sysusers not read; the
	database was not selected (no current database; for subsequent
	operations, see error -349). If this error was accompanied by 
        ISAM error 103, try setting GL_USEGLU=1 in your environment 
        before starting the instance.

Other statements might be partially complete before the error is detected.
Roll back the current transaction and then investigate the cause of the
error. Use the oncheck utility (secheck with IBM Informix SE or oncheck with
IBM Informix OnLine) to check and repair indexes. If necessary, restore the
database from backup and logical-log tapes.


-212	Cannot add index.

This statement attempts to add an index, either explicitly with CREATE
INDEX or implicitly as part of processing a SELECT on multiple
unindexed tables. In any case, some error prevents the index from being
created. For more information, check the accompanying ISAM error code.
Insufficient disk space is a common cause of this problem.


-213	Statement interrupted by user.

The database server received an interrupt signal from the user,
probably because the user pressed the interrupt key (usually Delete or
Control-C). The statement ended early. A program should roll back the
current transaction and terminate gracefully. If the statement could
modify a table, an interactive user should execute the ROLLBACK WORK
statement to remove any partial modifications.


-214	Cannot remove file for table table-name.

The database server cannot completely remove the table. Check the
accompanying ISAM error code for more information. Problems with
operating-system file permissions, read-only files, or hardware might
cause this error.


-215	Cannot open file for table table-name.

The database server cannot open the operating-system file or files in
which the table is stored. Check the accompanying ISAM error code for
more information. Problems with operating-system file permissions,
insufficient memory, or hardware might cause this error.


-216	Cannot remove index.

The database server cannot completely drop an index. Check the
accompanying ISAM error code for more information. Problems with
operating-system file permissions, read-only files, or hardware
might cause this error.


-217	Column column-name not found in any table in the query
(or SLV is undefined).

The name appears in the select list or WHERE clause of this query but is
not defined in a table and does not appear as a statement local variable
(SLV) definition. Check that the column name or SLV name and the names of
the selected tables are spelled as you intended.

If all names are spelled correctly, you are not using the right tables,
the database has been changed, or you have not defined the SLV. If the
name not found is a reference to a column, that column might have been
renamed or dropped. If the name not found represents an SLV and you
defined the SLV in the statement, make sure that the SLV definition
appears before all other references to that SLV name.

This error message can also appear during the execution of an ALTER TABLE
statement when the engine tries to update views that depend on the table.


-218	Synonym synonym-name not found.

The synonym is not defined in this database. Check that the name is
spelled as you intended. Check that you are using the right database.
If so, the synonym was probably dropped. Possibly it was dropped
automatically when the table for which it stood was dropped. To display
all defined synonyms, query systables as follows:

SELECT tabname FROM systables WHERE tabtype = 's'


-219	Wildcard matching may not be used with non-character types.

The WHERE clause in this statement includes a test of a noncharacter
column using the LIKE or MATCHES keyword and the special characters
that stand for multiple characters (for example, asterisk and question
mark in MATCHES and percent and underscore with LIKE). Use these tests
only with columns that are defined as CHAR or VARCHAR in the database.
No automatic data conversion is provided. Check that the columns in the
WHERE clause are as you intended. If so, the definition of the table
has probably changed.


-220	There is no FROM clause in the query.

Every SELECT statement must include a FROM clause to name the table or
tables that it queries. Check that FROM was spelled and that no extra
semicolon ends the statement prematurely. To select only a constant, or
to select the only value of a function that is unrelated to any table
(such as USER or TODAY), you nevertheless have to name a table. You can
select a known row from a system catalog, as in this example.

SELECT 'today is', TODAY, 'and I am', USER FROM systables
        WHERE tabid = 100

The tabid value of the first user-defined table in a database is always
100, so this query always returns exactly one row if any tables are
defined. (Version 4.1 and later produce syntax error -201 when the
FROM clause is missing.)


-220	Cannot begin savepoint.

Version 4.1 and later can detect this internal error. If the error
recurs, note all circumstances and contact IBM Technical Support.


-221	Cannot build temporary file for new table table-name.

The database server cannot create a temporary disk file. The file
should be created in the directory specified by the DBTEMP environment
variable. If DBTEMP is not defined, the database server searches by
default in the root directory for a subdirectory named tmp in which to
create the temporary disk file. Check the accompanying ISAM error code,
and look for operating-system error messages that might give more
information. Possibly your account does not have write permission in
that directory, or the disk might be full. Since Version 5.01,
IBM Informix SE database server uses the DBTEMP environment variable, but
IBM Informix Dynamic Server and IBM Informix OnLine Dynamic Server do not.


-222	Cannot write to temporary file for new table table-name.

The database server created a temporary disk file but received an error
while it attempted to write into the file. Check the accompanying ISAM
error code, and look for operating-system messages that might give more
information. On UNIX systems, the file should have been created in the
directory specified by the DBTEMP environment variable (/tmp by
default); on DOS systems, the file should be in the current directory.
Possibly that disk is full, or a hardware error occurred. Since Version
5.01, the IBM Informix SE database server uses the DBTEMP environment
variable, but IBM Informix Dynamic Server and IBM Informix OnLine Dynamic
Server do not.


-223	Duplicate table name table-name in the FROM clause.

The table name appears twice in the list that follows the word FROM.
Review the statement to see if you intended to name some other table
the second time. If you intended to join a table to itself, use a table
alias for the second and subsequent instances of the table. The
following example shows one way to find customers with the same last
name:

SELECT main.lname, main.customer_num, sub.customer_num FROM customer
main, customer sub WHERE main.lname = sub.lname AND main.rowid !=
sub.rowid

When you use table aliases (the words main and sub in the example), the
table may be selected from two or more times.


-224	Cannot open transaction log file.

The database server cannot open the file in which transaction-log
entries are made. No transactions can start until this file is
repaired. (In an ANSI-compliant database, nothing can be done; in other
databases, only queries can be made.) Report this problem to the
database server administrator. For IBM Informix SE database servers, check
the accompanying ISAM error code, and look for operating-system error
messages that might give more information. A START DATABASE statement
specifies the path to the log file. If the file has been deleted, you
can re-create it as an empty file. If the path has changed, you can
issue a new START DATABASE statement to redefine it.


-225	Cannot create file for system catalog table-name.

The database server is trying to create one of the tables for the
system catalog, probably as part of a CREATE DATABASE statement. A
problem with the host operating system prevents it. Check the
accompanying ISAM error code for more information, and look for
operating-system error messages. A shortage of disk space or
operating-system file-access permission problems probably caused this
error.


-226	Cannot create index for system catalog table-name.

The database server is trying to create one of the tables for the
system catalog, probably as part of a CREATE DATABASE statement. It
created the table, but a problem with the host operating system
prevents it from making an index. Check the accompanying ISAM error
code for more information, and look for operating-system error
messages. Insufficient disk space probably caused this error.


-227	DDL operations on ROWID prohibited.

This statement attempts to change the column named ROWID. That column
is a part of every table except a fragmented table. You can select it
with a SELECT statement and compare it in a WHERE clause, but you
cannot alter it with a DDL statement.


-228	UPDATE or INSERT on ROWID prohibited.

This statement names the column ROWID in the list of columns for
insertion or update. The row ID is an intrinsic property that cannot be
modified. You can select it in a SELECT statement and compare it in a
WHERE clause, but you cannot modify its contents.


-229	Could not open or create a temporary file.

The database server cannot create a temporary disk file. The file
should be created in the directory that the DBTEMP environment variable
specifies (or /tmp by default on UNIX systems). Check the accompanying
ISAM error code and look for operating-system error messages that
might give more information. Possibly your account does not have write
permission in that directory, or the disk is full. Since Version 5.01,
the IBM Informix SE database server uses the DBTEMP environment variable,
but IBM Informix Dynamic Server and IBM Informix OnLine Dynamic Server do not.

On a UNIX system, try increasing the maximum number of open files
(NFILES parameter on some systems) to approximately 400.


-230	Could not read a temporary file.

The database server created a temporary file in the directory specified
by the DBTEMP environment variable (or /tmp by default on UNIX systems)
but encountered an error when it tried to read the file back. Check the
accompanying ISAM error code, and look for operating-system error
messages that might give more information. Possibly a hardware failure
occurred, or possibly another user erased the temporary file
accidentally. Since Version 5.01, the IBM Informix  SE database server uses
the DBTEMP environment variable, but IBM Informix Dynamic Server and
IBM Informix OnLine Dynamic Server do not.


-231	Cannot perform aggregate function with distinct on expression.

This statement selects DISTINCT (expression) within an aggregate
function. This action is not supported. Select the DISTINCT value and
other columns into a temporary table; then select ALL from that table
applying the aggregate function.


-232	A SERIAL column column-name may not be updated.

You cannot alter the contents of a column with the SERIAL or SERIAL8 or
BIGSERIAL data type in the UPDATE statement, even when the updating value 
is zero. (You can specify a value of zero for a serial column when you use 
the INSERT statement; the database server ignores the zero and inserts a 
generated number.) Revise the statement so that only nonserial columns are
updated.


-233	Cannot read record that is locked by another user.

Another user has locked a row that this statement selects. If you
executed the statement interactively, you can do one of two things. You
can wait a short time and reenter the statement. Or you can execute the
statement SET LOCK MODE TO WAIT, after which you will rarely see this
message again.

In a program, you should roll back the current transaction, wait for an
interval of random length, and rerun the transaction. If you run the
transaction with a LOCK MODE of WAIT, you can reduce the frequency of
this error. But it can still arise in some cases, such as when deadlock
is detected. An ISAM error code (-107, -113, -134, -143, -144, or
-154) usually accompanies this error, and a program might need to make
a different response to each of these errors.


-234	Cannot insert into virtual column column-name.

This INSERT statement is directed to a view, not to a real table, and
one of the columns that is defined in the view is actually the value of
an expression. Insertions and updates are not allowed on views that
have such columns. Apply the INSERT to the real table on which the
view is based.


-235	Character column size is too big.

This statement specifies a width for a column of CHAR data type that is
greater than 32,767, or a width for a VARCHAR column that exceeds 255.
If you need a column of this size, use the TEXT data type, which allows
unlimited lengths. Otherwise, inspect the statement for typographical
errors.


-236	Number of columns in INSERT does not match number of VALUES.

Each column that is named or implied in an INSERT statement must have a
separate value expression. If the statement does not list specific
columns, review the definition of the table for the number of columns
and their data types. Also check that the list of expressions in the
VALUES clause has no extra or missing comma that might result in an
incorrect number of values. Be especially careful of long character
strings and expressions with parentheses.


-237	Cannot begin work.

The database server cannot execute a BEGIN WORK statement. Check the
accompanying ISAM error code for more information. A problem probably
exits in accessing the transaction log.


-238	Cannot commit work.

The database server cannot execute a COMMIT WORK statement. Check the
accompanying ISAM error code for more information. A problem probably
exists in accessing the transaction log.


-239	Could not insert new row - duplicate value in a UNIQUE INDEX
column.

The row that is being inserted (or being updated to have a new primary key)
contains a duplicate value of some row that already exists, in a column or
columns that are constrained to have unique values. Another cause of this
error might be a locking conflict if the table lock mode is page. The new
or updated row is not inserted.

Roll back the current transaction and execute it again without any
duplicate rows or with the locking conflict resolved.

If you are using repeatable read isolation, then the error could be due
to a unique constraint being violated. Refer to error -268.


-240	Could not delete a row.

The database server cannot finish execution of a DELETE statement. Roll
back the current transaction; then check the accompanying ISAM error
code for more specific information.


-241	Cannot rollback work.

The database server cannot execute a ROLLBACK WORK statement. Check the
accompanying ISAM error code for more information. A problem probably
exists in accessing the transaction log.


-242	Could not open database table table-name.

The database server cannot begin reading a table. Check the
accompanying ISAM error code for more information. The problem might be
file permissions, a hardware error, or a corrupted system catalog.
Unless the ISAM error code or an operating-system message points to
another cause, run the bcheck or secheck utility to verify file
integrity.


-243	Could not position within a table table-name.

The database server cannot set the file position to a particular row
within the file that represents a table. Check the accompanying ISAM
error code for more information. A hardware error might have occurred,
or the table or index might have been corrupted (truncated). Unless the
ISAM error code or an operating-system message points to another cause, 
run the oncheck utility (secheck with IBM Informix SE or tbcheck with 
IBM Informix OnLine) to check and repair table and index. 


-244	Could not do a physical-order read to fetch next row.

The database server cannot read the disk page that contains a row of a
table. Check the accompanying ISAM error code for more information. A
hardware problem might exist, or the table or index might have been corrupted. 
If the query was using the dirty read isolation level, this error code may be
normal behavior caused by reading data that was in a temporarily inconsistent
state from a concurrent update on the same data.

Unless the ISAM error code or an operating-system message points to another 
cause, run the oncheck utility (secheck with IBM Informix SE or tbcheck with 
IBM Informix OnLine) to check and repair table and index. 


-245	Could not position within a file via an index.

The database server encountered an error when it attempted to look up a
row through an index. Check the accompanying ISAM error code for more
information. The table file or the index file might have been
corrupted. Unless the ISAM error code or an operating-system message
points to another cause, run the oncheck utility (secheck with IBM Informix 
SE or tbcheck with IBM Informix OnLine) to check and repair table and index.


-246	Could not do an indexed read to get the next row.

The database server encountered an error when it attempted to look up a
row through an index. Check the accompanying ISAM error code for more
information. The table file or the index file might have been
corrupted. Unless the ISAM error code or an operating-system message
points to another cause, run the oncheck utility (secheck with IBM Informix 
SE or tbcheck with IBM Informix OnLine) to check and repair table and index.


-247	Rollforward database failed.

The database server could not apply an audit trail to roll a database
forward. Check the accompanying ISAM error code for more information.


-248	Cannot commit savepoint.

Version 4.1 and later products can detect this internal error. If the
error recurs, note all circumstances and contact
IBM Technical Support.


-249	Virtual column must have explicit name.

When you select INTO TEMP, you are creating a table. As with any table,
the columns of a temporary table must all have names. When you select a
single column, the column in the temporary table receives the same
name. When you select an expression, you must supply a name using a
column alias, as in the following example:

SELECT order_num, ship_date, ship_date + 14 expected
        FROM orders INTO TEMP ord_dates

The temporary table ord_dates has three columns, which are named
order_num, ship_date, and expected. The same principle applies to a
view: each column must have a name. When you select every column of a
view from a table, the view can have the same column names by default.
When you derive any column of a view from an expression, you must give
all the columns explicit names, as in the following example:

CREATE VIEW ord_dates(order_num, ship_date, expected)
        AS SELECT order_num, ship_date, ship_date + 14 FROM orders


-250	Cannot read record from file for update.

The database server cannot get a row of a table prior to update. Check
the accompanying ISAM error code for more information. Possibly another
user has locked the row or the table, or possibly a more serious
problem exists.


-251	ORDER BY or GROUP BY column number is too big.

The ORDER BY or GROUP BY clause uses column-sequence numbers, and at
least one of them is larger than the count of columns in the select
list. Check that you entered the clause correctly and that you did not
omit an item from the select list.


-252	Cannot get system information for table.

The database server cannot access system information associated with the
table. Check the accompanying ISAM error code for more information.
Unless the ISAM error code or an operating-system message points to
another cause, run the oncheck utility to verify file integrity.


-253	Identifier length exceeds the maximum allowed by this version
of the server.

An SQL identifier exceeded the maximum number of characters. In IBM Informix
Dynamic Server 9.2x or later, the maximum length for identifiers in SQL
statements is 128 characters. In other Informix database servers, the maximum
length for identifiers in SQL statements is 18 characters.

Check that no identifier in the statement is longer than the maximum
length and that no punctuation error, such as a missing space or comma,
combines two identifiers into one.


-254	Too many or too few host variables given.

The number of host variables that you named in the INTO clause of this
statement does not match the number of columns that you referenced in
the statement.

Locate the text of the statement (in a PREPARE or DECLARE statement) and
verify the number of placeholders. Then review the list in the INTO clause
to see which item or items are incorrect.


-255	Not in transaction.

The database server cannot execute this COMMIT WORK or ROLLBACK WORK
statement because no BEGIN WORK was executed to start a transaction.
Because no transaction was started, you cannot end one. Any database
modifications that were made are now permanent; they cannot be rolled
back but do not need to be committed. Review the sequence of SQL
statements to see where the transaction should have started.

This error can occur when you open a cursor for update and have not started
a transaction yet.


-256	Transaction not available.

You cannot begin a transaction in this database because it does not
have a transaction log. In order to support transactions, you must
start a transaction log. Refer to your Administrator's Guide for
information on how to start a transaction log.


-257	System limit on maximum number of statements exceeded, maximum is
count.

The database server can handle only a fixed number of prepared SQL
statements for each user. This limit includes statements that were
prepared with the PREPARE statement and cursors that were declared with
the DECLARE statement. This statement (PREPARE, DECLARE, or PREPARE
IMMEDIATE) exceeds that limit and is not executed. The FREE statement
releases prepared statements. Review the logic of your program, and
change it so that it frees prepared statements when it no longer needs
them.

Version 5.0 and later database servers do not have this restriction.
However, programs that must be compatible with earlier versions should
use FREE to stay under the limit.


-258	System error - invalid statement id received by the sqlexec
process.

The current statement (EXECUTE or OPEN) refers to a prepared SQL
statement or a cursor that does not exist. Possibly the statement id is
invalid, or possibly the statement was prepared and then released with
the FREE statement. Review the program logic to make sure that the
statement or cursor that is named in this statement is valid, has been
properly prepared or declared, and has not been freed prior to this
point.

If the program executes a prepared DATABASE statement successfully, the
database server automatically frees the prepared statement. As a
result, if you free a prepared DATABASE statement, you will receive
this error on the FREE statement. You can ignore it in this case.


-259	Cursor not open.

The current statement refers to a cursor that has not been opened.
Review the logic of the program to see how it failed to execute the
OPEN statement before it reached this point. Statements that end
transactions (COMMIT WORK and ROLLBACK WORK) also close cursors unless
the cursors are declared WITH HOLD.


-260	Cannot execute a SELECT statement that is PREPAREd - must use
cursor.

Although you can prepare a SELECT statement, the only way you can then
execute that SELECT statement is to associate its statement id with a
cursor (use a DECLARE statement) and then open the cursor.

An important exception is the SELECTINTO TEMP statement, which you can
execute. You cannot use it with a cursor.

You can execute other prepared statements with the EXECUTE statement.
If you know the contents of this SELECT statement at the time you are
writing the program, and if you are certain that it will return only a
single row of data, you can embed it in the program. If it must be
prepared dynamically while the program is running, revise your program
to execute it through a cursor.


-261	Cannot create file for table table-name.

In general, the database server cannot create the file that will
represent this table. Check the accompanying ISAM error code for more
information. The file would be created in the database.dbs directory
(unless you supplied an IN pathname clause) with IBM Informix SE. Its
filename would begin with the first few letters of table-name,
followed by a 3-digit number and the suffix .dat, or .idx.
With IBM Informix SE, a problem might exist with file permissions, or
possibly the disk is full.

IBM Informix Dynamic Server, IBM Informix Universal Server, and IBM Informix OnLine
Dynamic Server allow table fragmentation, which might involve extensive use
of dbspaces. You need to check the dbspace that was specified for the table.
If no dbspace was specified, then the dbspace in which the database was
created is used. For database creation, if no dbspace is specified, then the
rootdbs is used. The specified dbspace might not exist, or the disk might be
full.


-262	There is no current cursor.

This internal error should not occur. Note all the details of the
network software in use and the version number of the database servers
in this and the other host system. If the error recurs, note all
circumstances and contact IBM Technical Support.


-263	Could not lock row for UPDATE.

This statement, probably a FETCH statement that names a cursor
declared FOR UPDATE, failed because the row it should have fetched
could not be locked. Check the accompanying ISAM error code
(usually -107, -113,-134, -143, -144, or -154) for more information.
Probably another program is using the row (-107) or table (-113). You
can use SET LOCKMODE TO WAIT to eliminate these errors, but detection
of deadlock (-143 or -154) and lock table full (-134) can still occur.


-264	Could not write to a temporary file.

The database server created a temporary file in the directory that the
DBTEMP environment variable (or /tmp by default on UNIX systems)
specifies, but it encountered an error when it tried to write data into
the file. To determine the cause of this error, check the accompanying ISAM
error code and look for operating-system error messages that might give 
more invormation.  Possible causes include: hardware failure, a full
disk, or, if PDQ is enabled, insufficient shared memory.


-265	Load or insert cursors must be run within a transaction.

You attempted to open an insert cursor. This database has a transaction
log. In such a database, you must execute a BEGIN WORK statement
before you open a cursor that is declared with an INSERT statement or
with the FOR UPDATE clause. Revise the logic of your program so that it
starts a transaction before it opens the cursor.

You can ensure that the program also works in databases that do not
have a transaction log. Change the program so that immediately after it
executes the DATABASE statement, it saves the contents of the second
element of the SQLAWARN array of warning flags in the SQL
communications area. This element will contain a space if the database
does not use transactions, and the letter W if it uses them. At each
point where a transaction logically begins or ends, test the saved
value. If it contains W, execute the transaction statement to begin or
end a transaction.


-266	There is no current row for UPDATE/DELETE cursor.

The current statement uses the WHERE CURRENT OF cursor-name clause, but
that cursor has not yet been associated with a current row. Either no
FETCH statement has been executed since it was opened, or the most
recent fetch resulted in an error so that no row was returned. Revise
the logic of the program so that it always successfully fetches a row
before it executes this statement.


-267	The cursor has been previously released and is unavailable.

The FREE statement released the resources that are attached to the
cursor named in this statement, or possibly an automatic re-prepare 
was attempted while opening the cursor and it failed, leaving the cursor
unavailable. Before you can use the cursor, you must again prepare the SQL 
statement that is associated with it. If the cursor was declared FOR a 
statement, re-execute its DECLARE statement. If the cursor was declared FOR 
a statement identifier, execute the PREPARE statement again.


-268	Unique constraint <constraint-name> violated.

During execution of this statement, a duplicate value was introduced
into a column or columns that a unique constraint protects. The row
with the duplicate value was not allowed into the table (not inserted
or not updated). For IBM Informix Dynamic Server, any changes that this statement
made prior to the discovery of the duplicate value have been rolled back. (The
effects of preceding statements in the transaction, if there were any, remain
in effect. They must be explicitly rolled back or committed.)

This error occurs in a logging database. However, if you are using
repeatable read isolation, error -239 will display instead.


-269	Cannot add column column-name that does not accept nulls.

This statement requests a new column that has the NOT NULL constraint.
However, when a column is added to an existing table, null values have
to be installed in the existing rows. Define a new table that includes
this column, then INSERT the data from the old table into it to provide
some suitable nonnull values for this column.


-270	Could not position within a temporary file.

The database server created a temporary file in the directory specified
by the DBTEMP environment variable (or /tmp by default on UNIX systems)
but encountered an error when it tried to position (seek) within it.
Check the accompanying ISAM error code, and look for operating-system
error messages that might give more information. Possibly a hardware
failure occurred, or another user truncated the file. Since Version
5.01, the IBM Informix SE database server uses the DBTEMP environment
variable, but IBM Informix Dynamic Server and IBM Informix OnLine Dynamic Server
do not.


-271	Could not insert new row into the table.

This problem has many possible causes, including a locked table or a
full disk. Check the accompanying ISAM error code for more
information.


-272	No SELECT permission for table/column.

The person who created this table has not granted Select privilege to
your account name or to the public for the table or the column. The 
owner of the table or the DBA must grant this privilege before you can 
select data from the table or column.

This error message may also occur if you are using the LOAD command in
DB-Access because DB-Access uses the SELECT command to get information
about a table before loading or inserting rows.


-273	No UPDATE permission for table/column.

The person who created this table has not granted Update privilege to
your account name or to the public for the table or the column. The 
owner of the table or the DBA must grant this privilege before you can 
update a row in this table or update the column.


-274	No DELETE permission for table.

The person who created this table has not granted Delete privilege to
your account name or to the public. The owner of the table or the DBA
must grant this privilege before you can delete a row in this table.


-275	The Insert privilege is required for this operation.

The Insert access privilege on this table or column is not currently
held by your account name, nor by the PUBLIC group, nor by your current
role. The owner of the table or the DBA must grant the Insert privilege
before you can insert a row into this table.

This error is also returned when you attempt to insert a row into a view
that is not updatable. A view is not updatable unless all of the following
conditions are true:
  1.  All of the columns in the view are from a single table.
  2.  No columns in the projection list are aggregate values.
  3.  No UNIQUE or DISTINCT keyword is in the SELECT projection list.
  4.  No GROUP BY clause nor UNION, INTERSECT, or MINUS operator is in the view 
      definition.
  5.  The query selects no calculated values and no literal values.

If only the first condition is false, and you hold the Insert and
Select access privileges on all of the columns in the view, then
you can define on the view an INSTEAD OF trigger whose triggered
action inserts values into the base tables of the view, and use the
trigger to perform the update.


-276	Cursor not found.

The cursor that is named in this statement was not declared in the
current session. The current session runs from the execution of a
DATABASE statement to the next DATABASE or CLOSE DATABASE statement.
Review the logic of the program to see that it executes the DECLARE
statement for this cursor after the DATABASE statement.


-277	UPDATE table table-name is not the same as the cursor table.

This UPDATE WHERE CURRENT OF cursor statement refers to a different
table than the table referenced by the SELECT statement that was
declared with the cursor. Review the program logic to make sure that an
update through a cursor updates only the table that the cursor is
reading. This message also applies to cursor statements that use DELETE
WHERE CURRENT OF.


-278	Cannot rollback savepoint.

This is an internal error. If the error recurs, please note all 
circumstances and contact IBM Technical Support.


-279	Cannot grant or revoke database privileges for table or view.

This statement names one or more of the database-level privileges
(CONNECT, RESOURCE, and DBA), but it also uses the ON table-name
clause. A statement that does not mention a particular table (does not
contain the ON clause) must grant or revoke the database-level
privileges. The table-level privileges such as INSERT require an ON
clause. Do not mix the two kinds in the same statement.


-280	A quoted string exceeds 256 bytes.

A character literal in this statement exceeds the maximum length. Check
the punctuation and length of all quoted strings in the statement.
Possibly two missing quotes make a long string out of two short ones.
You must revise the statement to use a shorter character string.


-281	Could not add index to a temporary table.

Check the accompanying ISAM error code to find out the specific
problem, and look for operating-system error messages that might give
more information. Possibly the disk is full.


-282	Found a quote for which there is no matching quote.

Inspect the current statement, examining the punctuation of all quoted
strings. To include the quote character in a literal string, use single
apostrophes as string delimiters, as in the following example:

SELECT '"', fname,'"', "''", lname, "''" FROM customer


-283	Found a non-terminated comment ("{" with no matching "}").

Inspect the current statement, and examine the punctuation of comments
and quoted strings. You can use curly braces to insert comments into
SQL statements, but the braces must balance. Or you can use the
double-hyphen to append comments to the end of a line.


-284	A subquery has returned not exactly one row.

A subquery that is used in an expression in the place of a literal
value must return only a single row and a single column. In this
statement, a subquery has returned more than one row, and the database
server cannot choose which returned value to use in the expression. You
can ensure that a subquery will always return a single row. Use a WHERE
clause that tests for equality on a column that has a unique index. Or
select only an aggregate function. Review the subqueries, and check
that they can return only a single row.

This error can also occur when you use a singleton SELECT statement to
retrieve multiple rows. You must use the DECLARE/OPEN/FETCH series of
statements or the EXECUTE INTO statement to retrieve multiple rows.


-285	Invalid cursor received by sqlexec.

The cursor that this statement uses has not been properly declared or
prepared, or the FREE statement has released it, or an automatic re-prepare
has been attempted while opening the cursor but that operation failed,
leaving the cursor unavailable. Review the program logic to ensure that the
cursor has been declared. If it has, and if the DECLARE statement refers to
a statement identifier, check that the referenced statement has been prepared.


-286	Default value of the primary key column column-name is NULL.

A column that is part of a primary key cannot have null as its default
value.


-287	Cannot add serial column column-name to table.

You cannot add a column of SERIAL or SERIAL8 or BIGSERIAL data type to 
an existing table. Such columns may not contain null values, but when 
you add a column, the database server must put null values in all 
existing rows. You can add a serial column in three steps. First, add 
the column with an INTEGER data type. Then update the table with nonnull, 
unique values in each row of the new column. Finally, use ALTER TABLE 
MODIFY to change the data type of the column to SERIAL or SERIAL8 or BIGSERIAL.


-288	Table table-name not locked by current user.

This UNLOCK TABLE statement names a table that has not been locked. If
you locked the table earlier, it has already been unlocked. Tables are
unlocked automatically when a transaction ends or when the database is
closed. If another user locked the table, you cannot unlock it.


-289	Cannot lock table table-name in requested mode.

The table is already locked in exclusive mode. You will have to wait
for the table to be unlocked before you proceed.


-290	Cursor not declared with FOR UPDATE clause.

This statement attempts to update with a cursor that was not declared
for update. The database server does not allow this action, as both a
security measure that is designed to prevent program errors and a
performance feature. To use a cursor with the UPDATE or DELETE
statements, you must declare it for update. Review the program logic to
make sure that this statement uses the intended cursor.

In an ANSI-compliant database, any cursor can be used for updating; the
FOR UPDATE clause is not required (and generates a warning).


-291	Cannot change lock mode of table.

The current LOCK TABLE statement cannot be executed because you have
already locked the same table using a different mode (EXCLUSIVE or
SHARE). To change the lock mode, arrange to unlock the table before
you lock it again.


-292	An implied insert column column-name does not accept NULLs.

This INSERT statement does not supply values for all the columns in the
table. At least one of the columns that it omits is constrained to be
not null. Because the database server would have to insert a null value
for every unmentioned column, it cannot perform this insert. Review the
statement against the definition of the table. Possibly the definition
of the table has been changed.


-293	IS [NOT] NULL predicate may be used only with simple
columns.

The test for a null value can be applied only to a column name (not to
a subscripted character column or an expression, for example).

Review the use of these keywords in the WHERE clause and in any CASE
statements.

This message does not apply to 8.21 and later 8.x database servers,
which allow expressions as arguments of the IS [NOT] NULL operator.


-294	The column column-name must be in the GROUP BY list.

In a grouping SELECT, you must list every nonaggregate column in the
GROUP BY clause to ensure that a well-defined value exists for each
selected column in each grouped row. A column contains either a single
aggregate value or a value unique to that group. If a selected column
were neither an aggregate nor in the list, two or more values for that
column might possibly exist in some group, and the database server
could not choose which value to display. Revise the query to include
either the column name or its positional number in the clause.


-295	Referenced and referencing tables have to be in the same database.

Referential constraints cannot cross databases. In other words, both
the referenced and referencing columns (or parent and child keys) must
be in the same database.


-296	Referenced table table-name not available.

The table that is specified in a referential constraint does not
exist or is not accessible. Check the accompanying ISAM error code
for more information.


-297	Cannot find unique constraint or primary key on referenced
table <table_name>.

The database server cannot locate the referenced constraint in the
sysconstraints system catalog table, and the referenced constraint
was not created in the same ALTER TABLE statement as the referencing
constraint. The referenced constraint might not exist, or a foreign key
might refer to a table that has a unique constraint but not a
primary-key constraint.

Check that you have entered a valid column name with the appropriate
constraints that are associated with it. If the referenced table has a
unique constraint but no primary key, you must use the following form of
the REFERENCES clause:

   REFERENCES table_name (column_name)

Valid constraint columns indicate an internal error. If the error
recurs, note all circumstances and contact IBM Technical Support.


-298	Cannot grant permission to public with grant option.

The clause WITH GRANT OPTION allows the receiver of the grant to grant
the same privilege to others. In this case, the receiver of the grant
is PUBLIC. If this statement were executed, everyone would have the
privilege, and everyone could grant the privilege. This operation is
prohibited. Either name specific grantees, or omit the clause WITH
GRANT OPTION.


-299	Cannot grant permission to self.

This GRANT statement includes your user id as one of the grantees. If
you can grant the privilege, you already have the privilege. Rewrite
the statement to omit your user name from the TO clause.


-300	There are too many GROUP BY columns.

The number of columns that can be listed in the GROUP BY clause is an
implementation limit of the database server. All database servers
support at least eight columns. Review the current statement to ensure
that the punctuation of the GROUP BY clause is correct. If it is as you
intended, you will have to find a way to make this query in two or more
stages. Since you must list all nonaggregate selected columns in the
GROUP BY clause, and the length of the list is restricted, you must
select only the non-aggregate values that are required to distinguish
each group. Put the group results in a temporary table, and join this
table to the original table to select other non-aggregate values.


-301	The total size of the GROUP BY columns is too big.

The database server limits the total number of bytes in the combined
columns that the GROUP BY clause lists. All database servers support at
least 120 bytes. See the discussion of error -300 for more information.


-302	No GRANT option or illegal option on multi-table view.

This GRANT statement cannot be executed. The grantor does not have the right
to grant the specified privilege for this table, the table name is a
synonym, or the table is a view for which this option cannot be granted.
If the grantor does have the right to grant the privilege, the table in
question might be a synonym or a view that is not modifiable and cannot be
used for insert, update, or delete operations.  Starting with version 9.40,
you can define an INSTEAD OF trigger on the view to make it modifiable and
then try this option.

To grant any privilege for a table, you must be the owner of the table or you
must have been granted the same privilege with the GRANT option. To use the
AS GRANTOR clause, you must have DBA privilege.


-303	Expression mixes columns with aggregates.

This SELECT statement uses an aggregate function in its WHERE clause.
This action is not allowed. The WHERE clause must be applied row by row
as a table is scanned, but an aggregate function can only be calculated
after all rows have been chosen and grouped. Review the statement with
this fact in mind. If you intended to select only certain groups of
records, you can put that test in the HAVING clause; it is applied to
grouped rows.

The text of this message is somewhat deceptive. You can, in fact, mix
column names and aggregate functions in expressions. However, you can
do so only in the select list or the HAVING clause (not in the WHERE
clause), and the columns must appear in the GROUP BY clause.

Database servers after Version 5.01 do not use this error message.


-304	HAVING can only have expressions with aggregates or columns
in GROUP BY clause.

The HAVING clause is used to select completed rows after grouping has
been done. Therefore, the only selected values that it can test are
values that are available in completed groups of rows, namely the
single columns that are named in the GROUP BY clause and aggregate
values. Review the HAVING clause with this rule in mind. If you want to
select particular rows before grouping has taken place, use the WHERE
clause.


-305	Subscripted column column-name is not of type CHAR, VARCHAR, TEXT
nor BYTES.

You may select substrings only from columns of the types mentioned.
Review all uses of square brackets in this statement, and make sure
that each follows the name of a column that has one of these types. If
that is the case, verify that you are using the database you intended,
and double-check the definition of the table. Possibly one of the
columns in the table has been altered to use a different type.


-306	Subscript out of range.

This statement refers to a substring of a character variable. The
substring values (two numbers in square brackets) are incorrect. The
first is less than zero or greater than the length of the column, or
the second is less than the first. Review all uses of square brackets
in the statement to find the error. Possibly the size of a column has
been altered and makes a substring fail that used to work.


-307	Illegal subscript definition.

This statement refers to a substring of a character variable. The
substring values (two numbers in square brackets) are incorrect. The
first is less than zero or greater than the length of the column, or
the second is less than the first. Review all uses of square brackets
in the statement to find the error. Possibly the size of a column has
been altered and makes a substring fail that used to work.


-308	The statement failed because corresponding column data types must be 
compatible for each UNION, INTERSECT, or MINUS query.

All rows produced in a union, intersect or minus of SELECT statements must 
have the same format, so the corresponding columns for each UNION, INTERSECT or
MINUS statement must have the same data type or compatible data types. Two data
types are compatible if you can convert one of them into the other; for example,
INT and FLOAT are compatible data types because you can convert INT values to 
FLOAT values. In the current statement, a column in the second or subsequent 
SELECT statement does not agree with the corresponding column in a preceding 
SELECT statement.

Review and compare all the SELECT statements. Check each point at which one
statement selects a column that is not identical to a column in the
preceding SELECT statement. If the column data types do not match, then one
type must be convertible to the other type.


-309	ORDER BY column or expression must be in SELECT list.

An expression or column name is in the ORDER BY clause of this SELECT
statement, but the expression or column name is not in the select
list (the list of values that follows the word SELECT). This action is not
supported when a UNIQUE or DISTINCT operator is being used in a query.

When a UNIQUE or DISTINCT operator is being used in a query, all sort
keys must be present in the output rows to determine the true order.
Revise the statement to follow this rule.


-310	Table table-name already exists in database.

This statement tries to create a table with the name that is shown, but
one with that name already exists. Only one table with a given name can
exist in a single database. (In an ANSI-compliant database, the name of
the user that created a table name qualifies it, so one table of a
given name per user can exist.)

Check the spelling of the name; if it is as you intended, and you are
sure it should not exist, check that you are using the right database.
You can review the names of all tables in this database by querying
systables as follows:

SELECT tabname FROM systables WHERE tabid > 99

This statement will display only names of permanent tables, not
temporary tables. Temporary tables do not appear in systables. If the
name does not appear, end your database session and start a new one.
Temporary tables will be dropped.


-311	Cannot open system catalog table-name.

The database server cannot access one of the tables in the system
catalog. Check the accompanying ISAM error code for detailed
information, and look for operating-system error messages that might
give more information.


-312	Cannot update system catalog table-name.

The database server cannot record a change in the system-catalog
table. Check the accompanying ISAM error code for more detailed
information. Insufficient disk space is a common cause of this error.


-313	Not owner of table.

This statement tries to do something, such as dropping a table, that
only the owner of the table or a user who has Database Administrator
privileges can do. Check that the statement names the table you
intended. If it does, you will have to get its owner or a DBA to
execute this statement. To find out who to contact, you can query the
system catalog as follows:

SELECT tabname, owner FROM systables WHERE tabid > 99;
SELECT username FROM sysusers WHERE usertype = 'D'


-314	Table table-name currently in use.

This statement tries to do something, such as dropping a table, that
cannot be done while another user is using the table. Wait a short
time, and try again. To ensure that no table is in use, open the
database with DATABASE EXCLUSIVE.


-315	No create index permission.

This statement tries to create an index for a table. Either you do not
have INDEX privilege on this table, or the table itself is a view or
synonym. If the table that is named really is a table, contact the
owner of the table or a database administrator (see the discussion of
error -313) and ask to be granted this privilege.


-316	Index <index-name> already exists in database.

This statement tries to create an index with the name shown, but an
index of that name already exists. Only one index of a given name
can exist in a single database.

Check the spelling of the name. If it is as you intended, and you
are sure it should not exist, make sure you are using the right
database. To review the names of all indexes and their owners, join
systables and sysindexes as follows:

   SELECT T.tabname, I.idxname, I.owner FROM systables T, sysindexes I
          WHERE I.tabid = T.tabid AND T.tabid > 99


-317	The statement failed becuase you must have the same number of selected 
columns in each UNION, INTERSECT, or MINUS query.

All rows that are produced in a union, intersect or minus must have the same 
format, so each SELECT statement in the union, intersect or minus must select 
the same number of columns. In this union, intersect or minus, one of the 
second or subsequent SELECT statements does not list the same number of columns 
as the preceding one. Review the entire union, intersect or minus, and check 
that all select lists are alike in number and data type. If no appropriate 
column exists for one of the statements, specify a literal value of the 
appropriate type at that position. For example, where you need to match a 
numeric column, specify a literal zero.

-318	File with the same name as specified log file already exists.

The transaction log file you specify in the WITH LOG IN clause cannot
already exist. The database server must start a new log file; it cannot
append log data to an old log file. An existing log file contains
recovery information that might be crucial, so it does not simply empty
an existing file. To begin logging for a database that has not been
logged before, lock the database, copy all of the database directory to
a backup medium, and use the START DATABASE statement to name a new
file. To make a partial archive subsequently, lock the database, copy
the log file to a backup medium and store it with the full archive,
erase or rename the log file, and use the START DATABASE statement.


-319	Index does not exist.

This statement refers to an index that does not exist. Review the
spelling of the index name; if it is as you intended, and you are sure
it should exist, make sure you are using the right database.

In an ANSI-compliant database, an index that you do not own must be
qualified with its owner's name. See the discussion of error -316 for a
way to check the names and owners of all indexes.


-319	Index does not exist in ISAM file.

This statement refers to an index that does not exist. (The reference
to an ISAM file is not relevant; ignore it.) Review the spelling of the
index name; if it is as you intended, and you are sure it should exist,
make sure you are using the right database.

In an ANSI-compliant database, an index that you do not own must be
qualified with its owner's name. See the discussion of error -316 for a
way to check the names and owners of all indexes.


-320	Not owner of index.

This statement tries to do something, such as dropping an index, that
only the owner of the index or a user who has Database Administrator
privileges can do. Check that the statement names the index that you
intended. If it does, you will have to get its owner or a DBA to
execute this statement. See the discussion of error -316 for a way to
list the names and owners of indexes.


-321	Cannot group by aggregate column.

The GROUP BY clause in this statement refers to a selected value that
is an aggregate function. This action is not supported. (It does not
make sense to group rows using a value that cannot be computed until
the group has been formed.) You can group rows by the value of columns
or expressions on columns, but the expressions cannot include aggregate
functions. Review the GROUP BY clause, and compare it to the select
list. Possibly one of the column numbers in the GROUP BY clause is
incorrect.


-322	Cannot Alter view, Rename view or Create a trigger on a view. 

Starting with version 9.40, you can only create an INSTEAD OF trigger 
on a view.  You cannot create an INSTEAD OF trigger on a view created
using WITH CHECK OPTION. 

Consider creating the trigger on the base table of the view or create
a table with the same schema as the view and then define the trigger
on the table.

You can also receive this message if you issue the START VIOLATIONS
TABLE statement or the STOP VIOLATIONS TABLE statement for a view. You
must specify the name of a base table in both of these statements.

-323	Cannot grant permission on temporary table.

This GRANT statement names a temporary table. That action is not
supported. Privileges are recorded only for permanent tables. Because
temporary tables are not recorded in the system catalogs, no place
exists to record privileges on them. Only the person who creates a
temporary table can access it.


-324	Ambiguous column column-name.

The column name appears in more than one of the tables that are listed
in the FROM clause of this query. The database server needs to know
which columns to use. Revise the statement so that this name is
prefixed by the name of its table (table-name.column) wherever it
appears in the query. If the statement becomes unwieldy, give the table
a shorter alias name in the FROM clause (see the discussion of error
 -316 for an example).


-325	Filename must be specified with a full path name.

This error occurs if you attempt to create a table using the WITH LOG
IN clause but do not specify a complete path to the log file. This
error can also occur if you use IBM Informix SE to create database logging
but do not specify the full path of the log file. Make sure to specify
a full pathname, including the name of the log file, where the log file
will reside.


-326	Referential constraint has too many referenced columns.

The specified referential constraint has more than 16 columns (or 8 in
IBM Informix SE).


-327	Cannot unlock table table-name within a transaction.

The statement UNLOCK TABLE is not allowed within a transaction, that
is, following the execution of BEGIN WORK. You can still use LOCK TABLE
when you use transactions, but the table will be unlocked automatically
when the transaction ends. All locks are released at the end of a
transaction. In an ANSI-compliant database, BEGIN WORK is not used, a
transaction is always in effect, and the UNLOCK TABLE statement is
never used.


-328	Column column-name already exists in table.

This statement tries to add the column shown, but one with that name
already exists. Check the spelling of the name; if it is as you
intended, then the table is not arranged as you expected it to be. You
can review the names of all the columns in a table by querying
syscolumns. Supply a table-name in the following query:

SELECT colname, colno FROM syscolumns C, systables T
        WHERE C.tabid = T.tabid AND T.tabname = 'table-name'

You can use RENAME COLUMN to change column names.


-329	Database not found or no system permission.

The database you tried to open is not visible to the database server.
Check the spelling of the name. Possibly the database is located in a
different database server (or network system), and you have omitted to
specify the server name (or site name) with the database name. If you
are sure the database should exist just as you spelled it, your next
step depends on the database server you are using.

If you are using IBM Informix SE, the visible databases are directories
with names in the form dbname.dbs. You must be able to read from and
write to them. The database server looks first in the current working
directory and then in each directory named in the DBPATH environment
variable. The most common cause of this error is an incorrect setting
or no setting for the DBPATH environment variable.

If you are using IBM Informix Dynamic Server, IBM Informix Universal Server, or
IBM Informix OnLine Dynamic Server, the database does not exist as you spelled it.
In some environments, two or more instances of the database server can run at
once and each instance has its own collection of databases. For Version 6.0
and later, the value of the INFORMIXSERVER environment variable determines the
instance of the database server that you use. For Versions 5.1x and earlier, 
the ONCONFIG environment variable points to the configuration file that
determines the instance. See your database server administrator if you think
you might be using the wrong instance.

If you are connected to a secondary database server, the database you tried
to open might exist, but is not logged. Databases are required to be logged
to be able to access them on secondary database servers.


-330	Cannot create or rename the database.

Possibly you tried to create a database with the same name as one that
already exists or rename a database to a name that already exists; if 
so, choose a different name. Otherwise, check the accompanying ISAM
error code for more detailed information on the cause. Possibly a 
shortage of disk space or a problem with file permissions exists.


-331	Cannot drop database directory.

While the database server was executing the DROP DATABASE statement, it
removed all database-related files from the dbname.dbs directory and
tried to remove the directory itself, but an error occurred. Check the
accompanying ISAM error code for more detailed information on the
cause. The most likely cause is that you or another user created
nondatabase files in the same directory, and the directory cannot be
removed because it is not yet empty.


-332	Cannot access audit trail name information.

An error occurred while reading the audit-trail file. Re-execute the
latest statement; if the error recurs, the audit-trail file is corrupt.
In that case you will need to drop and restart the audit.


-333	The audit trail file already exists with a different name.

Before you start a new audit trail, you must drop an existing one. Use
the DROP AUDIT statement.


-334	Cannot create audit trail.

Some problem prevents the database server from initializing the
audit-trail file. Check that you specified a complete, correct pathname
for the file. Look for operating-system error messages that might give
more information. Common problems include a lack of disk space and
file-permission problems.


-335	There is no audit trail for the specified table.

This statement requires an audit trail to work, but no current audit
trail exists for the table. Either none was ever started, or it was
dropped. Check that you specified the table you intended. In a recovery
situation (the statement was RECOVER TABLE), check that the table has
just been restored from a backup copy. If so, the table did not have an
audit trail at the time that this backup was made. If an audit trail
was specified later, an unknown period remains between the backup and
the start of auditing during which unaudited updates might have been
made.


-336	Cannot create or drop audit on a temporary table table-name.

Temporary tables cannot be audited. The commands regarding audit trails
will not accept the names of temporary tables. If you did not intend to
name a temporary table, check the spelling of the table table-name. See
the discussion of error -313 for a way to display the names of all
permanent tables in the database.


-337	Cannot create view on temporary table table-name.

Views can be created only on permanent tables. The SELECT statement
that defines the view in this latest statement contains the name of
the temporary table, table-name. If you did not intend to name a
temporary table, check the spelling of table-name. See the discussion
of error -313 for a way to display the names of all permanent tables
in the database.


-338	Cannot drop audit trail.

An unexpected error occurred during the execution of a DROP AUDIT
statement. Check the accompanying ISAM error code for more detailed
information.


-339	The audit trail file name must be given in full directory path.

The audit-trail file that is specified in the CREATE AUDIT statement
requires a full directory path. Because it is not required to be in a
particular directory, the database server cannot use the current
directory or the DBPATH variable to search for it.


-340	Cannot open audit trail file.

The database server needs to use the audit-trail file for this table,
but some unexpected problem prevents it. Likely causes include hardware
errors, file-permission problems, or the accidental erasure of the
file. Look for operating-system error messages that might give more
information.


-341	Could not read a row from audit trail file.

The database server encountered an unexpected error while it was
reading the audit trail for this table. Likely causes of the error
include file-permission problems and hardware errors. Look for
operating-system error messages that might give more information.


-342	Remote host cannot execute statement.

This statement was sent to a database server in a different system for
execution. However, that database server does not support the requested
function, possibly because it is an earlier version.


-343	Row from audit trail was added to a different position than expected.

While the database server was reconstructing a table from the audit
trail, it found a discrepancy between the position of an inserted row
now and the position that was recorded in the audit trail when the row
was first inserted. Either the audit-trail file has been corrupted, or
the audit-trail file is incomplete, with missing records for some
alterations. The table cannot be recovered as it stands. Try the
operation again after you make sure that the table has been restored to
exactly the same state as when the audit trail was created. If the
error recurs, rebuild the table by other means.


-344	Cannot delete row - row in table does not match row in audit trail.

While the database server was reconstructing a table from the audit
trail, it found a discrepancy between the position of a deleted row now
and the position that was recorded in the audit trail when the row was
first deleted. Either the audit-trail file has been corrupted, or the
audit-trail file is incomplete, with missing records for some
alterations. The table cannot be recovered as it stands. Try the
operation again after you make sure that the table has been restored to
exactly the same state as when the audit trail was created. If the
error recurs, rebuild the table by other means.


-345	Cannot update row - row in table does not match row in audit trail.

While the database server was reconstructing a table from the audit
trail, it found a discrepancy between the contents of an updated row
now and the contents that were recorded in the audit trail when the row
was first updated. Either the audit-trail file has been corrupted, or
the audit-trail file is incomplete, with missing records for some
alterations. The table cannot be recovered as it stands. Try the
operation again after you make sure that the table has been restored to
exactly the state it had when the audit trail was created. If the error
recurs, rebuild the table by other means.


-346	Could not update a row in the table.

While the database server was processing an UPDATE, it received an
unexpected error. Check the accompanying ISAM error code for more
detailed information on the cause. Possible causes include hardware
errors and locking conflicts.


-347	Could not open table for exclusive access.

The database server cannot complete a LOCK TABLE statement or the
implicit LOCK TABLE that must be performed as part of other statements
that change the definition of a table (for example ALTER TABLE, RENAME,
or CREATE INDEX). Check the accompanying ISAM error code for more
detailed information on the cause. Possible causes include lock
conflicts, a full lock table, or low-level problems with the host
operating-system lock mechanism.


-348	Could not read a row from the table.

While the database server was trying to fetch a row from a table, it
received an unexpected error. Check the accompanying ISAM error code
for more detailed information on the cause. Possible causes include
hardware errors and lock conflicts.


-349	Database not selected yet.

This statement cannot be executed because no current database exists.
Either no current database has been established yet, or the current
database was closed with a CLOSE DATABASE statement. You execute the
DATABASE or CREATE DATABASE statement to establish a current database.


-350	Index already exists on the column (or on the set of columns).

This CREATE INDEX statement cannot be executed because an index on the
same column or combination of columns already exists. For a given
collation order, at most two indexes can exist on any combination of 
columns, one ascending and one descending. 

To display the indexes on a particular table, join sysindices and 
systables. Supply table-name in the following statement:

        SELECT * FROM sysindices, systables
        WHERE sysindices.tabid = systables.tabid
              AND systables.tabname = 'table-name'


-351	Database contains tables owned by other users.

This DROP DATABASE or UPDATE STATISTICS statement cannot be carried out
for the reason shown. It might destroy the work of others. In order to
drop this database, you must first drop all tables that other users
own. To do so, you must have database administrator privilege. See the
discussion of error -313 for a way to list the names of all tables with
their owners.


-352	Column column-name not found.

The column, or one of the columns, named in this CREATE INDEX statement
does not exist. Review the spellings of all columns in the statement.
See the discussion of error -328 for a way to list all column names in
a table.


-353	No table or view specified when granting/revoking privileges.

This statement specifies one of the table-level privileges (ALTER,
DELETE, INDEX, INSERT, SELECT, UPDATE, and ALL) but does not specify
the table to which the privilege applies. When you grant or revoke a
database-level privilege (CONNECT, DBA, RESOURCE), you cannot name a
table, but when you grant or revoke a table-level privilege you must
name a table.


-354	Incorrect database or cursor name format.

This statement contains the name of a database or a cursor in some invalid
format. If the statement is part of a program, the name might have been
passed in a host variable.

The maximum length for database names and cursor names depends on the
database server. In IBM Informix Dynamic Server 9.2x or later, the maximum length
is 128 characters. For IBM Informix SE, database names should be no longer
than 10 characters (fewer in some host operating systems). In other
Informix database servers, the maximum length is 18 characters.

Both database and cursor names must begin with a letter and contain only
letters, numbers, and underscore characters. In IBM Informix OnLine Dynamic
Server and later Informix database servers, database and cursor names can
begin with an underscore. In Dynamic Server 9.2x or later, these names can
include dollar-sign characters.

In MS-DOS systems, filenames can be a maximum of 8 characters plus a
3-character extension.


-355	Cannot rename file for table.

This RENAME statement cannot be completed because the database server
got an unexpected error. Check the accompanying ISAM error code for
more detailed information on the cause. Possible causes include
hardware errors and file-permission problems.


-356	Data type of the referencing and referenced columns do not match.

The data types of the columns in the child constraint must be identical
to those in the parent constraint.


-357	Dependent table for view view-name has been altered.

The view is based on data from a table that has been altered since the
view was defined. The alteration removed or renamed a column that is
used in the view. The view can no longer be used. Drop the view, and
redefine it to use the current schema.


-358	Must close current database before CREATE, START or ROLLFORWARD.

These statements choose a new current database, but the present
database must be closed first. Use the CLOSE DATABASE statement before
this statement.


-359	Cannot drop or rename the current database or any open database.

The database that is currently open cannot be dropped or renamed. 
First use the CLOSE DATABASE statement or end the applications that 
access the database; then you can drop it.


-360	Cannot modify a table or view that is also used in subquery.

The UPDATE, INSERT, or DELETE statement uses data taken from the same table
in a subquery. 

Because of the danger of entering an endless loop, this action is not allowed,   
except in the case of an uncorrelated subquery in the WHERE clause 
of the DELETE or UPDATE statement.

To avoid this error,  first select the input data into a temporary table, and then refer to the 
temporary table in a separate DELETE, UPDATE, or INSERT statement.

A subquery with a correlated column name cannot reference in its FROM clause the same table that an enclosing UPDATE or DELETE statement is modifying, 
as in the following example:  

database stores_demo; 
update orders set ship_charge = ship_charge + 2.00 
   where customer_num in 
      (select new_order.customer_num from orders as new_order 
       where orders.ship_weight < new_order.ship_weight);

In an SPL routine, even an uncorrelated subquery is not allowed 
in a  DELETE or UPDATE statement that modifies the same table
that the FROM clause of the subquery specifies, as in the next
example:  

database stores_demo;
create procedure ship_count(customer_id integer) 
   returning integer
define shipcount integer;
select count(*) into shipcount from orders 
   where customer_id = orders.customer_num 
         and ship_charge > 20;
return shipcount;
end procedure;

update orders set ship_charge = ship_charge + 2.00 
   where customer_num in 
      (select customer_num from customer 
         where customer.state = 'CA' 
         and ship_count(customer.customer_num) > 5);


-361	Column size too large.

This internal error reflects a communications problem between the
database server and the application. You should not see this error. If
the error recurs, note all circumstances and contact
IBM Technical Support.


-362	Can have only one column of serial/(serial8 or bigserial) type.

A table can have at most only one column of type SERIAL and one column
of type SERIAL8/BIGSERIAL. You are attempting to add a second column 
of type SERIAL or SERIAL8/BIGSERIAL, or you are attempting to create 
a table with more than one column of either type. If you intended to 
have a foreign key (that is, a column that refers to a SERIAL or 
SERIAL8/BIGSERIAL column in a different table), the data type of the 
column in this table should be INTEGER or INT8 or BIGINT.


-363	CURSOR not on SELECT statement.

The cursor named in this statement (probably an OPEN) has been
associated with a prepared statement that is not a SELECT statement.
Review the program logic, especially the DECLARE for the cursor, the
statement id specified in it, and the PREPARE that set up that
statement. If you intended to use a cursor with an INSERT statement,
you can only do that when the INSERT statement is written as part of
the DECLARE statement. If you intended to execute an SQL statement, do
that directly with the EXECUTE statement, not indirectly through a
cursor.

This error is also returned when you attempt to associate a cursor with
a SELECTINTO TEMP statement. Because of the INTO TEMP clause, the
SELECT statement can return no rows and so cannot be used with a
cursor.


-364	Column column-name not declared for UPDATE OF.

This UPDATE...WHERE CURRENT OF cursor-name statement refers to at least
one column that does not appear in the FOR UPDATE OF clause of the
DECLARE statement that declared the cursor. Since specific columns were
listed in the cursor declaration, the database server will not allow
others to be updated. Review the declaration and the uses of this
cursor. Perhaps the noted column, and others, should be added to the
declaration, or perhaps the OF clause should be dropped, allowing the
cursor to update any column in the table.


-365	Cursor must be defined on simple SELECT for FOR UPDATE.

The cursor named in this statement (probably an OPEN statement) was
declared with the FOR UPDATE clause. However, it has been associated
with a SELECT statement that joins two or more tables or that uses
UNIQUE, DISTINCT, GROUP BY, ORDER BY, FOR READ ONLY, INTO TEMP, or
UNION, INTERSECT, or MINUS. Such a SELECT statement cannot be used in 
an update, because there is no way to distribute the new data back into 
the multiple tables.

Review the declaration of the cursor. If it is declared FOR
statement id, also review the PREPARE statement that set
up that statement. You might need two cursors, one for general queries
and another specifically for updating.


-366	The scale exceeds the maximum precision specified.

A problem exists with the precision or scale of a DECIMAL or a MONEY
data type in this statement. Review all uses of these types. The first
should be declared as DECIMAL(p) or DECIMAL(p,s) where p, the precision
(total number of digits) is between 1 and 32, and s, the scale (number
of digits to the right of the decimal point) is no greater than p. The
MONEY type follows the same rules.


-367	Sums and averages cannot be computed for character columns.

This statement contains a use of the SUM or AVG function applied to a
column that has a character data type (CHAR or VARCHAR). If you did not
intend to take the sum or average of character strings, review the
spelling of column names against the table definition. If a character
column actually contains numeric values in character form, you can
trick the database server (Version 4.0 and later) into performing an
automatic conversion. Instead of applying the function to the column
name alone, apply it to the expression in parentheses (column+0).


-368	Incompatible sqlexec module.

The version of the database server does not agree with the version of
the database library routines in the application program. This
incompatibility must be resolved before the program can be executed.
The database server is selected through the SQLEXEC environment
variable (for database server versions prior to 6.0). It contains a
complete pathname to the database server code, which is usually named
sqlexec or sqlturbo (for database server versions prior to 6.0). The
access routines linked into the program were chosen when the program
was compiled. If the program you are running was supplied by Informix or IBM,
then it or another IBM Informix product might have been installed
incorrectly.


-369	Invalid serial number. Consult your installation instructions.

Some error has been made in the installation of your IBM Informix
products. Check the value in the SQLEXEC environment variable (for
database server versions prior to 6.0) and INFORMIXDIR environment
variable; then consult the person who installed the software, and
review the installation instructions.


-370	Cannot drop last column.

This ALTER TABLE DROP statement would drop every column from the
table. At least one column must be retained. Revise the statement to
leave one column. Or if you do not want the table at all, use DROP
TABLE to remove it.


-371	Cannot create unique index on column with duplicate data.

This CREATE UNIQUE INDEX statement cannot be completed because the
column (or columns) contains one or more duplicate rows. You can either
create an ordinary index, accepting the duplicate values, or you can
modify the table to remove the duplicates. To get a list of the
duplicate values in a single column, first create the ordinary index.
Then use a SELECT statement such as the following, filling in the table
and column names:

SELECT column FROM table main
        WHERE 1 < ( SELECT COUNT(*) FROM table sub
           WHERE main.column = sub.column )

This statement can be extended to handle the case of multiple columns
using AND.


-372	Cannot alter table with audit trail on.

Once an audit trail has been started for a table, the table should not
be altered. If you must alter the table, do the following. Copy the
table to a backup medium. Use DROP AUDIT to remove the audit trail.
Delete the audit-trail file. Alter the table. Again, copy the table to
a backup medium. Finally, use CREATE AUDIT to start a new audit trail.
The first backup is needed to restore the table if a failure occurs
while the table is being altered (a lengthy, disk-intensive procedure
if the table is large). The second backup is required because, if the
table has to be recovered later, the new audit trail must be applied
against a backup that has the same layout of columns.


-373	A database or command script is inaccessible because a DBPATH entry is too long.

The database server cannot locate a database or command script using the
DBPATH environment variable because one or more of the entries is too long.
No entry can exceed 128 bytes and the total number of entries cannot
exceed 100. Entries specified beyond the 100th entry will be ignored.

Reset the value of the DBPATH environment variable according to these rules.

-374	Can only use column number in ORDER BY clause with UNION.

This query has both a UNION clause and an ORDER BY clause. In a union
query, in which multiple SELECT statements exist and the names of the
selected columns in each statement are not necessarily the same, you
cannot use column names or expressions in the ORDER BY clause.

Instead, you must use column position numbers, with 1 representing the
first selected column, 2 representing the second, and so on. Rewrite the
query to use only numbers in the ORDER BY clause.


-375	Cannot create log file for transaction.

While the database server was trying to execute a START statement, it
got an unexpected error in trying to create the transaction-log file.
Check the accompanying ISAM error code for more detailed information on
the cause. Typical causes include a shortage of disk space, file
permission problems, or a limit on the number of open files.


-376	Log file already exists.

The transaction log file you specify in the WITH LOG IN clause must not
already exist. The database server must start a log file fresh; it has
no means of appending log data to an old log file. An existing log file
contains recovery information that may be crucial, so it will not
simply empty an existing file. To make a full backup, lock the
database, copy all of the database directory to a backup medium, erase
the log file (it is no longer needed), and use the START DATABASE
statement. To make a partial backup, lock the database, copy the log
file to a backup medium and store it with the full backup, erase or
rename the log file, and use the START DATABASE statement.


-377	Must terminate transaction before closing database.

This statement (DATABASE, CREATE DATABASE, or CLOSE DATABASE) cannot be
executed until the current transaction is finished.

Use either COMMIT WORK or ROLLBACK WORK and then close the database.

If you export a database and then import it, large-object handles (for
images) will be different after you import the database. Therefore, if you
use static html references for images and export the database and then
import it, you will have to determine the new large-object handle for each
static html reference.


-378	Record currently locked by another user.

A row of a table that this statement needs is not accessible because it
has been locked. Check the accompanying ISAM error code for more
detailed information. It will probably be -107, -113, -134, -143, -144,
or -154. Each notes a slightly different relationship between your
program and the other user's program. You can prevent most, but not
all, occurrences of this error with SET LOCK MODE TO WAIT.

For database servers prior to Version 4.1, this error message is
produced in conjunction with the UPDATE and the DELETE WHERE CURRENT OF
statements only. In Version 6.0, this error message is no longer used.


-379	Cannot revoke privilege on columns.

In the GRANT statement, you can grant UPDATE or SELECT privilege on
specific columns. However, the REVOKE statement accepts only the
keywords for the type of privilege; you cannot revoke access to
specific columns. If you want to change the columns allowed to a
certain user, you must first REVOKE the privilege in full, then GRANT
it on the new list of columns.


-380	Cannot erase log file.

The database server, while trying to initialize a transaction log file,
received an unexpected error. Check the accompanying ISAM error code
for more detailed information on the cause. Typical causes include
hardware errors and file permission problems.


-381	Cannot grant to someone who has granted you the same privilege before.

The privilege you are trying to grant is one that was first granted to
you WITH GRANT OPTION. The user who made that grant is among the list
of users in this present statement. For security reasons, you may not
do a reciprocal grant. Rewrite the statement leaving out the name of
your original patron. To see a list of the users to whom you may not
grant, query systabauth as follows:

SELECT grantor FROM systabauth WHERE grantee = USER


-382	Same number of columns must be specified for view and select clause.

In this VIEW statement, you have listed the names of the columns of the
view. However, their number is different from the number of columns in
the SELECT statement for the view. Check the punctuation of the two
lists, and make sure that you have supplied a name for each item in the
select list.


-383	Need to specify view column names in the view definition.

In this VIEW statement, you have not listed specific names for columns.
That action is allowed when the SELECT statement selects only simple,
named columns. However, the SELECT statement here selects one or more
expressions. You must give names to these columns in a parenthesized
list that follows the name of the view. Because you cannot give names
for only some of the columns, you must list names for all.


-384	Cannot modify non simple view.

This statement attempts to modify (insert, delete, or update) rows in a
view which does not have an appropriate INSTEAD OF trigger defined.
Starting with version 9.40, you can define an INSTEAD OF trigger on a view.
Without an INSTEAD OF trigger, this view is not modifiable because it is
based on a SELECT statement that joins two or more tables or that selects
calculated values or literal values. (You can DELETE from a view that
selects from a single table even if some calculated values are
selected.) Direct the statement against the actual
table on which the view is based or define an INSTEAD OF
trigger on the view to make it modifiable.


-385	Data value out of range.

This statement attempts to put data into a view that was defined WITH
CHECK OPTION, so new data has to satisfy the tests in the WHERE clause
in the view. However, one or more of the data values in this current
statement does not meet that test, so the alteration was not performed.
Roll back the current transaction. To see what tests new data must
satisfy, display the definition of the view, as follows:

SELECT seqno, viewtext FROM sysviews, systables
        WHERE systables.tabname = 'viewname'
           AND systables.tabid = sysviews.tabid
        ORDER BY seqno


-386	Column contains null values.

This ALTER TABLE statement contains a MODIFY clause that assigns the
NOT NULL attribute to an existing column. However, that column already
contains one or more null values. The modification cannot be made until
the null values have been deleted or updated to some nonnull value.


-387	No connect permission.

You cannot access the database that this statement requests because you
have not been granted CONNECT privilege to it. Contact a person who has
Database Administrator privilege to that database and ask to be granted
CONNECT privileges to it.


-388	No resource permission.

If you issued a CREATE TABLE, CREATE INDEX, or CREATE PROCEDURE
statement, you cannot execute this statement because your account has
not been granted the RESOURCE privilege for this database. You need the
RESOURCE privilege to create permanent tables, indexes on permanent
tables, and procedures.

If you issued a SET statement, START VIOLATIONS TABLE statement, or
STOP VIOLATIONS TABLE statement, you cannot execute this statement
because your account has not been granted the RESOURCE privilege for
this database. You need the RESOURCE privilege to execute the SET
statement for a constraint, trigger, or index defined on a table in the
current database. You also need the RESOURCE privilege to execute the
START VIOLATIONS TABLE or STOP VIOLATIONS TABLE statement on a base
table in the current database.

To recover from this error, contact a person who has the DBA privilege
on this database and ask to be granted the RESOURCE privilege for the
database.


-388	No resource permission.

If you issued a CREATE DATABASE statement in an 8.32 database server,
you cannot execute this statement because you are not in the group
specified in the ONCONFIG file parameter DBCREATE_GRP.

To be included in the operating system group specified in DBCREATE_GRP,
see your system administrator.


-389	No DBA permission.

This statement cannot be executed because you have not been granted DBA
privilege for this database. Contact a person who has DBA privilege for
the database and ask to be granted DBA privilege (or simply ask to have
this statement executed for you).

It is also possible that you received this message because you tried to
register a user-defined routine that is written in a language for which you
do not have usage privilege. If you do not have usage privilege for the
language, ask one of the following users to grant this privilege to you:
user informix or another user who has been granted the privilege with the
option to grant the privilege to other users.


-390	Synonym already used as table name or synonym.

This CREATE SYNONYM statement names a synonym that is already in use.
To see all the synonym and table names currently defined, query
systables as follows:

SELECT tabname, owner FROM systables WHERE tabid > 99


-391	Cannot insert a null into column column-name.

This statement tries to put a null value in the noted column. However,
that column has been defined as NOT NULL. Roll back the current
transaction. If this is a program, review the definition of the table,
and change the program logic to not use null values for columns that
cannot accept them.


-392	System error - unexpected null pointer encountered.

This internal error should not occur. If the error recurs, note
all circumstances and contact IBM Technical Support.


-393	A condition in the where clause results in a two-sided outer
join.

This query requests an outer join, but one or more conditions in the WHERE
clause interfere with the dominant-subordinate relationships between the
joined tables in the FROM clause.

Review the query, and verify that every condition that relates the joined
tables is actually necessary and semantically correct.

If an expression in the WHERE clause relates two subordinate tables, you
must use parentheses around the joined tables in the FROM clause to
enforce dominant-subordinate relationships. (Note: You cannot put a
parenthesis directly after the FROM keyword.) The following example
successfully returns a result:

   SELECT c.company, o.order_date, i.total_price, m.manu_name
      FROM customer c, OUTER (orders o, OUTER (items i, OUTER manufact m))
         WHERE c.customer_num = o.customer_num
            AND o.order_num = i.order_num
            AND i.manu_code = m.manu_code;

If you omit parentheses around the subordinate tables in the FROM clause,
you must establish join conditions, or relationships, between the dominant
table and each subordinate table in the WHERE clause. If a join condition is
between two subordinate tables, the query will fail. The following example
successfully returns a result:

   SELECT c.company, o.order_date, c2.call_descr
      FROM customer c, OUTER orders o, OUTER cust_calls c2
         WHERE c.customer_num = o.customer_num
            AND c.customer_num = c2.customer_num;

Consider using the ANSI-SQL standard syntax for outer joins. For more
information, refer to the IBM Informix Guide to SQL: Syntax.


-394	View view-name not found.

The named view cannot be dropped as it does not exist. To see names of
existing views, query systables as follows:

SELECT tabname FROM systables WHERE tabtype = 'V'


-395	The where clause contains an outer cartesian product.

This query requests an outer join, but either the WHERE clause is missing
in the query, or the conditions in the WHERE clause cause every row of the
subordinate table to be selected for every row of the dominant table,
resulting in a very large output. 

Review the query, and check that at least one condition in the WHERE clause
relates each dominant-subordinate pair of tables in the query.


-396	Illegal join between a nested outer table and a preserved table.

This query requests an outer join, but the WHERE clause contains a
condition that relates a nested subservient table to a preserved table
that is not its immediate parent. This action is not supported. Review
the query, and check that every condition that relates two tables is
between a preserved table and its immediately subordinate table.


-397	System catalog <table-name> corrupted.

This internal error should not occur. The database server has
encountered something in one or more of the system catalog tables that
violates integrity constraints.

Run the oncheck utility if you are using IBM Informix Dynamic Server,
IBM Informix Universal Server, or IBM Informix OnLine Dynamic Server. Run bcheck or
secheck if you are using the IBM Informix SE database server. Run tbcheck if you
are using the IBM Informix OnLine database server. If the error recurs, note all
circumstances and contact IBM Technical Support.


-398	Cursor manipulation must be within a transaction.

An attempt to use an UPDATE or a DELETE WHERE CURRENT OF statement
produces this error message. This statement would modify a table
through a cursor. However, this database uses a transaction log. When
that is the case, modifications made through a cursor must be placed
within the bounds of a transaction.

Review the program logic, and check that it executes a BEGIN WORK
statement prior to this statement and that it ends the transaction at
some reasonable point. If the program has to work with both databases
that use transactions and those that do not, you can have it check the
second element of the sqlwarn array of the SQL Communications Area.
This area will contain the letter W after a DATABASE statement if the
database has a transaction log, and a space if it does not.


-399	Cannot access log file.

This query refers to a table named syslog. A row in the systables
catalog has syslog in the tabname column, but it is only a convenient
place to store the pathname to the transaction-log file. Under
IBM Informix SE, a table named syslog cannot exist in a database with
logging. (In general, you should avoid table names that start with
sys-, and syslog is not allowed.)


-400	Fetch attempted on unopen cursor.

This FETCH statement names a cursor that has never been opened or has
been closed. Review the program logic, and check that it will open the
cursor before this point and not accidentally close it. Unless a cursor
is declared WITH HOLD, it is automatically closed by a COMMIT WORK or
ROLLBACK WORK statement.


-401	Fetch attempted on NULL cursor.

This FETCH statement passed a cursor data structure that is invalid or
that is a null pointer. Possibly the cursor has been freed with the FREE
statement, or possibly an automatic re-prepare has been attempted while 
opening the cursor but that operation failed, leaving the cursor unavailable,
or possibly the cursor data structure has been overwritten in memory.

Version 5.0 or later database servers do not return this error code.
See errors -267 and -404.


-402	Address of a host variable is NULL.

Review the way the program constructs the sqlda and related data
structures; somehow it is setting up a null pointer. The error might be 
caused by using a row or collection host variable without having executed
the necessary ALLOCATE statement.

If the program is in IBM Informix 4GL or another language in which the sqlda 
is not constructed directly by the program, or if this statement refers only
to host variables by name, this error should not occur. If the error
recurs, note all circumstances and contact IBM Technical Support.


-403	The size of a received row disagrees with the expected size.

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, note all circumstances and contact IBM Technical Support.


-404	The cursor or statement is not available.

One of the following four situations occurred:

You used a statement that names a cursor that was released with the
FREE statement or that was released during a failed automatic re-prepare.
Review the program logic and check that the cursor specified is declared 
and opened, but not freed, prior to reaching this statement.

If the error occurred on a command that specifies a variable rather than a
cursor, the statement was not prepared before you tried to execute it.

The cursor or statement is not available because the connection to the server
does not exist or was lost.

The person who created this table has not granted Update privilege to
your account name or to the public. The owner of the table or the DBA
must grant this privilege before you can update a row in this table.


-405	The Address of a host variable is not properly aligned.

Review the way the program constructs the sqlda and related data
structures; somehow it is setting up a pointer that is not word
aligned. Also, make sure that all host variables are aligned on proper
address boundaries for their types. If the program is in IBM Informix 4GL
or another language in which the programmer has no control over storage
alignments, this error should not occur. If the error recurs,
note all circumstances and contact IBM Technical Support.


-406	Memory allocation failed.

Something in the current statement required the allocation of memory
for data storage, but the memory was not available. Several things can
cause this error. For example, your application has a memory leak, you
are asking for more resources than the system is configured to allow,
or a problem with UNIX requires that you reboot the system. On a client PC,
if the INFORMIXDIR environment variable or some GLS file is missing,
a connection attempt fails with this error message.

Rollback the current transaction. Look for ways to make this statement
simpler or move less data. On UNIX, talk with the system administrator
to solve memory problems or to look for ways to make the operating system
give this program more virtual memory in which to run. On Windows, exit
to the operating-system command line, free some disk space, and resubmit
your program. On a client PC, make sure that the INFORMIXDIR environment
variable is set and that all GLS files are available.


-407	Error number zero received from the sqlexec process.

This internal error indicates a problem in the communication between the
database server and the library functions that call it. Make sure that your
program software is compatible with the database engine in use. If the error
recurs, note all circumstances and contact IBM Technical Support.


-408	Invalid message type received from the sqlexec process.
 
This internal error indicates a problem in the communication between the
database server and the library functions that call it. Make sure that
your program software is compatible with the database engine in use.

This error can also occur if the CSM option is enabled on the database
server side but not on the client application side, or vice versa. If you
want to use a CSM, make sure that the CSM option is set in the sqlhosts
file for both the database server and client application.

This error can also occur if the confidentiality option of the CSM is
enabled on the database server side but not on the client application
side, or vice versa. If you want to use the confidentiality option of the
CSM, make sure that the confidentiality option is set for both the
database server and client application. Check your sqlhosts file and CSS
configuration file.

If the error recurs, note all circumstances and contact
IBM Technical Support.


-409	Sqlexec was not found or was not executable by the current user.

Your application contacts the database server process while it starts
up. This action uses the value in the SQLEXEC environment variable (for
database server versions prior to 6.0); it should point to one of two
executable files: sqlexec for IBM Informix SE or sqlturbo for
IBM Informix OnLine (versions prior to 6.0). Ordinarily these files will
reside in the lib subdirectory of the directory that the INFORMIXDIR
environment variable names. Check that your SQLEXEC environment
variable is set up properly and that your account has access to these
directories and files.


-410	Prepare statement failed or was not executed.

This EXECUTE statement refers to a statement id that has not been
prepared. Either no PREPARE statement was done, or one was done but
returned an error code. Review the program logic to ensure that a
statement is prepared and the PREPARE return code is checked. A
negative error code from PREPARE usually reflects an error in the
statement being prepared.


-411	Cannot specify both host variables and descriptor.

This statement has a USING DESCRIPTOR clause, but it also refers to a
cursor that was declared with host variables (that is, with
SELECT...INTO or INSERT using variables in the VALUES clause). The
purpose of both the descriptor structure and host variable names is to
specify the location of the data values, and only one method may be
used. Review the declaration of the cursor, and settle on a single
method of specifying the location of data values.


-412	Command pointer is NULL.

This statement (probably an EXECUTE or DECLARE) refers to a dynamic SQL
statement that has never been prepared or that has been freed. Review
the program logic to ensure that the statement has been prepared, the
PREPARE did not return an error code, and the FREE statement has not
been used to release the statement before this point.


-413	Insert attempted on unopen cursor.

This INSERT statement names a cursor that has never been opened or that
has been closed. Review the program logic, and check that it will open
the cursor before this point and not accidentally close it. An insert
cursor is automatically closed by a COMMIT WORK or ROLLBACK WORK
statement.


-414	Insert attempted on NULL cursor.

This PUT statement specifies a cursor that is invalid. Possibly the
cursor has been freed with the FREE statement, or possibly an automatic 
re-prepare has been attempted while opening the cursor but that operation
failed, leaving the cursor unavailable, or possibly the cursor data 
structure has been overwritten in memory.


-415	Data conversion error.

The database server is unable to convert between a program variable and
a database column. It performs automatic data conversion in many cases
but could not in this case. For instance, a character string will be
converted to a numeric type so long as the string contains the digits
of a valid number, or a float or decimal number will be converted to
integer so long as the receiver has enough precision for the value.
Review this statement, and inspect each program variable that does not
have the same data type as the matching database column.


-416	USING option with open statement is invalid for insert cursor.

This OPEN statement refers to a cursor that was declared for an INSERT
statement. The USING clause of the OPEN is not appropriate in this
case; it is only used to specify the variables that are used with a
SELECT statement. Review the program to ensure that the correct cursor
has been used in this statement. If it has, and if the INSERT statement
is written as part of the DECLARE statement, you can name the host
variables directly in it. If the INSERT statement has been prepared,
you can specify the host variables in a FROM clause in the PUT
statement.


-417	FLUSH can only be used on an insert cursor.

This FLUSH statement refers to a cursor that is associated with a
SELECT statement, not an INSERT statement. FLUSH is only appropriate
with insert cursors. Review the program to ensure that the correct
cursor has been named.


-418	NULL SQLDA descriptor or host variable list encountered.

Review the way the program constructs the sqlda and related data
structures; somehow it is setting up a null pointer. If the program is
in IBM Informix 4GL or another language in which the sqlda is not
constructed directly by the program, or if this statement only refers
to host variables by name, this error should not occur. If the error
recurs, note all circumstances and contact IBM Technical Support.


-419	SQLDATA pointer in SQLDA or host variable is null.

Review the way the program constructs the sqlda and related data
structures; somehow it is setting up a null pointer. If the program is
in IBM Informix 4GL or another language in which the sqlda is not
constructed directly by the program, or if this statement only refers
to host variables by name, this error should not occur. If the error
recurs, note all circumstances and contact IBM Technical Support.


-420	Cannot execute remote sqlexec.

Your application program is starting up and trying to make contact with
the database server process in another computer. It does this using the
contents of the SQLHOST environment variable. Check the SQLHOST
variable, and verify that the IBM Informix NET or IBM Informix STAR service has
been started in the other computer.


-421	Unknown service for execution of remote sqlexec.

Your application program is starting up and trying to make contact with
a database server in a different computer. It uses information from the
file /etc/services under the service entry sql, but this file was not
found. Contact the person who installed IBM Informix NET on your system.


-422	Flush attempted on unopen cursor.

This FLUSH statement names a cursor that has never been opened or has
been closed. Review the program logic to ensure that it will open the
cursor before this point and not accidentally close it. An insert
cursor is automatically closed by a COMMIT WORK or ROLLBACK WORK.


-423	A FETCH CURRENT was attempted with no current row.

This FETCH statement asks for the current row, but none exists. Either
the cursor was just opened, or the previous fetch returned an error
code, perhaps because it was at the end of the data. Review the program
logic, and check that it uses a FETCH NEXT statement or other FETCH
operation to establish a current row before it attempts this
statement.


-424	Cursor already declared from this prepared statement.

This DECLARE statement associates a cursor with the name of a prepared
statement. However, another DECLARE statement has already been
executed, and it associates a different cursor with the same statement
id. This action is not supported; a given statement can be associated
with only one cursor. Check all the DECLARE statements in the program,
and check that they all refer to unique statements.

This error message should not appear for Version 5.0 and later.


-425	Database is currently opened by another user.

Another user has opened the requested database in exclusive mode, or
you have more than one connection to the database server. Repeat the
statement after a short delay or when the database is known to be idle.


-426	Unknown values have already been supplied.

This internal error should not occur. If this error recurs, note
all circumstances and contact IBM Technical Support.


-427	Bind count routine called with a different count.

This internal error should not occur. If you can find no direct cause
for the error, note all circumstances and contact
IBM Technical Support.


-428	Bind routine called too many times.

This internal error should not occur. If you can find no direct cause
for the error, note all circumstances and contact
IBM Technical Support.


-429	Indicator variables should be 2-byte integers.

This statement names as an indicator variable, a host variable that was
not declared as a small integer. The value returned to an indicator
variable is a small integer value. Review the statement, especially the
use of host variables as indicator variables. Make sure the names of
indicator variables are spelled correctly and that they are properly
declared. In a 4GL program, this error should not occur. If the error
recurs, note all circumstances and contact IBM Technical Support.


-430	Type integer does not match size.

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, note all circumstances and contact IBM 
Technical Support.


-431	Type float does not match size.

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, note all circumstances and contact IBM 
Technical Support.


-432	Type date does not match size.

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, note all circumstances and contact IBM 
Technical Support.


-433	Type money does not match size.

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, note all circumstances and contact IBM Technical
Support.


-434	Type decimal does not match size.

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, note all circumstances and contact IBM 
Technical Support.


-435	Time-out value must be -1 or greater.

You provided an incorrect time-out value for your callback
function/routine in IBM Informix ESQL/C or ESQL/COBOL. Check that your
time-out value is -1 or greater.


-436	Call back function must be defined when time-out value is 0 or greater.

You did not provide a callback function with your time-out value. Make
sure that you provide both.


-437	Connection must be established before registering callback function.

You attempted to register a callback function before you connected to a
database server. You must first connect to a database server and then
register your callback function.


-438	Call back function must be NULL if time-out value is -1.

You provided an incorrect value to unregister your callback function.
Pass a null value, not a function pointer, to the callback function.


-439	Database server is currently processing an SQL task.

You attempted to call an SQL routine or attempted to execute an SQL
statement within a signal handling function/routine or a callback
function/procedure. Use only the sqldone() and sqlbreak() library
functions inside your IBM Informix ESQL/C callback function. Use only the
ECO-SQD and ECO-SQB library routines inside your ESQL/COBOL callback
procedure. In addition, if you want to unregister your callback
function in IBM Informix ESQL/C, you can invoke the sqlbreakcallback()
callback registration function within your callback procedure. If you
want to unregister your callback procedure in ESQL/COBOL, you can
invoke the ECO-SQBCB callback registration routine within your callback
procedure.


-440	Cannot update more than one non-Informix DBMS within a
transaction.

In the application, an attempt was made to update data at more than one
target DBMS accessed through a gateway. In a distributed transaction,
at most one target DBMS accessed through a gateway can be updated.

You need to rewrite the application so that it updates at
most one DBMS accessed through a gateway in a single distributed
transaction.


-441	Possible inconsistent data at the target DBMS (%s) due to
an aborted commit.

Distributed commit processing failed due to a communication error,
site failure, gateway failure, or other error with the target DBMS
accessed through the gateway. Updates at all sites participating in
the transaction have been rolled back with the possible exception of
the target DBMS. The target DBMS might have committed its updates if
the failure occurred after the commit message was processed by the
target DBMS.

If the updates on the target DBMS were committed, then the updates
should be rolled back manually. Contact the target DBMS system
administrator.


-442	Cannot grant permission to NULL or empty user name.

The authorization identifier of the users to whom you are granting access
privileges cannot be NULL or empty.


-443	The range specified in the FOR loop cannot have a NULL value: (%s).

The FOR statement in a stored procedure cannot have a NULL value for 
the starting value, the ending value, or the step value of a range.


-444	Cannot use the ALTER TABLE statement to modify the extent size of 
the specified external table.

The size of extents cannot be changed for an external table, which resides 
in an extspace. An extspace refers to a storage location that the Informix 
database server does not manage.


-450	Illegal ESQL locator, or uninitialized blob variable in 4GL.

A BYTE or TEXT host variable used in this statement is not valid. If
this is a 4GL program, the variable has not been initialized by use of
the LOCATE statement, or was freed after being located. Review the
program logic to ensure all blob variables are located before use. If
this is ESQL/C, the locator structure is invalid or uninitialized.
Check that all locator structures are allocated and filled in before
use.


-451	Locator buffer size too small.

The locator structure provided for a BYTE or TEXT value in this
statement specifies a memory buffer that is smaller than the value (in
the loc_bufsize field). The actual size is in loc_indicator. No data
was transferred. Revise the program to use a larger buffer, to locate
the value in a file instead of memory, or to pass the value in segments
through a user-provided read function. Alternatively, you can specify
a substring of the value in the SELECT statement. If this is a 4GL
program, this error should not occur. If the error recurs, note
all circumstances and contact IBM Technical Support.


-452	'loc_open()' failed.

The loc_open() function provided in the locator structure for a BYTE or
TEXT value in this statement was called and returned a negative return
code. When the value is located using user-supplied functions
(loc_loctype contains LOCUSER), this function is part of the program,
and you have to diagnose its problems yourself. When the value is
located in a file (loc_loctype contains LOCFILE or, in a 4GL program,
the variable has been located in a file), this error indicates that the
system-supplied loc_open() function was not able to open the file.
Possibly the file does not exist, you do not have read permission for
the file, or too many files are open.


-453	'loc_close()' failed.

The loc_close() function provided in the locator structure for a BYTE
or TEXT value in this statement was called and returned a negative
return code. When the value is located using user-supplied functions
(loc_loctype contains LOCUSER), this function is part of the program,
and you have to diagnose its problems yourself. When the value is
located in a file (loc_loctype contains LOCFILE or, in a 4GL program,
the variable has been located in a file), this error indicates that the
system-supplied loc_close() function was not able to close the file.


-454	'loc_read()' failed.

The loc_read() function provided in the locator structure for a BYTE or
TEXT value in this statement was called and returned a negative return
code. When the value is located using user-supplied functions
(loc_loctype contains LOCUSER), this function is part of the program
and you have to diagnose its problems yourself. When the value is
located in a file (loc_loctype contains LOCFILE or, in a 4GL program,
the variable has been located in a file), this error indicates that the
system-supplied loc_read() function was not able to read from the
file.


-455	'loc_write()' failed.

The loc_write() function provided in the locator structure for a BYTE
or TEXT value in this statement was called and returned a negative
return code. When the value is located using user-supplied functions
(loc_loctype contains LOCUSER), this function is part of the program
and you have to diagnose its problems yourself. When the value is
located in a file (loc_loctype contains LOCFILE or, in a 4GL program,
the variable has been located in a file), this error indicates that the
system-supplied loc_write() function was not able to write to the file.
Possibly the disk is full, you do not have write permission for the
disk, or a hardware error occurred.


-456	Indicator value cannot fit in host variable.

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, note all circumstance, and contact IBM 
Technical Support.


-457	Database server terminated unexpectedly.

The database server process or thread with which your application
program was working has terminated. The DBA might have shut the system
down. The next most likely cause is an internal error. Look for
operating-system messages that might give more information. If the
error recurs, note all circumstances and contact
IBM Technical Support.

Check the ISAM error code that is returned with this error. If it
is -129, the database server has not terminated but simply reached
a limit on the number of concurrent user sessions (see the explanation
of error -129).


-458	Long transaction aborted.

The database server ran out of log space in which to record this
transaction. A transaction that is not fully recorded cannot be rolled
back. To preserve database integrity, the operating system ended the
transaction and rolled it back automatically. All changes made since
the start of the transaction have been removed. Terminate the
application, and replan it so that it modifies fewer rows per
transaction. Alternatively, contact the database server administrator
to discuss increasing the number or the size of the logical logs. Be
prepared to talk about the number of rows being updated or inserted and
the size of each row.

This error can also occur when a DBA has used FORCE_DDL_EXEC environment 
variable in another session and executes the ALTER FRAGMENT ON TABLE 
statement. In this situation, the ALTER FRAGMENT ON TABLE statement
rolls back any transactions that opened or have locks on the tables 
on which ALTER FRAGMENT is issued.


-459	The database server was shut down.

The database server instance that your application was using has been
shut down by its operator. Your current transaction will be rolled back
automatically when the database server starts up again. Rerun the
application at that time.


-460	Statement length exceeds maximum.

The statement text in this PREPARE, DECLARE, or EXECUTE IMMEDIATE
statement is longer than the database server can handle. The actual
limit differs with different implementations, but it is always
generous, in most cases up to 65,535 characters. Review the program
logic to ensure that an error has not caused it to present a string
that is longer than intended (for example, by overlaying the null
string terminator byte in memory). If the text has the intended length,
revise the program to present fewer statements at a time.


-461	File open error.

The database server could not open a file required to execute this
statement. Sometimes this is a general error, possibly referring to a
message file that the database server cannot find. At other times this
error occurs because the locator (blob) structure field loc_loctype was
set to LOCFNAME, but the database server could not open the file using
the pathname in loc_fname and the flags in loc_oflags. Any of the
following conditions can cause the database server to report this error:

*  An environment variable setting is missing.

*  Not enough disk space is available for opening the file.

*  A file permission problem exists.

*  The limit on the number of open files was reached.

*  The database server could not access a blob of type LOCFNAME.

*  The database server is on a different machine from the client.

*  The statement transfers a value between a file and a BYTE or TEXT
   column.

*  The statement attempts to drop a database when a required file is not
   available.

Make sure your environment variables and file permissions are set
correctly. For more information, check for any accompanying ISAM error
code or operating-system message.


-462	File close error.

This statement reads a value from a BYTE or TEXT column into a file.
The database server copied the data to the file but got an
operating-system error when it closed the file. Check the accompanying
ISAM error code for more information, and look for operating-system
messages. Typical causes include lack of disk space and hardware
errors.


-463	File read error.

This statement writes a value into a BYTE or TEXT column from a file.
The database server got an operating-system error while reading the
file. Check the accompanying ISAM error code for more information, and
look for operating-system messages.


-464	File write error.

This statement reads a value from a BYTE or TEXT column into a file.The
database server got an operating-system error while writing the data.
Check the accompanying ISAM error code for more information, and look
for operating-system messages. Typical causes include lack of disk
space and hardware errors.


-465	No more memory for locator buffer.

This query returns a BYTE or TEXT value that is located in memory, and
the locator structure asked (by setting -1 in loc_bufsize) that the
database server allocate the memory. It was unable to get the necessary
memory for a buffer. If you can use operating-system methods to
allocate more data space memory to your program, do so and run it
again. Alternatively, locate the value in a file, or use a substring to
select the value in portions. If this is a 4GL program, this error
should not occur. On DOS systems, exit to the operating-system command
line, free some disk space, and resubmit your program. If the error
recurs, note all circumstances and contact IBM Technical Support.


-466	File length error.

This statement stores a value in a BYTE or TEXT column from a file. The
locator structures specified a length for the data in loc_locsize, but
the database server found end of file before it had read that much
data. Review the program to ensure that the input file was properly
positioned and that the correct length was specified. Specify a length
of -1 if the file should be read to its end. If this is a 4GL program,
this error should not occur. If the error recurs, note all
circumstances and contact IBM Technical Support.


-467	Indicator object is missing.

This program was compiled with the -icheck flag, and the current SQL
statement did return a truncated or null value, for which an indicator
would normally be set, to a host variable for which no indicator
variable was specified. Revise the program to use indicator variables.


-468	Cannot obtain the user ID from the system. Unable to start the database server.

Your application is trying to open communications to a database server.
As part of this action, it has to read your user ID from the system
password file, and it failed to do this. Look for operating-system
error messages that might give more specific information. Consult with
a system administrator to ensure that the file of user IDs is readable
to all users.


-469	This descriptor does not exist.

The name of the system descriptor area that is specified does not exist
in the list of system descriptor areas, so it has not been allocated.
You must execute the ALLOCATE DESCRIPTOR statement to allocate this
descriptor name before you use it.


-470	The value of occurrence must be greater than 0.

If you include the WITH MAX occurrences clause in the ALLOCATE
DESCRIPTOR statement, you must specify a value of occurrences that is
greater than zero. Change the value of occurrences to a positive
integer, and execute the ALLOCATE DESCRIPTOR statement again.


-471	An invalid descriptor name has been used.

This error is generated if the name of the SQL descriptor is either an
empty string or an uninitialized host variable. Descriptor names follow
the same naming rules as identifiers. Check the name of the descriptor,
and verify that it has been set with the SET DESCRIPTOR statement,
allocated with the ALLOCATE DESCRIPTOR statement, or otherwise
initialized.


-472	Occurrence value is out of range.

Change the value of the COUNT statement so that it is less than or
equal to the occurrences and greater than zero, and try again.


-473	The specified data type is not a X/Open standard type.

This error is generated when a GET DESCRIPTOR or a SET DESCRIPTOR
statement is executed in X/Open mode, and the value for the type field
is not an X/Open standard type. Check the X/Open codes for data types
again, and make sure that the correct type is being used.


-474	Unknown field type.

An unknown field type has been requested. Check that you are using one
of the valid field types in X/Open mode, and try again. The valid field
types are TYPE, LENGTH, PRECISION, SCALE, NULLABLE, INDICATOR, DATA,
and NAME.


-475	In a GET statement, if DATA is null, then INDICATOR must be specified.

This X/Open rule indicates that you must request the INDICATOR value in
the GET DESCRIPTOR statement when DATA is null.


-476	The LENGTH field must be specified when the type is SQLCHAR.

When you use a SET DESCRIPTOR statement, and TYPE is set to SQLCHAR,
the LENGTH field must also be specified and set in the same SET
DESCRIPTOR statement.


-477	Buffer is too small.

In a GET DESCRIPTOR statement, the buffer (the character host variable)
that is specified to store the NAME entry is too small. Increase the
buffer size, and call the GET DESCRIPTOR statement again. This error
message also is displayed when the host variable is a FILE type, and
the buffer used to store its name is too small.


-478	User must specify TYPE.

In the initial state, when you execute a SET DESCRIPTOR statement, you
must specify TYPE as one of the fields to be set. Set the TYPE field in
the SET DESCRIPTOR statement, and execute it again.


-479	The number of DESCRIBED columns is greater than the allocated space.

The number of columns in the table is larger than the allocated
descriptor. Use the ALLOCATE DESCRIPTOR statement to reallocate a
larger occurrence value, and try the DESCRIBE statement again.


-480	A descriptor with the same name already exists.

A system descriptor area with the same name has already been allocated,
so this descriptor name is not unique. Change the name of this
descriptor in the ALLOCATE DESCRIPTOR statement so that the descriptor
is unique, and execute the statement again.


-481	Invalid statement name or statement was not prepared.

The statement has not been prepared, or the format of the statement name
is not valid. A valid statement name does not exceed the maximum length,
begins with a letter or underscore, does not contain any blanks or
nonalphanumeric characters except underscores and, in IBM Informix Dynamic
Server 9.2x or later, dollar-sign characters.

The maximum length for statement names depends on the database server. In
IBM Informix Dynamic Server 9.2x or later, the maximum length is 128 characters.In 
other IBM Informix database servers, the maximum length is 18 characters.


-482	Invalid operation on a non-SCROLL cursor.

You cannot issue a FETCH PRIOR, FETCH FIRST, FETCH LAST, FETCH CURRENT,
FETCH RELATIVE n, or FETCH ABSOLUTE n statement with a non-scroll
cursor. To do so, you must first declare the cursor as a scroll
cursor.


-483	SQL descriptor's name is too long. Limit is 128 characters.

The maximum length for SQL descriptor names depends on the database server.
In IBM Informix Dynamic Server 9.2 or later, the maximum length is 128 characters. In 
other Informix database servers, the maximum length is 18 characters.


-484	Statement/cursor's name must be between 1 to 128 characters.

The maximum length for statement and cursor names depends on the database
server. In IBM Informix Dynamic Server, the maximum length is 128 characters.
In other Informix database servers, the maximum length is 18 characters.


-485	Number of host variables does not match SELECT list.

This error can occur only if your database is ANSI compliant. The error
indicates that the number of host variables in an ESQL statement is not
the same as the number of values that the database server returns. In
addition, a warning flag is placed in the third element of the sqlwarn
structure of sqlca.

The execution of the second statement in the following ESQL/C example
returns this error:

$create table mytab (i integer, f float)
$select * into :var1 from mytab; --error

If your database is not ANSI compliant, this and similar statements
complete without error, and the values of the host variables are set in
sequence to their respective returned values. If the number of returned
values is smaller than the number of host variables, the remaining host
variables are undefined. As with an ANSI-compliant database, a warning
flag is placed in the third element of the sqlwarn structure of sqlca.


-486	Illegal data type found during data conversions.

The data type found in the system descriptor sqlvar entry is either
invalid or uninitialized. You cannot use the GET DESCRIPTOR statement
to get a value from an uninitialized sqlvar.


-487	A cursor can only be declared as static or dynamic.

The specified SQL statement requires you to declare a cursor as static
or dynamic. Declare the cursor as static or dynamic, depending on which
type of cursor is required, and retry the specified operation.


-488	Invalid operation on cursor.

An invalid operation has been attempted on a cursor. A cursor declared
for a SELECT statement cannot be used in a PUT statement. Similarly, a
cursor declared for an INSERT statement cannot be used in a FETCH
statement. Check the program, and try again.


-489	Exception number out of bounds.

An exception number was requested that was either less than 1 or
greater than the number of diagnostic entries in the diagnostic area.


-490	Database was created without NLS functionality.

You created a database that lacked NLS functionality.


-491	DBNLS not set (LC_COLLATE must be string_value).

Set the DBNLS environment variable to an appropriate value. Make sure
LC_COLLATE is set to the specified string_value.


-492	LANG or LC_COLLATE environment variable invalid.

You specified an invalid value for a LANG or LC_COLLATE environment
variable.


-493	DBNLS not set (LC_CTYPE must be string_value).

Set the DBNLS environment variable to an appropriate value. Make sure
LC_TYPE is set to the specified string_value.


-494	LANG or LC_CTYPE environment variable invalid.

You specified an invalid value for a LANG or LC_CTYPE environment
variable.


-495	LANG or LC_MONETARY environment variable invalid.

You specified an invalid value for a LANG or LC_MONETARY environment
variable.


-496	LANG or LC_NUMERIC environment variable invalid.

You specified an invalid value for a LANG or LC_NUMERIC environment
variable.


-497	LANG or LC_TIME environment variable invalid.

You specified an invalid value for a LANG or LC_TIME environment
variable.


-498	Bad cixtomsg file. Check installation.

The version of the cixtomsg file, which holds the mapping table of
SQLCODE to SQLSTATE values, is invalid. The cixtomsg file is located
in the directory $INFORMIXDIR/msg. Check the date and size of the
file. If the error recurs, note all circumstances and contact IBM
Technical Support.


-499	The operation causes a rowsize to exceed the allowable limit
(32767).

The maximum size of a table record is 32,767 bytes. Check the summary sizes
of all the fields in the table. Make sure that the operation you have
attempted does not lead to exceeding the maximum row size.


-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 or during a failed automatic re-prepare attempt.


-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 except LBAC related
catalog tables. However, this very risky practice is not recommended 
unless you are specifically instructed by IBM 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 a DBA can create, drop, grant, or revoke for another user.

This data definition statement specifies a table, view, index, or
synonym that is owned by another user or grants/revokes 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, note all circumstances and contact IBM 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. IBM Informix Dynamic Server and
IBM Informix Universal Server allow 16 key parts (columnar or functional) and
a width of 390 bytes on a 2K page platform. On 4K page platforms or using a 
non-default page size allows greater than 390 bytes for the width of indexed 
columns. IBM 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, note all circumstances and
contact IBM 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
-394.


-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 IBM Informix SE,
but your IBM Informix SE database server uses CREATE LOCKING rather than
System V locking. If the error recurs, note all circumstances
and contact IBM 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.


-529	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 was violated. To see the
check constraint associated with the column, 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)

In certain scenarios, you might get this error without a constraint name being
specified. This can happen if you are performing a DDL operation that has a
check constraint that is violated by the existing data on the table.
In this case, the DDL operation would not succeed, and thus the constraint
name would not be in the system catalog.

-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.


-534	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 IBM Informix SE database server uses the DBTEMP environment
variable, but IBM Informix Dynamic Server and IBM 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 byte.

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 byte 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 is the same as the restriction
on the total size of all columns in a composite index.
IBM Informix Dynamic Server allows 16 key parts and a width of 390 bytes
on a 2K page platform. On 4K page platforms or using a non-default page size
allows greater than 390 bytes for the width of indexed columns. 
IBM Informix SE supports 8 columns and a width of 126 bytes. 
Other Informix database servers allow 16 columns and 255 bytes.
The limit depends on the database server in use, but all servers support 
a total of at least 120 bytes. 

For additional information, see the CREATE TABLE statement in
the IBM 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
IBM 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 IBM Informix SE and other IBM Informix database servers.
For example, IBM Informix SE supports the IN 'pathname' clause of the
CREATE TABLE statement while other IBM 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 to current database.

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 <dbname>,
which refers to an object in the external database <dbname>.


-557	Cannot locate table that is external to the current database
after <level-count> 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 <level-count> 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, note all circumstances and
contact IBM 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, note all circumstances and contact
IBM 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 note all circumstances and contact
IBM 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, note all circumstances and contact
IBM 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, note all circumstances and contact
IBM 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 32 characters (for example, overly_long1234567890123456789012.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
IBM 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, pleasnote all circumstances and contact IBM 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, note all circumstances and
contact IBM Technical Support.


-590	Procedure cache corrupted.

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


-591	Invalid default value for column/variable <column-name>/
<variable-name>.

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 or SERIAL8 or BIGSERIAL column.

This CREATE or ALTER TABLE statement specifies that a column has a
SERIAL or SERIAL8 or BIGSERIAL data type, but it also has a DEFAULT 
clause for the column. The database server generates values for a 
SERIAL or SERIAL8 or BIGSERIAL 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	Incorrect use of an aggregate function.

An aggregate function was incorrectly used inside an SPL
routine expression, as an argument to an iterator table function,
or inside a check constraint. These types of expressions cannot 
process aggregate functions.

The following examples show the incorrect use of an aggregate function:

LET var = MAX(another_var) + 10; -- error

SELECT 1 FROM TABLE(FUNCTION(udr1(max(1))));  -- 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	[Internal] Premature End Of Buffer.

If this internal error recurs, note all circumstances and
contact IBM 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 IBM Informix Dynamic Server syntax with 
        IBM Informix SE syntax.

Syntax specific to IBM Informix Dynamic Server and to the IBM Informix SE
database server was mixed in the same statement. Use the appropriate syntax
for your database server.

-600	Cannot create TEXT or BYTE value.

This statement creates a new BYTE or TEXT value, but some unexpected
error prevented the creation of that value. Roll back the current
transaction. Check the accompanying ISAM error code for more
information. Possibly the storage space or tblspace has filled up, or
you are not referring to a valid storage space. If the error recurs,
note all circumstances and contact IBM Technical Support.


-601	Cannot delete TEXT or BYTE value.

This statement replaces or deletes a BYTE or TEXT value, but some
unexpected error prevented the deletion of the old value. Roll back the
current transaction. Check the accompanying ISAM error code for more
information. Possibly a hardware error or data corruption of the
storage space or tblspace occurred. If the error recurs, note all
circumstances and contact IBM Technical Support.


-602	Cannot open TEXT or BYTE value.

This statement refers to a BYTE or TEXT value, but some unexpected
error prevented locating the value. Roll back the current transaction.
Check the accompanying ISAM error code for more information. Possibly a
hardware error or data corruption of the storage space or tblspace
occurred. If the error recurs, note all circumstance, and
contact IBM Technical Support.


-603	Cannot close TEXT or BYTE value.

This statement writes a BYTE or TEXT value, but some unexpected error
prevented finishing the creation of the value. Roll back the current
transaction. Check the accompanying ISAM error code for more
information. Possibly a hardware error or data corruption of the
storage space or tblspace occurred. If the error recurs, note all
circumstances and contact IBM Technical Support.


-604	Cannot read TEXT or BYTE value.

This statement refers to a BYTE or TEXT value, but some unexpected
error prevented access to the value. Roll back the current transaction.
Check the accompanying ISAM error code for more information; possibly a
hardware error or data corruption of the storage space or tblspace
occurred. If the error recurs, note all circumstances and
contact IBM Technical Support.


-605	Cannot write TEXT or BYTE value.

This statement writes a BYTE or TEXT value, but some unexpected error
prevented the creation of the value. Roll back the current transaction.
Check the accompanying ISAM error code for more information; possibly a
hardware error or data corruption of the storage space or tblspace
occurred. One possible cause is that the storage space for this column is
full. Another is that although a new chunk has been assigned to the
storage space, pages cannot be allocated in it until the addition of the
chunk has been logged and the log file closed. The database server
administrator can use the tbmode -l or onmode -l command to force a log
file to be closed. If the error recurs, note all circumstances
and contact IBM Technical Support.


-606	Invalid storage-space name for TEXT or BYTE data.

If this statement refers to a storage space (for example, the CREATE
TABLE statement might create a column with type TEXT IN blobspace-name),
the name is invalid or does not exist. Review the identifiers intended
as storage-space names. If they are spelled as you intended, consult
with the database server administrator to find out whether they exist
and are online. If the statement does not refer to a storage space,
this is an internal error. If the error recurs, note all
circumstances and contact IBM Technical Support.


-607	Text/Byte subscript error.

This statement refers to a TEXT or BYTE value that uses substring
notation (numbers in square brackets that follow the name). However,
the substring is not correctly written. Review all uses of substrings,
and make sure that the first number in each is greater than zero but
not greater than the length of the value; the second number is not less
than the first; and the numbers are separated by a comma.


-608	Illegal attempt to convert Text/Byte data type.

This statement is written to imply a conversion from a TEXT or BYTE
value to another data type, for example, by combining it with other
types in an expression or by inserting it into a column of another
type. This action is not supported; TEXT and BYTE columns can only be
selected or be copied into other columns of the same type. Check that
the statement names the columns you intended and that they have the
data types you thought.


-609	Illegal attempt to use Text/Byte host variable.

This statement uses a host variable that is a TEXT or BYTE locator
structure but combines it with data of some other type (for instance,
in an expression or by inserting it into a column of another type).
This action is not supported; host variables of these types may only be
used for selecting from, creating, or inserting into columns of the
same type.


-610	Index not allowed on TEXT or BYTE columns.

This CREATE INDEX statement names a column of the TEXT or BYTE type;
however, these types are not supported for indexing. Because no defined
lexical ordering exists for these types, the database server does not
know how to sort or compare them. Therefore it cannot build an inverted
index. Possibly you understand the data well enough to understand how
to extract an ordered set of key values from it. If so, perform the
extraction into a separate column in the same table, and index that
column.


-611	Scroll cursor can't select TEXT or BYTE columns.

The cursor that is named in this statement is associated with a SELECT
statement that returns one or more TEXT or BYTE columns. Also, the
cursor is declared with the SCROLL keyword. This action is not
supported.Rows that are fetched through a scroll cursor are also stored
in a temporary table. Because of the bulk of TEXT and BYTE values,
this action would produce an unacceptable cost in time and disk space.
Revise the declaration of the cursor to select the desired columns of
other types and also the ROWID. After you fetch a row through the
scrolling cursor, use a separate, nonscrolling cursor to fetch the BYTE
or TEXT values, WHERE ROWID=host-var.


-612	TEXT and BYTE columns are not allowed in the "group by" clause.

This SELECT statement selects one or more BYTE or TEXT values and also
specifies those columns in the GROUP BY clause. This action is not
supported. Since no defined lexical order to BYTE or TEXT values
exists, the database server cannot order or compare them. Therefore it
cannot group rows on their values. (This condition is true even of
substrings selected from a BYTE or TEXT column.) Review your SELECT
statement to ensure that the correct columns are named in the GROUP BY
clause.


-613	TEXT and BYTE columns are not allowed in the "distinct" clause.

This statement specifies DISTINCT values, but it also selects a BYTE or
TEXT value. The database server does not know how to compare or order
these values, so it cannot sort them, and it cannot locate duplicate
values. You cannot use the DISTINCT keyword when these data types are
selected. Reword your SELECT statement to either remove the keyword or
select only normal columns.


-614	TEXT and BYTE columns are not allowed in the "order by" clause.

This SELECT statement selects one or more BYTE or TEXT values, and also
specifies those columns in the ORDER BY clause. This action is not
supported. Because no defined lexical order to BYTE or TEXT values
exists, the database server cannot order them. (This is true even of
substrings selected from a BYTE or TEXT column.) Review your SELECT
statement to ensure that he correct columns are named in the ORDER BY
clause.


-615	TEXT and BYTE columns are not allowed in this expression.

This statement uses an aggregate function, such as COUNT, SUM, MIN, MAX, or
AVG, but applies it to a column that has the BYTE or TEXT data type. This
action is not supported.

Review the use of each aggregate function to make sure that it is not applied
to a BYTE or TEXT column.


-616	A TEXT or BYTE subscript is not allowed within this context.

This UPDATE or INSERT statement specifies a subscripted column of BYTE
or TEXT data type as a destination. Subscript notation is not allowed
in this context; a BYTE or TEXT (or any other) value must be replaced
in full. Revise the statement to assign into whole columns.


-617	A TEXT or BYTE data type must be supplied within this context.

This statement assigns a value that is not a simple large object to a BYTE or 
TEXT column or assigns a BYTE or TEXT column to a column that is not a simple 
large object. Neither action is supported. BYTE and TEXT values must be 
assigned as whole units to columns of the same type. Check that the statement 
specifies the columns that you intended.


-618	Error occurred while trying to copy TEXT or BYTE data.

This statement copies a BYTE or TEXT value from one row to another, but
some unexpected error interfered with the operation. Roll back the
current transaction. Check the accompanying ISAM error code for more
information; possibly a hardware error, data corruption of the
storage space or tblspace, or a shortage of disk space exists, or an
invalid storage space was named. If the error recurs, note all
circumstances and contact IBM Technical Support.


-619	A TEXT or BYTE error has occurred in the front-end application.

This statement transfers a BYTE or TEXT value between the database and
the user program, but something has happened to prevent that. For
example, perhaps it was not possible to allocate a buffer for a value
that was located in memory. Check the accompanying ISAM error code for
more information.


-620	Unable to update next extent size.

This internal error indicates the database server cannot change an
internal data structure (not a system catalog) that is stored in the
root dbspace. Check the accompanying ISAM error code for more
information. Possibly corruption of the root dbspace occurred. Have the
database server administrator run the oncheck, onutil, or tbcheck utility.


-621	Unable to update new lock level.

This internal error indicates that the database server is unable to
convert a lock from shared to exclusive. Check the accompanying ISAM
error code for more information. Possibly a hardware error or a problem
with shared memory exists. If the error recurs, note all
circumstances and contact IBM Technical Support.


-622	Error on locating constraint index index-name.

This internal error shows that the database server is trying to test a
new or updated row for uniqueness under a UNIQUE or PRIMARY KEY
constraint, but the index that implements the constraint cannot be
found. Check the accompanying ISAM error code for more information.
Corruption of the system catalog tables or the root dbspace or a
hardware problem might have occurred. If the error recurs, note
all circumstances and contact IBM Technical Support.


-623	Unable to find CONSTRAINT constraint-name.

The constraint specified in this statement cannot be found. Review the
spelling of the name shown. If it is as you intended, check the names
of existing named constraints by querying the sysconstraints table as
shown in the following example. If the owner name shown for the desired
constraint is not yours, you need to be a Database Administrator to
reference it (and, if this database is ANSI compliant, you need to
qualify the name with its owner-name).

SELECT constrname, owner FROM informix.sysconstraints


-624	Unable to drop CONSTRAINT constraint-name.

This internal error shows that the database server had an unexpected
error while dropping a constraint or the index that implemented it.
Check the accompanying ISAM error code for more information. Corruption
of the system catalogs or the root dbspace might have occurred, or a
hardware problem might exist. If the error recurs, note all
circumstances and contact IBM Technical Support.


-625	Constraint name constraint-name already exists.

The constraint name already exists. Review the spelling. If it is as
you intended, you must select another name, or drop and redefine the
existing constraint. See the discussion of error -623 for a way to list
all constraints.


-626	Cannot obtain or set serial value.

This internal error message does not refer to a problem with a SERIAL
or SERIAL8 or BIGSERIAL column in a table that you defined. The database 
server uses unique integer values for many purposes (for example, the 
table ID number for a new or altered table). An internal error has made 
it impossible to generate a new, unique number. For example, in host 
systems that use files for locking, something might have prevented the 
creation of a lock file. Check the accompanying ISAM error code for more 
information.  If the error recurs, note all circumstances and contact 
IBM Technical Support.


-627	Cannot prepare coordinator for two-phase commit.

Because the coordinator cannot prepare this IBM Informix STAR two-phase
commit transaction, all participants eventually roll back all work that
is associated with the transaction. No administrative intervention is
required. See the ISAM error for more information about why the
database server could not prepare to commit the local transaction.


-628	Cannot end two-phase commit transaction at coordinator.

The database server acting as coordinator for the transaction cannot
end this IBM Informix STAR two-phase commit transaction, and the
transaction remains open. Eventually, IBM Informix STAR automatic recovery
mechanics will end the transaction. No administrative intervention is
required. See the ISAM error for more information about why the
database server could not end the transaction properly.


-629	Cannot end heuristically rolled back transaction.

The database server acting as coordinator for the transaction cannot
end this IBM Informix STAR two-phase commit transaction, and the
transaction remains open. Eventually, IBM Informix STAR automatic recovery
mechanics will end it. No administrative intervention is required. See
the ISAM error for more information about why the database server could
not end the transaction properly.


-630	Cannot prepare database server server-name for commit.

The specified database server cannot prepare the local transaction
associated with this IBM Informix STAR two-phase commit transaction.
Eventually, all participants roll back all work associated with the
transaction. No administrative intervention is required. See the ISAM
error for more information about why the database server could not
prepare to commit the local transaction.


-631	Cannot create optical cluster on column that is not TEXT or BYTE.

You can only create optical clusters on columns of TEXT or BYTE data
type. The column name is some other type. Check that the column is the
one you meant to specify, and review the definition of the table.


-632	Cannot create optical cluster.

An attempt to create an optical cluster has failed. See the ISAM error
for more information.


-633	Cannot drop optical cluster.

An attempt to drop an optical cluster has failed. See the ISAM error
for more information.


-634	Object does not exist.

You are trying to drop a trigger that does not exist. Check that you
are spelling the name of the trigger correctly. Also, you might query
the systriggers system catalog table to review the names of triggers in
the database.


-635	Not owner of object.

You are trying to drop a database object that you do not own. You might query
the appropriate system catalog table to see who owns the object. (For 
example, for a trigger, query the systriggers table.) You probably need 
to ask the owner of the database object or the database administrator 
to drop the object.


-636	Total size of key fields is too large or there are too many key fields.

You have violated one of the following constraints on the cluster key
that is specified in the ON clause of the CREATE OPTICAL CLUSTER
statement:

    *   The number of columns included in a composite cluster key
	exceeds 16.

    *   The length of a CHARACTER column exceeds 256 bytes.


-637	Cannot alter optical cluster.

An attempt to alter the size of an optical cluster has failed. See the
ISAM error for more information.


-638	Cannot cluster TEXT or BYTE columns on non-optical media.

You can create an optical cluster only on TEXT or BYTE columns that are
stored on optical media. Check that you have not specified the name of
a TEXT or BYTE column that is stored in a storage space.


-639	Cannot cluster TEXT or BYTE columns on different optical families.

All of the TEXT or BYTE columns specified in the FOR clause of the CREATE
OPTICAL CLUSTER statement must belong to the same optical family. Check
that the columns that are specified for an optical cluster do not
belong to different families.


-640	QPlan sanity failure line-number.

Running UPDATE STATISTICS might fix this internal error. If the error
recurs, note all circumstances and contact IBM Technical Support.


-641	Cannot reserve/release family on non-optical media.

The family name that is specified in the RESERVE or RELEASE statement
must exist on optical media. Check that you have not specified a
storage space with either of these statements.


-642	Family name must be a character string.

The optical family name that is specified in the RESERVE or RELEASE
statement must be either a character string, or a host or procedural
variable that evaluates to a character string. If you specified a
character string, check that you enclosed it in quotes.


-643	Volume must be a number.

The volume argument in the RESERVE or RELEASE statements must be
INTEGER or SMALLINT.


-644	FAMILY(), VOLUME(), and DESCR() require BLOB column on optical medium.

The argument to the FAMILY(), VOLUME(), or DESCR() function must be a
TEXT or BYTE column that is stored on optical media. Check that you
have not specified a column of a different data type or a TEXT or
BYTE column that is stored in a storage space.


-645	Cannot reserve volume.

An attempt to reserve an optical volume with the RESERVE statement has
failed. See the error from the optical subsystem (an error in the -7000
to -7199 range) for more information.


-646	Cannot release volume.

An attempt to release a requested optical volume with the RELEASE
statement has failed. See the error from the optical subsystem (an
error in the -7000 to -7199 range) for more information.


-647	Error evaluating math library function function-name.

The data type of the argument is correct, but the value passed to the
function is not appropriate for the math function. Check that you are
passing a legitimate value to the function.


-648	Cannot open DEBUG file for SPL routine trace.

An error occurred trying to open DEBUG trace file. This error can occur
when one of the directories in the specified debug file name does not
exist, or the directory is write protected. Check that the directory
path is valid and that group informix can write to the directory.


-649	The debug file name must be a NON-NULL CHAR or VARCHAR.

The argument that is specified for the debug file in the SET DEBUG
statement must be a character data type.


-650	Maximum varchar size has been exceeded.

This statement specifies a VARCHAR(m, r) column with a maximum width m
greater than allowed (255). Check the punctuation of the column
definition. If it is as you intended, redesign the table to use a
VARCHAR width that ranges from 1 character to 255 characters.


-651	Reserved column size > maximum column size (varchar).

This statement specifies a VARCHAR(m, r) column with a reserved width r
that is greater than the maximum width m. Check the punctuation of the
column definition. If it is as you intended, revise the statement so
that m is greater than or equal to r.


-652	Local variables do not allow default values.

An attempt was made to define a local variable with a default value.
Only global variables and parameters can have default values.

An example of the error follows:

DEFINE var INT DEFAULT 10; -- error

The correction is as follows:

DEFINE var INT;
LET var = 10;


-653	Variables declared as LIKE cannot be global.

A global variable was defined as LIKE. LIKE variables must be local
variables.

An example of the error follows:

DEFINE GLOBAL var LIKE tab.col; -- error

Correction: Do not use the LIKE keyword with global variables. Instead,
specify the data type explicitly.


-654	Bad use of PROCEDURE declaration type.

The procedure declaration was used either in the parameters or the
RETURNING clause. SPL routines cannot accept or return procedures.

An example of the error follows:

CREATE PROCEDURE testproc (proc1 procedure) -- error
        RETURNING procedure; -- error
	...
	END PROCEDURE

Correction: Do not attempt to use the procedure declaration type within
a parameter or the RETURNING clause.


-655	RETURN value count does not match procedure declaration.

The number of values that a procedure was declared to return in the
RETURNING clause does not match the number of values in a RETURN
clause.

An example of the error follows:

CREATE PROCEDURE testproc () RETURNING INT, INT;
	...
	RETURN 1,2,3; -- error
	...
	RETURN 1; -- error
        END PROCEDURE

Correction: In this example, return exactly two arguments.


-656	Routine is not declared to return values.

When the routine was declared, it did not contain a RETURNING clause to
indicate that the routine would not return any value, but then a RETURN
statement was found in the body of the routine.

An example of the error follows:

CREATE ROUTINE testproc() DEFINE a INT;
        LET a = 10;
        RETURN a + 1; -- error
        END ROUTINE

Correction: Add a RETURNING clause before the DEFINE statement, or
remove the RETURN statement.


-657	Cannot create a procedure within a procedure.

You cannot have a CREATE PROCEDURE statement within a CREATE PROCEDURE
statement.


-658	Variables declared as GLOBAL require a default value.

A global variable was not given a default value. Global variables
require a default value.

Example of error:

DEFINE GLOBAL glob INT; -- error

Correction:

DEFINE GLOBAL glob INT DEFAULT 10;


-659	INTO TEMP table required for SELECT statement.

A SELECT statement did not specify where to put the returned values.
SELECT statements within a procedure require either an INTO TEMP clause
or an INTO clause that references the appropriate procedural
variables.

Example of error:

CREATE PROCEDURE testproc()
	...
	SELECT col1, col2 FROM tab; -- error
        END PROCEDURE

Correction:

CREATE PROCEDURE testproc()
	...
	SELECT col1, col2 INTO var1, var2 FROM tab;
        SELECT col1, col2 FROM tab INTO TEMP another_table;
        END PROCEDURE


-660	Loop variable variable-name cannot be modified.

An attempt was made to modify the value of a loop variable in a FOR
statement. Loop variables cannot be modified inside a loop.

Example of error:

FOR i IN (1,2,3,4)
        LET i = i + 1; -- error
        END FOR

Correction: Use another variable in the LET statement.


-661	Number of variables does not match number of values returned.

The number of variables on the left side of a LET statement does not
match the number of values on the right side.

Example of error:

LET a,b = 10,20,39;
LET i,j = proc1()+proc2();
LET a,b = (SELECT c1 FROM tab)

Correction: Match the number of expressions on both sides of the LET
statement.


-662	Loop variable variable-name specified more than once.

A loop variable was used more than once in a FOREACH statement.

Example of error:

FOREACH SELECT col1, col2 INTO var, var FROM tab -- error
	...
	END FOREACH

Correction:

FOREACH SELECT col1, col2 INTO var1, var2 FROM tab
	...
	END FOREACH


-663	You are using more than one procedure-calling syntax for
procedure procedure-name.

While calling a procedure, some of the arguments were named, but others
were not.

Example of error:

LET var = proc (arg1 = 10, 20, arg3 = 30); -- error

Correction:

LET var = proc (arg1 = 10, arg2 = 20, arg3 = 30); --correct
LET var = proc (10,20,30);--correct


-664	Wrong number of arguments to system function function-name.

You have specified an incorrect number of arguments for the function 
function_name. Check that you are passing the correct number of arguments
to the function.


-665	Internal error on semantics - code-number.

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


-666	Variable variable-name must be declared INTEGER or SMALLINT.

In a FOR statement, loop variables that contain ranges must be declared
to be INT or SMALLINT.

Example of error:

DEFINE var CHAR(10);
FOR var IN (e1, e2 TO e3, e4) -- error
	...
	END FOR;

Correction: Because the FOR statement contains a range operator (the TO
clause), var must be declared as INT or SMALLINT.


-667	Variable variable-name not declared.

The specified variable was not declared. Check the spelling of the
undeclared variable to ensure that it is not causing the error.


-668	The system command cannot be executed or it exited with a non-zero status.

Either a system call failed in the operating system or the command that
was executed exited with a non-zero status.  

The following example shows a statement that might cause the system 
command to fail with an error:

SYSTEM 'hello';

Make sure that the system command is not trying to run a function or program 
that is not in your path or that is not applicable to the environment.

Make sure that you have provided a user ID and password when connecting
to the database server.  The database server must have the user's
password in order to execute a command on behalf of that user.

On Windows platforms, make sure the following Advanced User Rights have
been assigned to user "informix": Act as part of the operating system;
Increase quotas; Replace a process level token.

The following example shows a statement that will fails with error -668
and the ISAM error explanation '-255 Not in a transaction':

SYSTEM 'exit 255';

-669	Variable variable-name redeclared.

A variable has been declared twice in the same scope. See the IBM Informix
Guide to SQL: Tutorial for an explanation of the scope of procedural 
variables.

This error can also be seen when a DECLARE (or PREPARE) uses identifier
same as one of the declared procedural variables. Choose a different cursor
name or statement id instead.

For example, following DECLARE statement incorrectly uses cursor name same
as procedural variable:

    DEFINE spl_var INTEGER;
    ...
    DECLARE spl_var CURSOR FOR stmt_id1;

Following code fixes the issue in above sample code:

    DEFINE spl_var INTEGER;
    ...
    DECLARE cur_id CURSOR FOR stmt_id1;

-670	Variable variable-name declared as SERIAL or SERIAL8 or BIGSERIAL type.

The SERIAL or SERIAL8 or BIGSERIAL data type is not a legal procedure type.
Use the INTEGER or INT8 or BIGINT data type to match the SQL SERIAL or
SERIAL8 or BIGSERIAL data type.


-671	Routine invocation routine-name has duplicate parameter name.

A routine call named a parameter more than once.

Example of error:

LET var = proc (arg1 = 10, arg2 = 20, arg1 = 30);-- error


-671	Procedure call procedure-name has duplicate parameter name.

A procedure call named a parameter more than once.

Example of error:

LET var = proc (arg1 = 10, arg2 = 20, arg1 = 30);-- error


-672	Invalid data structure execution-tree.

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


-673	Routine routine-name already exists in database.

You attempted to create a routine that already exists in the database.
If you want to create a new version of the routine, use the DROP
ROUTINE statement to drop the routine before you attempt to create the
new version of the routine.


-674	Routine <routine-name> cannot be resolved.

You called a routine that does not exist in the database, you do not
have permission to execute the routine, or you called the routine
with too few or too many arguments. If a prepared statement invokes a
user-defined routine and your application or another application drops
the routine before the prepared statement is executed, you will
receive this error.

You might also see this error message if you write an expression that
calls an SPL routine (stored procedure) that returns no values. For
an SPL routine to be usable in an expression, the routine must return
a value.

Check that the name of the routine is correct, that you have execute
permission, that you specified the correct number of arguments
to execute a routine, and that the data types for the arguments are
appropriate. For a prepared statement that refers to the routine,
make sure that the routine still exists when you execute the statement.


-675	Illegal SQL statement in SPL routine.

An SQL statement that is not allowed in an SPL routine was executed.
This error occurs when a routine is called from an SQL data
manipulation statement.

Example of error:

CREATE PROCEDURE testproc (arg INT, id INT) RETURNING INT;
        UPDATE tab SET col = arg WHERE key = id; -- error
        RETURN id;
        END PROCEDURE;

SELECT col FROM tab WHERE testproc(tab.col, tab.key) = 10;

Do not use statements such as the preceding UPDATE statement in SPL
routines.


-676	Invalid check constraint column.

A check constraint that is specified at the column level can reference
only that column. To specify a check constraint that spans more than
one column, specify the check constraint at the table level. You cannot
create a check constraint for columns across tables.


-677	Check constraint cannot contain subqueries or procedures.

A check constraint cannot contain a subquery or a procedure. Subqueries
are disallowed in check constraints because they depend on the state of
the database. For data integrity, the evaluation of a check constraint
must not vary or depend on the state of the database.

Example of error:

   CREATE TABLE new_stock (
       stock_num   SERIAL PRIMARY KEY,
       unit_price  MONEY CHECK (unit_price >=
                   (SELECT unit_price FROM stock WHERE manu_code = 'HRO')),
       manu_code   CHAR(3));

Verify that your statement does not have a subquery or procedure in a
check constraint.


-678	Invalid subscript for column column-name in check constraint.

A subscripted column in a check constraint has subscripts outside the
bounds of the column. Check that the bounds specified in the
subscripted column do not exceed the maximum length of the column. If
you know the table name of the column, use the following subquery to
query the system-catalog tables to find out the maximum length of the
column:

SELECT collength FROM syscolumns WHERE colname = 'column-name'
        AND tabid = (SELECT tabid FROM systables
           WHERE tabname = 'table-name')


-679	Cannot read constraint violation data for constraint constraint-name.

See the ISAM error for more information. If this internal error recurs, note all circumstances and contact IBM Technical Support.


-680	Cannot write constraint violation data for constraint constraint-name.

See the ISAM error for more information. If this internal error recurs,
pase note all circumstances and contact IBM Technical Support.


-681	Column specified more than once in the INSERT list.

The error occurs if the user specifies a column name more than once in
the INSERT column list.


-682	Error reading constraint index on table table-name.

The system was unable to validate the constraint. See the ISAM error
for more information. If this internal error recurs, note all
circumstances and contact IBM Technical Support.


-683	Specified STEP expression will not traverse RANGE.

The evaluated value of the STEP expression in the FOR statement will
lead to an infinite loop.

Example of error:

   FOR i = 10 TO 20
           STEP -1; -- error
                ...
           END FOR

Correction: Correct either the range or the step expressions so that
the incremented values are within the range.


-684	Function <routine-name> returns too many values.

The number of returned values from a function is more than the number
of values that the caller expects.

Example of error:

   CREATE ROUTINE testroutine(arg INT) RETURNING INT, INT;
           RETURN 1,2;
           END ROUTINE

   SELECT col FROM tab WHERE col = testroutine(1); -- error


-685	Function <function-name> returns too few values.

The number of returned values from a function is less than the number
of values that the caller expects.

Example of error:

   CREATE ROUTINE testroutine (arg INT) RETURNING INT, INT;
           RETURN 1,2;
           END ROUTINE

   UPDATE tab SET (c1, c2, c3) = (testroutine(1)); -- error


-686	Function <function-name> has returned more than one row.

A function returned more than one row of values (for example, it
executed RETURN...WITH RESUME) when the caller expected only one row of
values.

Example of error:

   CREATE FUNCTION testroutine (limit INT) RETURNING INT;
           DEFINE i INT;
           FOR i IN (1 TO limit)
               RETURN i WITH RESUME;
           END FOR
           END FUNCTION;

   CREATE FUNCTION gettest() RETURNING INT;
           DEFINE var INT;
           LET var = testroutine (10); -- error
           RETURN var;
           END FUNCTION;


-687	Set debug file before tracing SPL routines.

A TRACE statement was executed before a SET DEBUG FILE statement. The
destination of the output of the TRACE statement is unknown. This error can
also apply to the TRACE OFF statement. 

Example of error:

    TRACE procedure; -- error

Correction:

    SET DEBUG FILE TO 'trace.out';
    TRACE procedure;


-688	Variable variable-name must be declared CHAR or VARCHAR.

You declared the variable as a data type other than CHAR or VARCHAR.
Correct the declaration, and try again.


-689	Global variable variable-name declared inconsistently.

Two or more procedures were executed that defined the same global
variable with different data types.

Example of error:

CREATE PROCEDURE test1()
        DEFINE GLOBAL glob INT DEFAULT 10;
	...
	END PROCEDURE

CREATE PROCEDURE test2()
        DEFINE GLOBAL glob CHAR (9) DEFAULT USER;
	...
	END PROCEDURE

Correction: Declare global variables consistently. (Using appropriate
naming conventions would be useful.) Two variables of the same data
type but different lengths are considered inconsistent.


-690	Cannot read keys from referencing table table-name.

The referential constraint could not be validated. See the ISAM error
for more information. If you are using cascading deletes, database
logging must be on.


-691	Missing key in referenced table for referential constraint
constraint-name.

A referential constraint has been violated. This condition usually
occurs when you are trying to insert a value into or update the value
of a column that is part of a referential constraint. The value you are
trying to enter does not exist in the referenced (parent-key)
column. If you are using cascading deletes, database logging must be
on.


-692	Key value for constraint constraint-name is still being referenced.

You have violated a referential constraint. This situation usually
occurs when you are trying to delete a row in a column (parent key)
that another row (child key) is referencing. If you are using cascading
deletes, database logging must be on.


-693	System command expects a non-null value.

A null value was passed to the SYSTEM statement.

Example of error:

DEFINE c CHAR(100);
        LET c = NULL;
	...
	SYSTEM c; -- error


-694	Too many arguments passed to procedure procedure-name.

More arguments were passed to a procedure than a procedure was declared
to accept.


-695	Argument is not a parameter of procedure procedure-name.

A named parameter was passed to a procedure, but the named parameter
does not exist.

Example of error:

CREATE PROCEDURE testproc (arg1 INT, arg2 INT) RETURNING INT;
	...
	RETURN 1;
        END PROCEDURE

SELECT col FROM tab WHERE testproc (arg1 = 10, arg5 = 20); -- error


-696	Variable variable-name has undefined value.

An SPL variable was referenced or a row field was set before 
a value was assigned.

Example of error:

DEFINE my_row_var1 (last_name CHAR(20), id INTEGER);
DEFINE i, j INT; 

LET i = j + 1;                -- error
LET my_row_var1.id = new_id;  -- error

While

LET my_row_var1 = ROW(NULL::CHAR(20), NULL::INTEGER)::person_rt;
LET my_row_var1.id = new_id;  -- success

Correction: Assign all variables and parameters valid values before
you use them.

Row type variables are allowed in SPL routines. Such
variables must be initialized before they are used. To initialize
a row type variable, you must initialize the entire variable.
Initializing each field will not substitute for initializing the
entire variable, and in fact you cannot initialize the individual
fields until after you have initialized the entire variable. The
following example shows correct and incorrect initialization of
row type variables in SPL.  

-- Example showing that row type variables in SPL must have the entire
-- variable initialized. It is not sufficient to initialize the fields
-- without initializing the entire variable.
 
   CREATE DATABASE tango;

   drop table table1;
   drop row type person_rt restrict;
   drop function create_person_rt;
   
   CREATE ROW TYPE person_rt (last_name CHAR(20), id INTEGER);
   
   CREATE FUNCTION create_person_rt(new_name CHAR(20), new_id INTEGER)
   RETURNING person_rt;
   DEFINE my_row_var1 person_rt;
   -- You cannot initialize the individual fields of the variable until you
   -- have initialized the entire variable. If the following statement were 
   -- executed at this point, it would fail with error -696.
   -- LET my_row_var1.id = new_id;   
   -- Initialize the entire variable.
   LET my_row_var1 = ROW(NULL::CHAR(20), NULL::INTEGER)::person_rt;
   -- Now set the individual fields.
   LET my_row_var1.id = new_id;
   LET my_row_var1.last_name = new_name;  
   RETURN my_row_var1;
   END FUNCTION;
    
-- Sample usage:
 
   CREATE TABLE table1 (person_column person_rt);
   INSERT INTO table1 (person_column) VALUES (create_person_rt('Uhuru', 128));
    
   CLOSE DATABASE;
 
   You must initialize the entire variable because the engine can
   track whether or not the entire variable has been initialized
   but cannot track initialization on a field-by-field basis.


-697	STEP expression evaluated to ZERO.

The STEP expression of a FOR statement evaluated to zero.

Example of error:

LET e = -1;
FOR i = 10 TO 20
        STEP e+1; -- error
        ...
        END FOR

Correction: Change the STEP expression so that it evaluates to a
nonzero value.


-698	Inconsistent transaction. Number and names of servers rolled
back - servers.

This message is returned if an IBM Informix STAR two-phase commit or a
distributed transaction is implemented with a mixed result. That is,
some database servers participating in the transaction rolled back
their parts of the global transaction, but other database servers
committed their parts of the global transaction. The number of database
servers that rolled back work is always accurate, but the list of
server names (specified by DBSERVERNAME values) can be incomplete. If a
large number of servers rolled back work, the list might be truncated
to save space. Refer to the message log of the coordinator database
server for a complete list of server names. If this error message is
returned, you must determine whether your networked database system is
in an inconsistent state. This procedure is described in detail in your
Administrator's Guide.


-699	Transaction heuristically rolled back.

This message is returned if all participating database servers
heuristically roll back an IBM Informix STAR two-phase commit transaction.
Because all database servers rolled back the transaction, the networked
database system remains consistent.


-700	Statement is invalid within a global transaction.

This error is generated when a user attempts to execute a BEGIN WORK,
COMMIT WORK, or ROLLBACK WORK statement within a global transaction.


-701	Statement is invalid within the XA environment.

This error is generated when you attempt to execute any of the
following statements within an X/Open distributed
transaction-processing environment:

    *   CLOSE DATABASE

    *   CREATE DATABASE

    *   DROP DATABASE

    *   SET LOG

    *   SAVEPOINT

    *   RELEASE SAVEPOINT

    *   ROLLBACK TO SAVEPOINT

Within this environment, you can execute a single DATABASE statement
after an xa_open call to specify a current database. However, after
this database is selected, no other DATABASE statement can be executed.
This error is generated when you attempt to execute a second DATABASE
statement.


-702	Cannot open database in exclusive mode.

Within an X/Open distributed transaction processing environment, you
cannot open a database in exclusive mode.


-703	Primary key on table table-name has a field with a null key value.

An attempt was made either to insert a null value into a column that is
part of a primary key, or to add a primary constraint to a table that
has a NULL value in one of the key columns.


-704	Primary key already exists on the table.

A table can have only one primary key.


-705	Cannot drop/modify procedure procedure-name. It is currently in use.
 
An attempt was made either to drop a currently executing procedure or
to run UPDATE STATISTICS on a currently running procedure. This
condition can occur if a procedure tries to drop itself or if a nested
procedure tries to drop a procedure that called it.

Example of error:

   CREATE PROCEDURE testproc()
   ...
   DROP PROCEDURE testproc; -- error 
   END PROCEDURE

Correction: You can use an ON EXCEPTION statement to trap this error
and not carry out the DROP PROCEDURE or UPDATE STATISTICS statement.

This error also occurs if you try to drop a function or procedure
that a functional index is using.

This error also occurs if you try to drop a function or procedure
that a xadatasource type is using.

-706	Execute privilege denied on procedure procedure-name.

A user who does not own the procedure or is not DBA must have Execute
privilege in order to run a procedure.


-707	TEXT and BYTE columns in optical cluster must be distinct.

The same column is specified more than once in the column list of the
FOR clause in the CREATE OPTICAL CLUSTER statement. Change your
statement so that no column appears more than once.


-708	Optical cluster cluster-name already exists.

You have attempted to create a new optical cluster with the name of an
existing cluster. You must either drop the existing cluster or
re-execute your statement using a different cluster name.


-709	TEXT and BYTE column column-name is already clustered.

You have already created an optical cluster using the named column.
Because a single column can be part of only one optical cluster, your
attempt to create a new cluster on this column has failed.


-710	Table <table-name> has been dropped, altered, or renamed.

This error can occur with explicitly prepared statements. These statements
have the following form:

    PREPARE statement id FROM "quoted_string"

After a statement has been prepared in the database server and before
execution of the statement, a table to which the statement refers might have
been renamed or altered, possibly changing the structure of the table.
Problems might occur as a result. Adding an index to the table or
altering the fragmentation scheme after preparing the statement can also
invalidate the statement.

This error can also occur with SPL routines. Before the database server
executes a new SPL routine the first time, it optimizes the code
(statements) in the SPL routine. Optimization makes the code depend on
the structure of the tables that the procedure references. If the table
structure changes after the procedure is optimized, but before it is
executed, this error can occur.

The Auto Re-prepare feature allows the database server to check prepared 
statements and stored procedures prior to execution for changes to any tables
that they reference. This feature prevents many of the common causes for the
-710 error.

When the Auto Re-prepare feature is enabled the following semantics apply:

Before execution of a prepared statement or SPL routine the database server
checks to determine if the structure of directly or indirectly referenced
tables may have changed. If changes are detected the statement is checked
prior to re-prepare:

    * A change in the number or type of columns in the SELECT list will result
      in error -710 being raised. In this case the application should prepare
      and execute the statement again to allow the database server to 
      re-describe the SELECT list.

    * For other changes the database server automatically re-prepares the
      statement. If this is successful the statement will then be executed.

Stored procedures are re-optimized and executed if the reoptimization succeeds.

An error that occurs during the re-prepare of a statement or re-optimization of
a SPL routine is returned to the application in place of the -710 error.

When the Auto Re-pepare feature is not enabled the following semantics apply:

A subsequent OPEN command for a cursor will fail if the cursor refers to the
invalid prepared statement; the failure will occur even if the OPEN command has
the WITH REOPTIMIZATION clause.

If an index was added or the fragmentation scheme was altered after the
statement was prepared, you must prepare the statement again and declare
the cursor again. You cannot simply reopen the cursor if it was based on a
prepared statement that is no longer valid.

This error can also occur if the table referenced by the statement has 
any foreign key references to tables that were renamed after the statement
was prepared.

Each SPL routine is optimized the first time that it is run (not when
it is created). This behavior means that an SPL routine might succeed
the first time it is run but fail later under virtually identical
circumstances. The failure of an SPL routine can also be intermittent
because failure during one execution forces an internal warning to
reoptimize the procedure before the next execution.
 
The database server keeps a list of tables that the SPL routine
references explicitly. Whenever any of these explicitly referenced tables is
modified, the database server reoptimizes the procedure the next time the
procedure is executed.

However, if the SPL routine depends on a table that is referenced only
indirectly, the database server cannot detect the need to reoptimize the
procedure after that table is changed. For example, a table can be
referenced indirectly if the SPL routine invokes a trigger. If a table
that is referenced by the trigger (but not directly by the SPL routine)
is changed, the database server does not know that it should reoptimize the
SPL routine before running it. When the procedure is run after the
table has been changed, this error can occur.

Use one of two methods to recover from this error:

    *   Issue the UPDATE STATISTICS statement to force reoptimization of the
        procedure.

    *   Rerun the procedure.

To prevent this error, you can force reoptimization of the SPL routine.
To force reoptimization, execute the following statement:

    UPDATE STATISTICS FOR PROCEDURE procedure_name

You can add this statement to your program in either of the following ways:

    *   Place the UPDATE STATISTICS statement after each statement that
        changes the mode of an object.

    *   Place the UPDATE STATISTICS statement before each execution of the
        SPL routine.

For efficiency, you can put the UPDATE STATISTICS statement with the action
that occurs less frequently in the program (change of object mode or
execution of the procedure). In most cases, the action that occurs less
frequently in the program is the change of object mode.

When you follow this method of recovering from this error, you must execute
the UPDATE STATISTICS statement for each procedure that references the 
changed tables indirectly unless the procedure also references the tables
explicitly.

You can also recover from this error by simply rerunning the SPL routine.
The first time that the stored procedure fails, the database server
marks the procedure as in need of reoptimization. The next time that
you run the procedure, the database server reoptimizes the procedure before
running it. However, running the SPL routine twice might be neither
practical nor safe. A safer choice is to use the UPDATE STATISTICS statement
to force reoptimization of the procedure.

-711	Cannot insert encoded BLOB descriptor.

An attempt to insert an encoded blob descriptor by means of the DESCR()
function has failed. See the ISAM error for more information.


-712	Cannot insert encoded BLOB descriptor in non-optical BLOB columns.

You have attempted to use the DESCR() function to insert an encoded
blob descriptor into a TEXT or BYTE column that is stored in a dbspace
or blobspace. You can use this function only to insert descriptors into
blob columns that are stored on optical media.


-713	Cannot decode encoded BLOB descriptor.

The decoding of a blob descriptor prior to its insertion into a data
row has failed. See the error from the optical subsystem (an error in
the -7000 to -7199 range) for more information.


-714	Cannot encode BLOB descriptor.

The encoding of a blob descriptor for storage on optical media has
failed. See the error from the optical subsystem (in the -7000 to -7199
range) for more information.


-715	Transaction state error.

An error occurred in retrieving a transaction state. See the ISAM error
for more information.


-716	Possible inconsistent transaction. Unknown servers are server-name-list.

This message appears after an administrator ends a coordinator
database server process, thread, or session using tbmode -z or onmode
-z any time after the coordinator issues its decision either to commit
or roll back a two-phase commit transaction. You must examine the
message log or the logical log at each of the database servers for
which the status is listed as unknown to determine whether the local
transaction was committed or rolled back. If some participating
database servers rolled back the transaction, and others committed it,
you must determine whether your networked database system is in an
inconsistent state. This procedure is described in detail in your
Administrator's Guide.


-717	Invalid argument passed to system function function-name.

An invalid data type has been passed to one of the arithmetic functions
(HEX(), TRUNC(), ROUND()).


-718	Statement is invalid while a global transaction is suspended.

If a database server that is acting as a Resource Manager in an X/Open
distributed transaction-processing environment has suspended a
transaction, its next statement must be xa_start. All other statements
are disallowed.


-719	Loop variable variable-name cannot be declared GLOBAL.

A global variable cannot be used as a loop variable. Redefine the
variable to be local to the loop, or use another (local) variable as
the loop variable.


-720	The number of returned values and of SPL variables do not match.

The list of SPL variables that follows the INTO keyword has a different 
cardinality from the number of values in each row of the active set.  
This error can occur during the FOREACH statement of SPL, or during the 
FETCH statement of dynamic SQL. 

In a FOREACH statement with an embedded SELECT statement, the variable 
list that follows the INTO keyword in the SELECT statement does not match 
the number of columns or expressions in each row that the SELECT statement 
retrieves.  In a FOREACH statement with an embedded EXECUTE FUNCTION or 
EXECUTE PROCEDURE statement, the INTO clause that follows the routine 
argument list specifies a list of variables whose number does not match 
the number of values that the routine returns.   

In a FETCH statement, the variable list that follows the INTO keyword does 
not match the number of columns or expressions in each row that a SELECT 
statement retrieves, or does not match the number of values returned by a 
function call. A DECLARE statement in the same SPL routine associated the 
cursor that FETCH specifies with a SELECT statement or with an 
EXECUTE FUNCTION or EXECUTE PROCEDURE statement.  

For example, the following dynamic SQL statements inside a procedure body 
returns this error when the procedure is executed, because fetching from 
the cursor returns two values (c1, c2) but has only one local variable 
(l_out1) to receive those two column values:

   create procedure proc()
   define qry_str varchar(120);
   define l_out1  char(10);

      let qry_str = "select c1,c2 from t1";

      prepare stmt_id from qry_str;

      declare my_cur cursor for stmt_id;

      open my_cur;

      fetch my_cur into l_out1;

      ....
   end procedure; 

To avoid this error, review the logic of the FOREACH or FETCH statement to 
verify that the list of variables in the INTO clause matches the number of 
values in the projection list of the SELECT statement, or matches the number 
of values returned by the routine. Both FOREACH and FETCH require a 1-to-1 
correspondence in number, order, and data type between the list of SPL 
variables in the INTO clause and the values returned by a call or in each 
row returned by a query.

If more than one cursor is open when a FETCH statement receives this error, 
make sure that the FETCH statement references the correct cursor.


-721	SPL routine (<routine-name>) is no longer valid.

You are attempting to execute a procedure from an EXECUTE statement,
but it has been redefined since the PREPARE statement was run. You must
use the PREPARE statement again on the EXECUTE PROCEDURE statement.

For example, the following sequence of code would cause this error:

$prepare pr_stat from 'execute procedure testproc()';
	...
	/* drop procedure testproc create procedure testproc() ......
	[same application or different] */
	...
	$execute pr_stat;/* triggers error -721 */


-722	Out of stack space.

The database server has run out of memory for stack space. Ask the
Informix database administrator to increase the STACKSIZE parameter
that is specified in the $ONCONFIG file to allocate more memory. The 
database server must be restarted for the change to take effect.


-723	Cannot disable logging in an ANSI-compliant database.

You attempted to use the START DATABASE <database> WITH NO LOG syntax
to remove database logging on an SE database that is ANSI compliant.
You cannot turn off logging by running this statement on this kind of
database.


-724	System initialization file $INFORMIXDIR/cnv50t60.sql is missing.

Check that $INFORMIXDIR/cnv50t60.sql is in place and readable. If it
is, and the system still fails, reinstall the system.


-725	Error occurred while reading system initialization file
$INFORMIXDIR/cnv50t60.sql.

Check that the script file $INFORMIXDIR/cnv50t60.sql is readable. If it
is, and the failure still occurs, reinstall the product.


-726	First argument to dbinfo() must be a quoted string constant.

The first argument to dbinfo() should be a quoted string constant. If
the first argument to dbinfo() is the string 'version', then the second
argument should also be a quoted string constant.


-726	First argument to dbinfo() must be a quoted string constant.

Check that the first argument to dbinfo() is a quoted string that
corresponds to one of the following values: 'dbspace', 'sqlca.sqlerrd1',
or 'sqlca.sqlerrd2'.


-727	Invalid or NULL tblspace number given to dbinfo(dbspace).

You called the dbinfo() function with the 'dbspace' string constant as
the first parameter. You must provide either the number of a valid
tablespace or an expression that evaluates to such a number as the
second parameter. Check that you supplied a number as your second
parameter and that it corresponds to the number of a valid tablespace.


-728	Unknown first argument of dbinfo(<argument>).

Check that the first argument to dbinfo() is a quoted string that corresponds
to one of the following values: 'dbspace', 'version', 'sqlca.sqlerrd1',
'sqlca.sqlerrd2', 'sessionid', 'coserverid', 'utc_to_datetime',
'utc_current', 'get_tz', or 'dbhostname'.


-728	Unknown first argument of dbinfo argument-name.

The valid arguments to the dbinfo() function are the quoted string
'dbspace' followed by the number of a valid tablespace, or one of the
following two values: 'sqlca.sqlerrd1' or 'sqlca.sqlerrd2'. Check that
you supplied one of these values and enclosed the string in quotes.


-729	Trigger has no triggered action.

Your CREATE TRIGGER statement does not include a triggered action. Add
a triggered action list to the trigger definition, and resubmit the
CREATE TRIGGER statement.


-730	Cannot specify REFERENCING if trigger does not have FOR EACH ROW.

You included a REFERENCING clause in a CREATE TRIGGER statement that
does not include a FOR EACH ROW triggered-action section. Either remove
the REFERENCING clause or, if it is appropriate, add the missing
keywords FOR EACH ROW, followed by the triggered actions that are to
occur at that time.


-731	Invalid use of column reference in trigger body.

For insert and delete triggers, the offending column is being used in
the INTO clause of the EXECUTE PROCEDURE statement (which is only
allowed for an update trigger). Remove the column names from the INTO
clause.


-732	Incorrect use of old or new values correlation name inside trigger.

You cannot use the new or old correlation name outside the FOR EACH ROW
section or in the INTO clause of the EXECUTE PROCEDURE statement. You
cannot use the new or old correlation name to qualify the SELECT COUNT
DISTINCT column. For example, the following statement returns this
error:

SELECT COUNT (DISTINCT oldname.colname)

You cannot specify an old correlation name for an insert trigger. You
cannot specify a new correlation name for a delete trigger.


-733	Cannot reference procedure variable in CREATE TRIGGER or CREATE VIEW
statement.

You have a CREATE TRIGGER or CREATE VIEW statement inside an SPL
routine, and within the CREATE TRIGGER or CREATE VIEW statement,
you reference a variable that is defined in the SPL routine.
This action is not legal. Remove the reference to the SPL-routine
variable from the CREATE TRIGGER or CREATE VIEW statement and try again.


-734	Object name matches old or new values correlation name.

This error is returned in three cases:

    *   The name of the triggering table or the synonym, if it is used,
	matches the old or new correlation name in the REFERENCING
	clause.

    *   The name of a table or a synonym that is referenced in the
	action clause matches either the old or new correlation name in
	the REFERENCING clause.

    *   The old correlation name matches the new correlation name.

Change either the correlation name or the table name, and execute the
CREATE TRIGGER statement again.


-735	Cannot reference table that participates in cascaded delete.

The child table is either referenced in a correlated subquery that is part of
a DELETE or MERGE statement or as a source table in a MERGE statement. The 
child table cannot be one of the tables on which a delete would cascade. 
These actions are not allowed because the result depends on the order in which 
the rows are processed. Rewrite your query so that the child table is not 
referenced in a correlated subquery, or as source table of the MERGE statement,
or both.


-736	The RESOLUTION and SAMPLING SIZE clauses are not valid for the 
LOW mode of the UPDATE STATISTICS statement.

Because data distributions are constructed only in the MEDIUM or HIGH
modes of the UPDATE STATISTICS statement, specifying the resolution or 
sampling size is not meaningful in LOW mode. 

Remove the RESOLUTION clause and the SAMPLING SIZE clause from the statement.

To use the SAMPLING SIZE clause, change the mode to MEDIUM. To use the 
RESOLUTION clause, change the mode to MEDIUM or HIGH.


-737	The confidence value and the SAMPLING SIZE clause are not valid for the 
HIGH mode of the UPDATE STATISTICS statement.

Remove the confidence value and the SAMPLING SIZE clause from the statement. 

For example, the following statement has a confidence value of 0.99:

UPDATE STATISTICS HIGH RESOLUTION 0.1 0.99;

The corrected statement is:

UPDATE STATISTICS HIGH RESOLUTION 0.1;

If you want a distribution that is based upon sampling rather than one
that uses all of the data in a column, change the mode from HIGH to MEDIUM 
and you specify number of samples using the SAMPLING SIZE clause.


-738	DROP DISTRIBUTIONS is only valid in LOW mode.

By default, LOW mode does not remove distributions, so you need to use
the DROP DISTRIBUTIONS clause. To remove HIGH or MEDIUM distributions,
use the DROP DISTRIBUTIONS clause.


-739	Confidence must be in the range [0.80, 0.99] (inclusive).

If the value of the confidence desired is greater than 0.99, use HIGH
mode. A value of less than 0.80 is not allowed because it will probably
yield a poor distribution. If you are reducing the confidence to reduce
the time that is required to execute the UPDATE STATISTICS statement,
consider using a larger resolution value.


-740	Resolution must be greater than 0.005 and less than, or equal to, 10.0.

The value of this parameter determines how finely the data distribution
is resolved. A resolution of 10.0 implies that the accuracy of any
estimate for the application of any single selection filter is limited
to (+ or -) 5 percent. A value greater than 10.0 would be of little
value because it would not provide sufficient detail about the
distribution of the data.


-741	Trigger for the same event already exists.

You are creating a trigger for an event, but another trigger already
exists for that event. You can have only one insert or delete trigger
on a table. If you are defining multiple triggers that occur on an
update, the column lists in the UPDATE statements must be mutually
exclusive. You cannot name a column as a triggering column in more than
one UPDATE clause.


-742	Trigger and cascading-delete referential constraint cannot coexist.

Delete triggers cannot coexist with referential constraints.

This error occurs if you try to add a delete cascade foreign key to a table 
that already has a delete trigger on it. This error also occurs if you try
to add a delete trigger to a table that already has a delete cascade foreign
key.


-743	Object object_name already exists in database.

You are trying to define an object that already exists in the database.


-744	Illegal SQL statement in trigger.

This error is returned when the triggered SQL statement is BEGIN WORK,
COMMIT WORK, ROLLBACK WORK, or SET CONSTRAINTS. These statements are
not allowed as triggered actions. Remove the offending statement.


-745	Trigger execution has failed.

This message is defined for general use to apply to error conditions
that you specify in an SPL routine that is a triggered action.


-746	message-string

You supply message-string for this message. You can apply this message 
to error conditions that you specify in an SPL routine. The corrective
action for this error depends on the condition that caused it. You, the user,
define both the condition and the message text.


-747	Table or column matches object referenced in triggering statement.

This error is returned when a triggered SQL statement acts on the
triggering table, or when both statements are updates, and the column
that is updated in the triggered action is the same as the column that
the triggering statement updates.


-748	Exceeded limit on maximum number of cascaded triggers.

You exceeded the maximum number of cascading triggers, which is 61. You
may be setting off triggers without realizing it. You can query the
systriggers system catalog table to find out what triggers exist in the
database. To trace the triggered actions, place the action clause of
the initial trigger in an SPL routine, and use the SPL TRACE
statement.


-749	Remote cursor operation disallowed with pre-5.01 server.

An external database server before Version 5.01 sent the triggering
statement or cursor operation. This action is not allowed.


-750	Invalid distribution format found for table_name.

This internal error should not occur unless the database has been
corrupted in some way. To rebuild the distribution, use UPDATE
STATISTICS. If the error recurs, note all circumstances and
contact IBM Technical Support.


-751	Remote procedure execution disallowed with pre-5.01 server.

The action clause of the trigger contains an SPL routine that is
not called in a data manipulation statement, and an external database
server before Version 5.01 will execute the procedure. This action is
not allowed. An SPL routine that is called within a data
manipulation statement cannot execute certain SQL statements, including
transaction-related statements. Transaction-related statements are not
allowed within an SPL routine that is a triggered action. A database
server before Version 5.01 cannot check for this condition, so
the procedure is not allowed. If possible, execute the procedure on a
Version 5.01 or later database server.


-752	All Smart Disk devices are busy.

Wait a while and retry your Smart Disk operation.


-753	Access denied - Single user limit has been exceeded.

Licensing enforcement is configured for only one user; multiple users
cannot use the product at the same time. If you are using the product
from a remote computer, the product is licensed only for a nonnetworked
environment.If you are using the product from a local computer, wait
until the current user exits and try again.


-754	Cannot access the license file.

The system cannot find the user license file. The user license file
might not have been installed, or it might have been installed
improperly. Also, you might not have the correct file or directory
permissions to access the user license file. Consult your installation
documentation.


-755	Cannot access the license file to release license.

You might not have appropriate permission for your particular action.
Check with your system administrator.


-756	Evaluation version has expired.

The evaluation version of this product will work only for a specified
period of time. This version allows you to evaluate the product but not
use it permanently. When the evaluation version expires, call IBM
to order a standard version of the product.


-757	File open for light append can't pseudo close.

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


-758	Cannot implicitly reconnect to the new server server_name.

If you use the CONNECT TO statement to connect to a server, you cannot
implicitly reconnect to another server through one of the DATABASE
statements (DATABASE, START DATABASE, and so on). You must switch to it
with the SET CONNECTION statement.


-759	Cannot use database commands in an explicit database connection.

If you use the CONNECT TO database@server syntax to connect to a database
and server, you cannot select another database until you disconnect your
current connection.


-760	Remote procedure must commit or rollback before returning.

Your remote procedure must execute a COMMIT WORK or ROLLBACK WORK
statement before that procedure returns control to your application.


-761	INFORMIXSERVER does not match either DBSERVERNAME or DBSERVERALIASES.

Your INFORMIXSERVER environment variable does not match the
DBSERVERNAME or any of the DBSERVERALIASES settings in the ONCONFIG
configuration file of the server to which you are trying to connect.
Check your environment variables and the ONCONFIG configuration file.
Check that INFORMIXSERVER matches one of the settings in the ONCONFIG
file.


-762	Stack overflow occurred during statement parse.

This error indicates that an internal memory limitation in the SQL
parser has been reached. This condition can occur if your query
contains many nested expressions. For example, the query might contain
many occurrences of AND and/or OR in the WHERE clause. To work around
this condition, rewrite the query to eliminate some of the nested
expressions.


-763	Error in auditing environment initialization.

This all-purpose message indicates a problem when a user tries to
connect to a secure database server. Contact your security
administrator or DBA for how to proceed.


-764	Only DBA can run update statistics on a database in this mode.

You tried to run the UPDATE STATISTICS statement with the DROP
DISTRIBUTIONS clause on the entire database in a mode other than LOW.
Only user informix or the database administrator can do perform this
action.


-765	Cannot EXECUTE a statement that has been DECLAREd.

You cannot execute a prepared statement that has been declared.
However, to specify output variables for a prepared singleton SELECT
statement, use EXECUTE INTO (or EXECUTE PROCEDURE INTO) instead of
executing DECLARE, OPEN, and FETCH statements.


-766	String must be null terminated.

With IBM Informix ESQL/C, if you use a host variable in an INSERT statement
or in the WHERE clause of an SQL statement, and the database is ANSI
compliant, the string must be null terminated.


-767	Cannot UPDATE/INSERT a remote table using views with check options.

You cannot perform an UPDATE or INSERT operation on a table that
resides across a network when you are using views that have check
options. Remove the all check options from the view, or perform the
UPDATE/INSERT locally.


-768	Internal error in routine routine-name.

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


-769	Internal - iterator execution/phase error parameter.

If you cannot find a direct cause for this internal error, note
all circumstances and contact IBM Technical Support.


-770	Bad fragment id specified.

If you cannot find a direct cause for this internal error, note
all circumstances and contact IBM Technical Support.


-771	Bad table lock id specified.

If you cannot find a direct cause for this internal error, note
all circumstances and contact IBM Technical Support.


-772	Record/key doesn't qualify for any table/index fragment.

This error can occur during a record insert or update. The most likely
cause is an incorrect fragmentation specification that did not specify
a REMAINDER. The easiest correction is to add a REMAINDER fragment to
your SQL statement. However, the best correction is probably to
reexamine the original fragmentation specification, figure out what is
wrong, and fix it with an ALTER FRAGMENT statement.

For interval fragmented table or index, ensure that automatic interval
fragment creation is enabled. The following query can be used to determine if
automatic interval fragment creation is enabled for a table and its indexes:

    SELECT t.tabname, f.indexname,
	   decode(bitand(f.flags, 2048), 0, 1, 0) intvl_enabled
        FROM sysfragments f, systables t
        WHERE f.tabid = t.tabid AND
              f.evalpos = -2 AND
              t.tabname = <tabname>;

The following are examples on how to enable automatic interval fragment
creation for an interval fragmented table or index:

    ALTER FRAGMENT ON TABLE <tabname> MODIFY INTERVAL ENABLED;
    ALTER FRAGMENT ON INDEX <idxname> MODIFY INTERVAL ENABLED;


-773	Expression required for new fragment.

When you add a fragment to an expression-based fragmentation strategy,
you must specify an expression for the new fragment. Restate your SQL
statement to include a fragment expression.


-774	Cannot specify fragment expressions with a round-robin fragmentation.

If table fragmentation is based on a round-robin strategy, you cannot
specify a fragment expression during an ALTER FRAGMENT operation.


-775	Fragment partition name not used by table/index.

The partition that is specified during an ALTER FRAGMENT operation is
incorrect because that partition contains no fragment. 
Specify a partition that has a fragment. Partition names default to the
dbspace name if not specified at create time.


-776	Alter fragment error: unable to move rows to new fragmentation scheme.

During an ALTER FRAGMENT operation, the rows could not be moved to
another fragmentation strategy. See the accompanying ISAM error for
more information on why the ALTER FRAGMENT operation failed.


-777	Internal - function not valid on fragmented table.

If you cannot find a direct cause for this internal error, note
all circumstances and contact IBM Technical Support.


-778	Unable to alter fragmentation scheme on index or table.

During an ALTER FRAGMENT operation, the fragmentation strategy for the
index or table could not be altered. See the accompanying ISAM error for more
information on why the ALTER FRAGMENT operation failed.


-779	Duplicate table name in the alter fragment specification.

You cannot attach the same table multiple times. Check that your alter
fragment specification attaches the same table only once.


-780	Table/index is not fragmented.

You cannot perform the ALTER FRAGMENT operation because the table or
index is not fragmented. Fragment the table or index, or do not perform
the fragmentation operation.


-781	Cannot alter fragmentation on a temp table.

You tried to alter a fragment that is based on a temporary table. In
general, dynamic modification of a TEMP table is not allowed. You must
re-create the temporary table if you require a different fragmentation
scheme.


-782	Attached table is fragmented.

When you attach tables, the consumed table cannot be fragmented.


-783	Cannot attach because of incompatible schema.

Incompatible table schemas do not allow you to perform an attach. When
you perform an attach, the table schemas must be identical and tables must
be compatiable from LBAC perspective. Use the ALTER TABLE statement to 
make the schemas identical, the surviving table and consumed table
to be protected by the same security policy, and make the protected 
columns to be protected by the same set of security labels. Then perform 
an ALTER FRAGMENT...ATTACH operation.


-784	Cannot detach because of the existing referential constraints.

Existing referential constraints do not allow you to perform a detach.
You must drop the referential constraints before you perform the detach
on the dbspace/partition or table.


-785	Cannot drop column because of table or index fragmentation.

You must alter fragmentation expressions to remove references to the
column before the column can be dropped.


-786	Cannot attach to this table because it is not in the list of tables in the ATTACH clause.
 
The surviving table is either nonfragmented or hash-fragmented and must
appear in the attach list in order for its existing fragment to be 
properly positioned in the resulting fragmentation scheme.


-787	Index fragmented same-as-table cannot be altered.

If you do not specify storage-spec in a CREATE INDEX statement, the
indexes are fragmented the same as the underlying table, subject to all
the restrictions on fragmented indexes. For example, an error is
returned if the underlying fragmentation strategy is round-robin, and
the index is unique. You cannot alter this type of index fragmentation.
If you want to change the index fragmentation, use the INIT option of
ALTER INDEX to detach the index. That operation makes the index and
table independent and lets you alter each independently.


-788	Unknown operator/type.

If you cannot find a direct cause for this internal error, note
all circumstances and contact IBM Technical Support.


-789	Internal error, expression not properly defined.

If you cannot find a direct cause for this internal error, note
all circumstances and contact IBM Technical Support.


-790	Cannot create interval fragment.

An error occurred while creating an interval fragment. Retry the operation
after some delay. If the error persists, note all circumstances and contact
IBM Technical Support.


-791	Cannot find fragment for the row.

An error occurred while finding a fragment for the row. For an
interval fragmented table or index, a failure occurred while evaluating
the fragment position for the row.

Examine the data value in the row with the definition of your
fragmentation strategy to verify that the row can be stored in one of
the initial range fragments or the interval fragments.


-792	Cannot update the sysfragments system catalog table for an interval fragment.

An error occurred while updating the sysfragments system catalog table for the
newly created interval fragment. Insufficient disk space is a common cause of
this error.


-793	Page size of the dbspace does not match page size of the table or index.

The page size of the dbspace does not match page size of the table or index.
All fragments of a table or index must be created in dbspace of same page
size. If this is an interval fragmented table or index, ensure that all
dbspaces in the STORE IN clause have same page size and match the page 
size of the initial fragment dbspaces.


-794	One or more dbspaces for interval fragments do not exist.

One or more dbspaces in the STORE IN clause of an interval fragmented table
or index do not exist. Contact the database server administrator to
have the dbspaces added. Alternatively you can use the ALTER FRAGMENT 
statement for the table or index to modify the STORE IN clause to list
dbspaces that exist in the system. Always ensure that the page size of the
dbspace matches the page size of the table or index.


-795	One or more dbspaces for interval fragments are unusable.

The primary chunk (and the mirror chunk, if one exists) for one or more
dbspaces in the STORE IN clause of an interval fragmented table or index are
unusable. Roll back the current transaction and terminate the application.
Contact the database server administrator to repair the dbspaces.


-796	Fragment position for the row exceeds the maximum allowed.

The fragment position for the row exceeds 2147483646. Consider changing
the interval value expression or transition value to accommodate the row.


-797	Fragment is not empty.

The fragment contains data rows or index items and is not empty.


-798	No permission on table to create an interval fragment.

The user does not have the required table-level privilege to create an interval
fragment. An interval fragment can be created during an INSERT or an UPDATE
operation. If an INSERT operation triggers the creation of an interval
fragment, then user must have INSERT privilege at the table-level. Similarly,
if an UPDATE operation triggers the creation of an interval fragment, then user
must have UPDATE privilege at the table-level.


-800	Corresponding data types must be compatible in CASE expression or DECODE function.

All the result values in all the WHEN clauses in the CASE expression should be
of compatible data types. In the linearized use of the CASE expression, the
value-expression that follows the CASE keyword should be compatible with the
value-expressions that follow all the WHEN keywords in the CASE expression.
Reissue the query after modifying the CASE expression so that all
related expressions are of compatible data types.

This error can also occur when the expressions for the DECODE function do not
have compatible data types. The DECODE function has four possible expressions:
expr, when_expr, then_expr, and else_expr. All instances of when_expr must have
the same or a compatible data type as expr.  All instances of then_expr must
have the same or a compatible data type as else_expr. Reissue the query after
modifying the DECODE function so that all related expressions are of same or
compatible data types.

This error can also occur when calling functions that use implicit casts
and comparisons between data types, such as the NVL function. In this case,
revise your program logic (for example, by adding an explicit cast). so that
the expressions return the same or compatible data types.


-801	SQL Edit buffer is full.

The text editor cannot expand the buffer in which it stores your SQL
statements because no more data space memory is available. If you have
multiple statements in the buffer, execute them one at a time.


-802	Cannot open file for run.

The SQL command file that you specified cannot be opened for reading.
Review the filename that you specified. If it is spelled as you
intended, check that it exists in the current directory or in a
directory that is named in the DBPATH environment variable and that
your account has read permission for it.


-803	The file is too large for internal editing.

The SQL command file that you selected with the Choose option is too
large for the edit buffer to hold. The size of the edit buffer is
dynamic, and the program was unable to allocate enough memory to hold
the contents of the command file. (In DOS, this error also appears if
the command file exceeds 64 kilobytes.) Check that you specified the
file you intended and that it is in fact an SQL command file. If it is
the file that you intended, break it into smaller parts, and use them
separately.


-804	Comment has no end.

This statement includes a comment that is enclosed in braces ({ }), but
the closing brace is missing. Review the punctuation of the statement,
and check that all braces appear in matching pairs.


-805	Cannot open file for load.

The input file that is specified in this LOAD statement could not be
opened. Check the accompanying ISAM error code for more information.
Possibly a more complete pathname is needed, the file does not exist,
or your account does not have read permission for the file or a
directory in which it resides.


-806	Cannot open file for unload.

The output file that is specified in this UNLOAD statement could not be
opened. Check the accompanying ISAM error code for more information.
Possibly a more complete pathname is needed; the file exists, but your
account does not have write permission for it; or the disk is full.


-807	Cannot open file for output.

The program cannot create the file that you specified with the Save
option. The file should be saved in the current directory. Possibly
your account does not have write permission in that directory. Possibly
a read-only file of the same name exists (to eliminate this
possibility, try to save the file under a different name). Possibly the
disk is full. Look for operating-system error messages that might give
more information.


-808	Cannot open file for choose.

The SQL command file that you specified for the Choose menu option
cannot be opened for input. Check that the file is in the current
directory and readable to your account.


-809	SQL Syntax error has occurred.

The INSERT statement in this LOAD/UNLOAD/INFO statement has invalid syntax.
Review it for punctuation and use of keywords.


-810	Cannot open file for save.

The SQL command file could not be saved. Check that your account has
operating-system permission to write in the current directory and that
the disk is not full.


-811	Cannot open printer for output.

The application is trying to open the device that is specified in the
DBPRINT environment variable but is failing. Check the setting of that
variable, and rerun the program.


-812	Cannot open pipe for output.

Under the Output option, you selected To-pipe and specified a program
or command to receive the output. However, Informix SQL was unable to
open the pipe to that program or command. Review the program or command
that you typed to ensure that it is a syntactically valid UNIX or DOS
command and that it names only programs that are in your current
execution path. Also look for operating-system error messages; you
might have exceeded a system quota on memory or processes.


-813	Cannot write to pipe for output (no reading process).

Under the Output option, you sent output to a command or program
through a pipe. Although the pipe was established (indicating that the
command had correct syntax and named existing programs), it has since
closed unexpectedly. This condition indicates that the (first) program
in the pipe terminated before it had received all the output. Possibly
it quit due to an error, or possibly you or another user terminated it
with a kill command. Look for messages from the pipe program that
might explain why it quit.


-816	Cannot write file (check file permissions).

The file that is specified in the prior command cannot be written.
Probably your account does not have operating-system permission to
write to the file. Check the permissions, and run the program again.


-817	Cannot read file (check file permissions).

The file that is specified in the prior command cannot be read.
Probably your account does not have operating-system permission to read
the file. Check the permissions, and run the program again.


-818	Specified user menu not found.

The user menu that was requested cannot be found. Check the spelling of
the menu name. If it is as you intended, check the contents of the
sysmenus table in the current database; the menu might not be defined
in this database.


-819	There are no menu items in the menu.

The menu that you selected contains no items. You can choose a
different menu or modify the current one. If you think that the menu
should have items, check the contents of the sysmenuitems table in the
current database.


-820	No more data to display.

The display of selected rows is finished. With no scrolling display,
you cannot show the rows again. Restart the query from the beginning,
or enter a new query.


-821	Cannot open file for default report.

You requested creation of a default-report specification. This file is
saved in the current directory, but some problem prevented it. Possibly
the disk is full, or possibly your account does not have
operating-system permission to write in that location.


-822	Statements are already saved.

The current SQL statement has already been saved under the name that is
shown at the top of the screen. (This message does not appear to occur
any longer.)


-823	There are no statements to run.

You selected the Run option, but no SQL statement has been entered.
Either enter a statement, or use Choose to load one.


-824	Missing values clause on insert statement.

Probably no current IBM Informix product returns this message. If this
message does appear, refer to the discussion of error -836. If the
error recurs, note all circumstances and contact
IBM Technical Support.


-825	Program not found.

No supporting executable file could be located. The file should have
existed in the directory that the INFORMIXDIR environment variable
names. Consult the person who installed the IBM Informix software.


-826	Fork system call failed.

This internal error indicates an inability to start a subordinate
process. Possibly it stems from an attempt to enter vi from DB-Access
when using the Use-editor option. Look for operating-system error
messages that might give more information. Retry the operation. If the
error recurs, contact your system administrator. In DOS systems, you
probably are out of memory; exit to the operating-system command line,
and resubmit your program.


-827	Database not found.

See the discussion of error -329.


-828	Command file not found.

The SQL command file that you specified is not found in the current
directory or in the directory that is listed in the DBPATH environment
variable. Check the spelling of the name and the setting of DBPATH.


-829	Form not found.

The compiled form specification that you specified is not found in the
current directory or in the directory that is listed in the DBPATH
environment variable. Check the spelling of the name and the setting of
DBPATH.


-830	Report not found.

The compiled report specification that you specified is not found in
the current directory or in the directory that is listed in the DBPATH
environment variable. Check the spelling of the name and the setting of
DBPATH.


-831	Error found in Report specifications.

One or more errors was found during compilation of the report
specification. Edit the report-specification file, and compile it
again. Follow the prompts to see the error messages. To look them up,
use the finderr utility.


-832	Error found in Form specifications.

One or more errors was found during compilation of the report
specification. Edit the report specification file, and compile it
again. Follow the prompts to see the error messages. To look them up,
use the finderr utility.


-833	Saceprep could not compile Report.

The report compiler, saceprep, encountered an error while it was
compiling a report specification. Look for other error messages, from
saceprep and the operating system, that might give more information.


-834	Sformbld could not compile Form.

The report compiler, sformbld, encountered an error while it was
compiling a report specification. Look for other error messages, from
sformbld and the operating system, that might give more information.


-835	Current clause is invalid in interactive mode.

The WHERE CURRENT OF clause is meaningful only in a program that uses a
cursor to read rows. In this interactive context, you must specify a
condition other than CURRENT in your WHERE clause.


-836	Insert statement has no values clause.

The INSERT statement that was entered as part of this LOAD statement
requires a VALUES clause. Revise the statement to include one.


-837	There is not enough memory available.

Informix SQL needed to allocate memory for one of a number of small
work areas but was not able to do so. Stop the program, and restart it.
If this action does not eliminate the problem, see your system
administrator about getting more memory. On DOS systems, you need to
free some disk space.

Database servers after Version 4.1 do not produce this error message.
For a related error, see error message -208.


-838	A line in the load file is too long.

Each line of the input file to LOAD must be read into storage in full
to be processed. Informix SQL resizes its memory buffer as required to
hold the current line. But in this case, it was not able to allocate a
large enough buffer. This error is most likely when the load file
contains TEXT or BYTE data values or very large CHAR values. All of the
values for one row must be contained in one line of the file. If you
cannot rerun the program with more memory available, modify the input
file to have fewer or shorter values in each row. Or use the dbload
utility to try to load the file.


-839	Table not found.

You specified the name of a table that does not exist in the current
database. Review the spelling of the table name, and check that you
are using the correct database. Refer to the discussion of error -310
for a way to display all table names.


-840	Name is too long.

Names of databases, reports, forms, and other files must be 10
characters or shorter. Select a new, shorter name, and repeat this
operation. In DOS systems, filenames can be a maximum of 8 characters
plus a 3-character extension.


-841	Name must start with a letter or "_" and contain letters, digits,
or "_".

Names of databases, reports, forms, and other files must conform to
this rule. Repeat this operation with a name that conforms to the
rule. Beginning with Version 6.0, the name of the following
identifiers, as well as server and cursor names, can begin with an
underscore: column, connection, constraint, database, index, procedure,
synonym, table, trigger, and view.


-842	Cannot read temp file.

Informix SQL created a temporary file; now it is trying to read back
the temporary file. However, it received an unexpected operating-system
return code. Possibly you or another user removed the file, or possibly
a hardware error occurred.


-843	Cannot write temp file.

Informix SQL is trying to write the current SQL source file into a
temporary file for editing but received an unexpected operating-system
return code. Look for operating-system error messages that might give
more information. On UNIX systems, possibly your account does not have
write access to /tmp or the directory that is named in the DBTEMP
environment variable, or the disk might be full. With Version 5.01 and
later, the IBM Informix SE database server uses the DBTEMP environment
variable, but IBM Informix Dynamic Server and IBM Informix OnLine Dynamic Server 
do not.


-844	Statement is too long -- out of memory.

Informix SQL was unable to allocate a memory buffer large enough to
hold this statement. Find a way to shorten the statement, or run it in
two or more parts.


-845	There are no user-menus in the database.

This database does not contain the sysmenus table, it is empty, or
possibly the top-level menu is not named main. Check that you are using
the database you intended. Consult with the person who defined the user
menus for this database.


-846	Number of values in load file is not equal to number of columns.

The LOAD processor counts the delimiters in the first line of the file
to determine the number of values in the load file. One delimiter must
exist for each column in the table or for each column in the list of
columns if one is specified. Check that you specified the file that you
intended and that it uses the correct delimiter character. An empty line
in the text can also cause this error.

If the LOAD statement does not specify a delimiter, verify that the default
delimiter matches the delimiter that is used in the file. If you are in
doubt about the default delimiter, specify the delimiter in the LOAD
statement.


-847	Error in load file row number.

A problem exists with the data on the indicated row of the load data
file. The operation stopped after it inserted rows up to but not
including the row that is noted (number-1 rows have been inserted). If
this operation is inside a transaction, roll back the transaction. If
not, either delete the inserted rows from the table or remove the used
rows from the file before you repeat the operation. To correct the
file, look for additional error messages that might help isolate the
problem. Possibly not enough, or too many, fields (delimiters) exist on
the indicated row. Possibly a data conversion problem exists, (for
example, nonnumeric characters in a numeric field, an improperly
formatted DATETIME value, or a character string that is too long).
Possibly a null (zero-length) field exists in a column where nulls are
not allowed. Edit the load file to correct the problem. Look for
similar problems in following lines, and then repeat the operation.
The row number and line number might not be the same because some rows
might be split into several lines. To identify split rows and their
corresponding line numbers, run the following command:

egrep -n"\\\\$" 

To calculate a line number of an incorrect row, add the number of split
rows that occur prior to the row to the row number.


-848	Form4gl could not compile Form.

You asked for a form specification to be compiled, but the form
compiler reported one or more errors. Correct the errors in the form
specification, and repeat the operation. The error messages are in the
formname.err file.


-849	Warning found in Form specifications.

You asked for a form specification to be compiled, and it was done, but
the form compiler reported one or more warnings. You are not required
to correct a warning before you try the form, but it is recommended
it. The error messages are in the formname.err file.


-850	User does not have permission to modify this menu.

Only the user who created the sysmenus table in this database can
modify the menu structure. That user first selected the Modify option
of the User-Menu display while this database was current. To determine
who that user is, query systables as follows:

SELECT owner FROM systables WHERE tabname LIKE 'sysmenu*'

If this action is not appropriate, ask that person to drop the sysmenus
and sysmenuitems tables, and then have the person who should maintain
the menus re-create them.


-851	Cannot drop file (check file permissions).

You requested that a file be dropped, but it could not be dropped,
probably because your account does not have write permissions on it or
on the directory in which it is stored. Use operating-system commands
to check the file permissions.


-852	Write failed. count rows unloaded (check ulimit or disk space).

After writing count lines of output to the unload file, an error
occurred trying to write the next line. Look for operating-system
messages that might give more information. Possible causes include a
full disk or a disk quota limit.


-853	Current transaction has been rolled back due to error or missing
COMMIT WORK.

While Informix SQL was executing SQL statements from a command file, it
received an error return code or reached the end of the file but found
no COMMIT WORK statement. Since a transaction was in progress (either
the file contained BEGIN WORK, or the database is ANSI compliant),
Informix SQL rolled the transaction back. (It cannot leave the
transaction open, and it cannot assume success even when no error was
returned.)


-854	Back end not found. Or back end is busy.

In DOS, the application cannot establish a connection to the local
IBM Informix SE engine or to the IBM Informix NET PC communications module.

The SE engine (for accessing a local database) or the IBM Informix NET PC
communications module (for accessing a remote database) must be loaded
before trying to connect to it by means of, for example, a DATABASE
statement. To load the SE engine, run PSTARTSQ. To load the
IBM Informix NET PC communications module, run REMSQL.

If the SE engine or the IBM Informix NET PC communications module has
previously been loaded, and you get this error message, either another
application currently has a connection to the SE engine, or the
IBM Informix NET PC communications module (they can have only one
connection at a time), or the current application encountered an
internal error and lost the connection.

If another application has a connection to the SE engine or to the
IBM Informix NET PC communications module, you must first release that
connection before you can connect the current application. If the other
application is a 4GL or an ESQL/C program, that application releases
its connection by executing a CLOSE DATABASE statement, calling the
SQLEXIT( ) function, or exiting.

In extreme situations where an internal error has occurred, you must
exit the application and stop the SE engine or the IBM Informix NET PC
communications module from the DOS command line. To stop the SE engine,
run PSTARTSQ with the -T option. After you stop the SE engine, run
PSTARTSQ with no options to reload it. To stop the IBM Informix NET PC
communications module, run SETNET with the -T option. After you stop
the IBM Informix NET PC communications module, run REMSQL to reload it.

This error message also might appear when a client Windows application
uses the wrong .DLL file to connect to a database server across a
network. Client Windows applications that work with IBM Informix NET PC
Version 4.1 (such as Version 4.1 ESQL/C) can also work with
IBM Informix NET for Windows Version 5.01. Check to see whether
IBM Informix NET PC Version 4.1 and IBM Informix NET for Windows Version 5.01
reside on the same client computer concurrently. If so, check that
Version 5.01 of the LDLLSQLW.DLL file appears in your PATH environment
variable setting before Version 4.1 of the LDLLSQLW.DLL file. In
addition, Version 4.1 of the LDLLSQLW.DLL file must not reside in the
current directory, the Windows directory, the Windows \SYSTEM
directory, or the directory that contains the executable file of the
application that you are running.


-855	Cannot drop rowids on a non-fragmented table.

You tried to use the ALTER TABLE...DROP syntax to drop the rowid column
on a table that is not fragmented. A non-fragmented table has a rowid
column, but you cannot drop it.


-856	Rowids already exist on table.

A rowid column already exists for the specified table. You cannot
create a rowid for a table more than once. Change your SQL statement.


-857	Rowids do not exist on table.

You cannot drop a nonexistent rowid. You specified a rowid that does
not exist in the specified table. Avoid using rowids in your SQL
statement. Instead, use a primary key to delete data.


-858	Cannot specify the same partition/space name twice in a fragmentation specification.

You specified the same dbspace or same partition name more than once in 
a fragmentation specification. Change the fragmentation specification to 
use different dbspaces/partition for each fragment.


-859	"Distributions Only" is not meaningful in an update statistics LOW
request.

You cannot specify the DISTRIBUTIONS ONLY option in the LOW mode of the
UPDATE STATISTICS statement.


-860	A fragmented object must have at least than one fragment.

The Round Robin, Exprespression based fragmeneted object must have
at least two fragments. All other fragmented objects needs to have 
at least one fragment.


-861	Cannot create new PDQ thread.

See the accompanying ISAM error for more information.


-862	Alter fragment attach must have at least one consumed table specified.

You have not specified a table to be consumed. See the syntax and usage
for ALTER FRAGMENT... ATTACH in the IBM Informix Guide to SQL: Syntax.


-863	Cannot detach a table with rowids.

You must first drop rowids before you use ALTER FRAGMENT... DETACH. See
the syntax and usage in the IBM Informix Guide to SQL: Syntax.


-864	Cannot attach a table with rowids.

You must first drop the rowids on the surviving table before you attach
the table.


-865	Cannot add or drop the rowid column or the cdrserver and cdrtime 
columns in combination with other alter table options.

The ADD ROWIDS, DROP ROWIDS, ADD CRCOLS, or DROP CRCOLS keywords cannot 
be combined with any other ALTER TABLE options.


-866	Cannot attach tables that contain serial fields.

Before you use an ALTER FRAGMENT... ATTACH statement, you must drop any
serial fields or modify the column type.


-867	Cannot generate new rowid.

See the accompanying ISAM error for more information. A table cannot
hold more than 2 gigabytes of records if it has serial or rowid
columns.


-868	Cannot check constraints on the attaching table.

You cannot attach a table if a check, referential, primary-key, or not null
constraint exists on the surviving table.

Drop any check, referential, primary-key, or not null constraint. Then
attach the table and if you still want to use the constraint, re-create it.


-869	Subqueries and procedures are not allowed in fragmentation expressions.

A fragmentation expression can reference only columns from the current
table and data values from a single row. The restrictions disallow
subqueries.


-870	Cannot specify duplicate remainder fragments.

You specified duplicate remainder fragments. Remove one of the
remainder fragments from your SQL statement.


-871	Remainder fragment must be specified last.

If you specify a REMAINDER, it must be the last fragment expression.
Rewrite your syntax so that you specify the remainder fragment last.


-872	Invalid fragment strategy or expression for the unique index.

The round-robin method cannot fragment unique indexes. If the
expression method fragments the indexes, all the columns that are used
in the fragmentation expressions must also be part of the index key.


-873	Invalid fragment expression column.

You cannot use columns from different tables in a fragment expression.


-874	General exception error has occurred in the optimizer.

If this internal error occurs, note all circumstances and contact
IBM Support.


-875	Incompatible Access Mode and Isolation Level.

If you set the access mode to READ-WRITE, you cannot set the isolation
level to READ-UNCOMMITTED.


-876	Cannot issue SET TRANSACTION once a transaction has started.

When a transaction is active, do not issue a SET TRANSACTION statement.
A transaction becomes active when a DDL or a DML statement is issued.
The only statements that you can place between the BEGIN WORK and the
SET TRANSACTION statements are SET statements such as SET EXPLAIN, SET
CONSTRAINT, SET DATASKIP, and so on.


-877	Isolation Level previously set by "Set Transaction".

Your program attempted to reset the isolation level that a preceding
SET TRANSACTION statement established. Do not use a SET ISOLATION
statement after a SET TRANSACTION statement.


-878	Invalid operation for a READ-ONLY transaction.

You specified a READ-ONLY transaction in a SET TRANSACTION statement
and then attempted to alter the database. In other words, READ-ONLY
ensures that you can read data, but you cannot alter data. If you want
to alter the data, specify READ WRITE in the SET TRANSACTION statement.
If you only want to read the data, correct your program so that it does
not attempt to alter the data.


-879	Trim character must be null or have a length of 1.

The TRIM function evaluated to NULL. However, the TRIM character value
expression must be null or contain a single character. Your program is
incorrectly written. Every time the TRIM function evaluates to NULL,
the value your program inserts into the TRIM character value expression
is not null or contains more than one character. Correct, recompile,
and rerun your program.


-880	Trim character and trim source must be of string data type.

You used a TRIM function where the TRIM character value expression and
the source character value expression were conflicting data types. The
character and source value expressions must be the string data type.
Check the syntax of the TRIM function, and check that the character and
source values contain string data type values.


-881	The resulting string length from CONCAT, LPAD, REPLACE or RPAD is longer than the maximum.

The LPAD, RPAD, REPLACE or CONCAT function returned a string whose length is 
outside the range from 1 to 255 bytes for NVARCHAR or VARCHAR, or from 1 to 32739 
bytes for CHAR, NCHAR, or LVARCHAR. These functions return a string whose data type 
depends on the data type of the input string that the function is formatting. Make 
sure that the function returns a string whose length is within the size range for 
the returned data type.

-882	Cannot create rowids on a non-fragmented table.

You tried to use the ALTER TABLE... ADD syntax to add a rowid column to
a table that is not fragmented. This usage is not valid. If a rowid
column already exists, rowids already exist on non-fragmented tables.


-883	Cannot evaluate the fragmentation expression.

A fragmentation expression in your program is invalid. Check the
expression, and correct it. Check the logic of that expression. Also,
some components of that expression might be NULL or might not represent
existing or defined elements such as columns, hash values, ranges, index
key values, and so on.


-884	Cannot alter an index on a temporary table.

Your program attempted to alter an index on a temporary table. Correct
your program to avoid altering indexes on temporary tables.


-885	Invalid or NULL utc time given to dbinfo(utc_to_datetime).

You attempted to pass an invalid or NULL value to the dbinfo()
function. Make sure you pass a valid or non-null value to the dbinfo()
function.


-886	Cannot drop table or view because of existing dependencies.

When you issue a DROP TABLE or DROP VIEW statement, you cannot drop the
table or view if you specify the RESTRICT option and a view or
foreign-key constraint exists that depends on that table or view.

You also cannot drop a table if you specify the RESTRICT option and a
violations and diagnostics table exists for that table.


-887	Cannot revoke because of dependent privileges, views, or constraints.

You cannot use the RESTRICT option to REVOKE a privilege if that action
will cause abandoned privileges, abandoned views, or abandoned table
constraints. Refer to the IBM Informix Guide to SQL: Tutorial for more
information.


-888	Cannot attach a table with primary-key constraints.

You cannot attach a table if a primary-key or unique constraint exists on
the surviving table or consumed table.

Drop the primary-key constraint and then attach the table. If you still
want to use the primary-key constraint, re-create it.


-889	Internal dataskip condition, should reposition to next row and continue.

If this internal error recurs, note all circumstance, and
contact IBM Technical Support.


-891	Temporary table objects can only be enabled.

You cannot change the object mode of a temporary table object to the
disabled or filtering object mode.


-892	Cannot disable object object-name due to other active objects using it.

Other objects are using this object. If the object being disabled is an
index, then a unique constraint, primary constraint, or referential
constraint might be using that object. If the object is a unique or a
primary-key constraint, then a referential constraint might be using
that object. If an index of a referential constraint is being 
disabled, then a unique constraint, primary constraint, or some other
referential constraint might be using this object.

The following example illustrates one of these scenarios:

CREATE TABLE parent(c1 int, c2 int, c3 int);
ALTER TABLE parent ADD CONSTRAINT PRIMARY KEY(c1) CONSTRAINT cons_parent_c1;
CREATE TABLE child(x1 int, x2 int, x3 varchar(32));
ALTER TABLE child ADD CONSTRAINT PRIMARY KEY(x1) CONSTRAINT cons_child_x1;

The following ALTER statement is trying to disable the foreign key index that 
is being shared by the primary key, hence this error 892 is returned:

ALTER TABLE CHILD ADD CONSTRAINT
(FOREIGN KEY(x1) REFERENCES PARENT(c1) CONSTRAINT cons_child_x2 INDEX DISABLED);

-893	Cannot activate/create object object-name because of its dependencies.

The user has issued a SET statement to set a database object to the
enabled or filtering object mode, or the user has issued a CREATE
INDEX, CREATE TRIGGER, or CREATE TABLE statement to create a database
object in the enabled or filtering object mode. However, this object
needs other disabled objects. For example, before enabling a
referential constraint on a table, the user must first enable the
indexes that the constraint needs.


-894	Cannot find object object-name.

The object name that the user specified explicitly in the SET statement
is not found in the database.


-895	Cannot create violations/diagnostics table.

The user has issued a START VIOLATIONS TABLE statement for a target
table. The database server is not able to create the violations and
diagnostics tables for this target table. Any one of the following
situations might be the reason for the failure:

    *   The target table already has a violations and diagnostics table.

    *   The names that are specified for the violations and diagnostics
	table in the START VIOLATIONS TABLE statement are not valid.
	For example, if you omitted the USING clause from the statement
	and the number of characters in the target table name plus four
	characters is longer than the maximum identifier length, the
	generated names of the violations and diagnostics tables would
	be longer than the maximum identifier length. If the names of
	the violations and diagnostics tables are invalid for this
	reason, the user can give explicit names to the violations and
	diagnostics tables in the USING clause of the START VIOLATIONS
	TABLE statement to rectify the problem.

    *   The names that were specified for the violations and
	diagnostics tables in the START VIOLATIONS TABLE statement
	match the names of existing tables in the database.

    *   The target table contains columns with the names
	informix_tupleid or informix_optype. Because these two column
	names would duplicate the informix_tupleid or informix_optype
	columns in the violations table, the database server cannot
	create the violations table.

    *   The target table is a temporary table.

    *   The target table is serving as a violations or diagnostics
	table for some other table.

    *   The target table is a system catalog table.


-896	Violations table is not started for the target table.

This error occurs in either of the following cases:

   1. A STOP VIOLATIONS TABLE was executed before the START VIOLATIONS
      TABLE statement or after the START VIOLATIONS TABLE statement was
      rolled back.

   2. A violations table has not been started for the target table
      and an INSERT, DELETE, or UPDATE statement fails to satisfy any
      filtering-mode object on the target table.

A violations table must exist before execution of the STOP VIOLATIONS
statement.

To prevent this error, you can start a violations table for the
target table.


-897	Cannot modify/drop a violations/diagnostics table.

The user has tried to alter or drop a table that is serving as a
violations table or a diagnostics table for another table.


-898	Cannot alter a table which has associated violations/diagnostics tables.

The user has tried to add, drop, or modify a column in a table that has
a violations and diagnostics table associated with it.


-899	Too many violations.

The number of records in the diagnostics table either exceeds or will
exceed the limit that is specified. Limits are specified in the 
MAX VIOLATIONS clause of the START VIOLATIONS TABLE statement for 
Extended Parallel Server or the MAX ROWS clause for other 
IBM Informix database servers. 

When a single statement on the target table (such as an INSERT or 
SET statement) causes more records to be inserted into the 
diagnostics table than the limit that is specified by the MAX
ROWS clause, this error is returned to the user who issued the
statement on the target table.


-903	Licensed  Informix SQL server not accessible.

This statement refers to another host computer system, and that system
is active and accessible. However, the sqlexecd network daemon has not
been started on it, so no database services can be gotten from it.
Contact the DBA of the other system. Check that the IBM Informix STAR or
IBM Informix NET software is correctly installed.


-904	Authorization file not on licensed Informix SQL server.

This message indicates that the installation of the IBM Informix networking
software was not completed correctly. Review the installation steps on
the workstation and on the network server to make sure that it was
completed without error.


-905	Cannot locate sqlexec service /tcp service in /etc/services.

The IBM Informix STAR or IBM Informix NET software has not been properly
installed on this system. In particular, entries in the
system-configuration file /etc/services (UNIX) or \etc\services (DOS)
have not been made. Contact the person who installs your IBM Informix
software.


-906	Cannot locate remote system (check DBPATH).

IBM Informix NET is searching for the database that is requested in the
current statement. It is using the entries in the DBPATH environment
variable and is trying one that, by use of //sitename, specifies a
directory on another computer system. That system cannot be accessed.

Review the setting of the DBPATH environment variable. Check that any
other systems it specifies have IBM Informix STAR or IBM Informix NET installed
and active. This message appears prior to Version 6.0.


-907	Cannot create socket on current database server.

IBM Informix STAR or IBM Informix NET is trying to access another computer
system but is unable to create a connection. Contact your system
administrator, and ask for a check that TCP/IP is correctly installed
and functioning.


-908	Attempt to connect to database server (servername) failed.

The program or application is trying to access another database server
but has failed. Note the server name in the current statement.

The desired database server is unavailable, or the network is down or
is congested. Ask your DBA and system administrator to verify that the
server and network are operational. If the network is congested, use
the environment variables INFORMIXCONTIME and INFORMIXCONRETRY to tune
connection timing. For information on setting these environment variables,
see the IBM Informix Guide to SQL: Reference.

This message appears in Version 6.0 and later versions.


-909	Invalid database name format.

This statement seems to refer to a database from another database
server, but the database name, site name, server name, or punctuation
is incorrect. Review the statement, and check that all identifiers
start with a letter (or underscore, for Version 6.0 and later) and
contain only letters, digits, and underscores, and that the reference
is in the form dbname@sitename or //sitename/dbname (before Version
6.0) or dbname@servername or //servername/dbname (Version 6.0 and
later). If you are using IBM Informix OnLine for NetWare, check that you
provided the remote database name in one of the forms that is explained
in the product manual.


-910	Cannot create an IBM Informix Dynamic Server database from 
        an IBM Informix SE client.

This CREATE DATABASE statement cannot be carried out because the
database server on your workstation and the one on the other computer
system are different products: one is IBM Informix SE and the other is
another IBM Informix database server. You can manipulate databases in this
configuration, but you cannot create one.

To create a database, either start the same product in both locations, or
run this statement locally on the other computer system.

-911	System error - Cannot read from pipe.

This internal error reflects a failure in communication between your
application and the IBM Informix STAR or IBM Informix NET software. Look for
operating-system error messages that might give more information.
Restart the application. If the problem recurs, note all
circumstances and contact IBM Technical Support.


-912	Network error - Could not write to database server.

A network failure occurred. Look for operating-system error messages
that might give more information. Restart the application. If the
problem recurs, contact your system administrator, and ask for network
diagnostics to be run.


-913	Network error - Could not read from database server.

A network failure occurred. Look for operating-system error messages
that might give more information. Restart the application. If the
problem recurs, contact your system administrator, and ask for network
diagnostics to be run.


-914	System error - Cannot write to pipe.

This internal error reflects a failure in communication between your
application and the IBM Informix STAR or IBM Informix NET software. Look for
operating-system error messages that might give more information.
Restart the application. If the problem recurs, note all
circumstances and contact Technical Support at tsmaius.ibm.com.


-915	Cannot create an IBM Informix SE database from an IBM Informix 
        Dynamic Server client.

This CREATE DATABASE statement cannot be carried out because the
database server on your workstation and the one in the other computer
system are different products: one is IBM Informix SE and the other is
another IBM Informix database server. You can manipulate databases in this
configuration, but you cannot create one.

To create a database, either start the same product in both locations, or
run this statement locally on the other computer system.


-916	NFS mount table error.

The database server that you tried to access or a path that was
specified in your DBPATH environment variable is located on an
NFS-mounted file system. However, the database server or client
application encountered an error accessing the NFS-mounted table file
/etc/mtab (or, on some operating systems, /etc/mnttab). This condition
probably occurred because your account does not have read permission
for the file. Contact your system administrator, and have the file made
readable to public.

This message appears with Version 6.0 and later.


-916	Cannot open /etc/mtab.

The database server needs to check the system configuration file
/etc/mtab to verify the location of a file system. However, it got an
error when it tried to read that file, probably because your account
does not have read permission for it. Contact your system
administrator, and have the file made readable to public.

This message appears prior to Version 6.0.


-917	Must close current database before using a new database.

This statement (DATABASE or CREATE DATABASE) requires you to open a
different database. However, the current database is located on another
computer system, so you must explicitly close it with the CLOSE
DATABASE statement. (When you work with databases located on the same
computer as your application program, the database server will close
the current database for you automatically.) If a program receives this
error, review the program logic, and check that it executes a CLOSE
DATABASE statement before a [CREATE] DATABASE statement. This solution
will work in all situations, networked or local.


-918	Unexpected data received from another database server.

This internal error reflects a failure in communication between your
application and the IBM Informix STAR or IBM Informix NET software at another
site. Restart your application. If the problem recurs, ask your system
administrator to run network diagnostics. If the error recurs,
note all circumstances and contact IBM Technical Support.


-919	System error. Wrong number of arguments to database server process.

This internal error reflects a failure in communication between your
application, IBM Informix STAR or IBM Informix NET software, and the database
server on the other computer system. Check that all three of these
software components are at compatible software levels. (For versions
prior to Version 6.0, see the appropriate IBM Informix NET/IBM Informix STAR
Installation and Configuration Guide for a compatibility chart).
Recompile and relink your application program if necessary. If the
problem recurs, note all circumstances and contact
IBM Technical Support.


-921	System error. Illegal or wrong number of arguments to sqlexec server.

This internal error reflects a failure in communications between your
application and the database server on the other computer system. Check
that all software components are at compatible software levels. Recompile
and relink your application program if necessary. If the problem recurs,
note all circumstances and contact IBM Technical Support.

For a Windows system, check your Client Installation and Configuration
Guide for information about using Setnet32 to set the environment variables
that affect client-server communications.

For versions prior to Version 6.0, see the appropriate
IBM Informix NET/IBM Informix STAR Installation and Configuration Guide for
a compatibility chart.


-922	Cannot get name of current working directory.

A problem exists with the current working directory on this system or
on another computer system that your application is using. Possibly
your account does not have read access to the directory, or possibly
the file system that contains it is improperly mounted. Exit your
application, and retry. If the problem persists, see your system
administrator for assistance.


-923	IBM is licensed to access the current database server only.

This version of the IBM Informix product is not licensed for network use.
Locate the version of the software that is licensed for use with
IBM Informix STAR or IBM Informix NET, and reset your INFORMIXDIR environment
variable and the SQLEXEC environment variable (for database servers
prior to Version 6.0) to point to it.


-924	IBM is not licensed to access the specified database server.

If you have installed an IBM Informix NET station package only on your
client computer, you cannot access locally resident databases. If the
database that you are attempting to access is not locally resident,
enter the command again and specify a site name with the database name,
or set your DBPATH environment variable to indicate searches only in
specific sites. If you want to use your IBM Informix product to access both
local and remote databases, contact your IBM representative
for details on purchasing the appropriate IBM Informix product.


-925	The protocol type should be tcp.

The protocol type that is shown in the $INFORMIXDIR/etc/sqlhosts file
(or in \INFORMIX\etc\sqlhosts on IBM Informix OnLine for NetWare) should be
tcp.


-926	The database server is not licensed for distributed data
access.

This statement refers to a database in a different database server (for
example, by qualifying the name of a table with dbname@sitename:table).
However, this version is not licensed for such use. With this version,
you can refer only to tables in databases that are all on the same
database server.

Contact your IBM representative about upgrading this database server
to full IBM Informix STAR status. If you believe that you have IBM Informix STAR
installed, check the contents of the INFORMIXDIR environment variable. If
you are using IBM Informix OnLine for NetWare, you cannot access tables or
databases on remote systems unless you have IBM Informix NET PC.




-927	Exceeded limit on maximum number of servers you can reference.

This statement contains references to more sites than the database
server can handle. Through Version 4.1, the limit on different site
names that can appear in one statement is 32 (later versions might
allow more). Review the statement, and check that only necessary sites
are named. If so, revise the operation to use fewer sites (for example,
by selecting some data into a local, temporary table).


-928	The database server is not licensed for distributed data access.

This statement refers to a database on a different computer system (for
example, by qualifying the name of a table with dbname@sitename:table).
However, the database server that is active at the indicated site is not
licensed for such use. This situation indicates an error in the setup of
the remote computer system: it was configured for network access, but the
wrong database server was started. Contact the network administrator, and
ask for a check of the environment variables when starting the sqlexecd
daemon. If you are using IBM Informix OnLine for NetWare, you tried to access
a table on an database server that is not licensed for remote access; you
can access only other IBM Informix NET PC systems.


-930	Cannot connect to database server servername.

The application is trying to access another computer system but failed.
Note the server name in the current statement. Ask your network
administrator and DBA to check that the network is operational and that
the particular database server is active. This message appears with
Version 6.0 and later.


-929	SQLI Protocol Error.  Session terminated.

The database server received a SQLI protocol request that could not be 
interpreted. Such messages are treated as attacks on the server and the 
session issuing such a request is unilaterally terminated immediately.  
If you think you received this message erroneously, record all the 
details (including the version of CSDK or I-Connect in use) and 
contact IBM Support.


-930	Cannot connect to remote host sitename.

IBM Informix STAR or IBM Informix NET is trying to access another computer
system but has failed. Note the site name in the current statement.
Contact your network administrator, and ask for a check that the
network is operational and that the particular site is active. This
message appears in database servers prior to Version 6.0.


-931	Cannot locate servicename service/tcp service in /etc/services.

The service servicename is not listed in the network configuration file
/etc/services (UNIX) or \etc\services (DOS). Check the
$INFORMIXDIR/etc/sqlhosts file, and check that the service name for the
desired server is correct. If so, contact your network administrator to
find out why the service is not known. If you are using IBM Informix OnLine
for NetWare, check the \etc\services file on the client for the
required entries.


-932	Error on network connection, function system call failed.

This internal error reflects a failure in communication between your
application and the network software (IBM Informix STAR, IBM Informix NET,
IBM Informix NET for Windows, and so on) at another site. Restart your
application. Look for operating-system messages that might give more
information.

If you are using IBM Informix NET for Windows, a Windows Sockets problem
might exist; check your Windows Sockets 1.1 documentation for more
information. Check the sqlerrm field of the sqlca structure for the
particular Windows Sockets message.

In the ASCL context, this error might also indicate problems in your
informix.ini file. Verify that the SERVICE, HOST, and PASSWD entries
are correct.

If the problem recurs, ask your network administrator to run network
diagnostics. If the error recurs, note all circumstances and
contact IBM Technical Support.


-933	Unknown network type specified in DBNETTYPE.

The DBNETTYPE environment variable is used on certain machines to
distinguish which network protocol to use when two protocols are
available. The value that is currently set in it is not supported.
Display the variable, and check that it is set correctly. Prior to
Version 6.0, refer to the IBM Informix NET/IBM Informix STAR Installation and
Configuration Guide for the correct setting. If you are using
IBM Informix OnLine for NetWare, set DBNETTYPE to starlan, tcp/ip, or some
other supported network.


-934	Connection to remote site no longer valid.

This statement uses data from another computer system, but the
connection has been lost. Roll back the transaction, and try again
after you reestablish the connection.


-935	Cannot obtain IPX address for service name servicename.

You are trying to connect to a database server with the indicated
service name via the IPX/SPX network protocol on a system with portable
IBM Informix OnLine for NetWare. The client application, IBM Informix NET or
IBM Informix STAR, is not able to determine the IPX address that is
associated with the specified service name. Possibly the service name
is misspelled in your sqlhosts file; the sqlexecd daemon or the
database server is not running; or the portable IBM Informix OnLine for
NetWare software is not operating properly. Verify the service name in
your sqlhosts file. Ask your DBA or system administrator to verify that
the sqlexecd daemon, the database server, and the portable
IBM Informix OnLine for NetWare software are operational.


-936	Error on remote connection connection-name.

An attempted connection to a remote host failed. Check the name of the
connection that is specified in your particular connection statement
(CONNECT, DATABASE, and so on) to make sure that you correctly
specified the name or path of the connection. Check for incorrect
spelling. Check for the wrong connection name.


-937	User Defined Routine error.

mi_db_error_raise() has been called from within a user-defined routine
and set a fatal error. For an explanation, look at the SQLSTATE that
the user-defined routine set.


-938	VALUES clause may not have expressions if a cursor is declared
on an INSERT.

The INSERT statement to be associated with the INSERT cursor includes
a VALUES clause that has one or more expressions.

Change the application so that expressions are not used in the
VALUES clause.


-939	Too many messages to display; some are not shown.

This message appears if a single error in the server results in a large 
number of messages being returned. For example, if there is a nested set 
of calls in which a user-defined routine (UDR) executes an SQL statement 
that calls another UDR, and so on, when an error occurs, each UDR returns 
a message for that error corresponding to its own context.  When the 
number of messages exceeds an internal limit, the remaining messages are 
replaced by this message.  You do not need to take any special action.


-940	The statement failed, becuase the WITH CHECK OPTION keywords are not 
supported in Union, Intersect, or Minus views.

You tried to define a union/intersect/minus view with a check options. Redefine 
the union/intersect/minus view without the check options clause.


-941	String processing error while evaluating function (function_name).

An error occurred during evaluation of the case conversion function on
the input string. This error could be due to an invalid character (single-
or multi-byte) in the string. You need to execute the query again after
verifying that the characters in the input string are valid.


-942	Transaction commit failed - transaction will be rolled back.

This error can occur at transaction-commit time if an error is raised
when a DataBlade routine calls a UDR-registered end-of-transaction
(MI_EVENT_END_XACT) callback. You have registered a callback for the
MI_EVENT_END_XACT (or MI_Xact_State_Change) event in the context of a
server routine. When the end-of-transaction (MI_EVENT_END_XACT) event
occurred to commit the transaction, an error was raised.

Within a DataBlade routine, you can use the mi_error_desc_next()
function to obtain the next error, which should explain the cause of the
failure. Currently, the end-of-transaction (MI_EVENT_END_XACT) event
occurs only within the context of a DataBlade server routine. It does
not occur within the context of a DataBlade client application.


-943	Found a non-terminated comment ("/*" with no matching "*/").

DB-Access does not currently support comments without terminators. You
might see this message when you run .sql scripts through DB-Access.


-944	Cannot use "first", "limit" or "skip" in this context.

This statement uses FIRST N , LIMIT N or SKIP M inside a subquery. This action is not supported.

Review the use of FIRST N and check that it is applied only to the outer main
query SELECT clause.


-945	Invalid parameter given to dbinfo(version).

You entered a value for a version that this command does not support. 
The arguments to dbinfo() are invalid or NULL. The first argument was the
string constant version.

Check that the second argument is also a quoted string constant that
corresponds to one of the following values: 'major', 'minor', 'level',
'os', 'server-type', or 'full'.





-946	Source string for UPPER, LOWER, and INITCAP must be of string type.

The source string passed as input to a case conversion function must have
a character data type.


-947	Declaration of an SPL variable named 'null' conflicts
with SQL NULL value.

Users may not define an SPL routine variable whose spelling
is 'null'. This is an error because allowing such definition would
restrict the global scope of the NULL constant.


-948	Cannot rename constraint index.

User tried to rename a system-generated constraint index.

You do not need to take any action because you are not allowed to rename a
system-generated constraint index.


-949	Unable to alter fragmentation scheme when indexes disabled.

An attempt has been made to alter the fragmentation scheme on a table
that has disabled indexes. This is not allowed. The action is aborted.


-950	User username is not known on the database server.

This statement refers to a database on another computer system, but the
other database server does not accept your account name. You must have 
a valid trusted login identity on any database server you access remotely.
See your database administrator about putting your login ID in 
'sysuser:sysauth' on the remote server. This message appears on PAM enabled 
servers.


-951	User username is not known on the database server.

The database server that you tried to access does not accept either
your user ID, the login name that is specified for the desired server
host in your ~/.netrc file, or the user name that is specified in the
USER clause of a CONNECT statement. If you are explicitly specifying
your user name in the ~/.netrc file or in a CONNECT statement, check
that the name is correct. If you do not have a valid user ID on the
server computer, see your system administrator. This message appears
with Version 6.0 and later.


-951	User is not known on remote host.

This statement refers to a database on another computer system, but the
other system does not accept your account name. You must have a valid
login identity on any computer system you access. See your network
administrator about getting a login ID. This message appears prior to
Version 6.0.


-952	User's password is not correct for the database server.

The password that is specified for the server computer in your ~/.netrc
file or in the USER clause of a CONNECT statement is incorrect. The
database server does not accept (or cannot find) your account password.
Check that your password is specified correctly, and try again. This
message appears with Version 6.0 and later.


-952	User (<user-id>)'s password is not correct for the database server.

The password that is specified for the server computer in your ~/.netrc
file or in the USER clause of a CONNECT statement is incorrect. The
database server does not accept (or cannot find) your account password.
Check that your password is specified correctly, and try again. This
message appears with Version 6.0 and later.


-953	Network server could not exec sqlexec program.

The network server was unable to start the database server thread. The
most common cause for this error is a failure to define the INFORMIXDIR
environment variable, by root, at the time the database server process
was started. Contact your network administrator, and ask that the
database server process on the remote system be restarted with a valid
path to the IBM Informix software. This message appears with Version 6.0
and later.


-953	Remote host could not exec sqlexec program.

The network daemon, sqlexecd, on the other computer system was unable
to start the database server process. The most common cause of this
error is a failure to define the INFORMIXDIR and SQLEXEC environment
variables, by root, at the time the daemon was started. Contact your
network administrator, and ask that the daemon on the remote system be
restarted with a valid path to the IBM Informix software. This message
appears prior to Version 6.0.


-954	Client is not known to remote host.

The computer on which your application is running is not known to the
computer you are trying to access. Contact your network administrator,
and ask that your computer be made known. The usual way of making a
computer known is through the configuration file /etc/hosts.equiv on the
other system. Refer to the IBM Informix NET/IBM Informix STAR Installation and
Configuration Guide. This message appears prior to Version 6.0.


-954	Client is not known to database server.

The computer on which your application is running is not known to the
database server that you are trying to access. Contact your network
administrator, and ask that your computer be made known, most likely
through the configuration file /etc/hosts on the other system. This
message appears with Version 6.0 and later.


-955	Remote host could not receive data from client.

This internal error reflects a failure in communication between your
application and the IBM Informix STAR or IBM Informix NET software at another
site. Restart your application. Look for operating-system messages that
might give more information. If the problem recurs, ask your network
administrator to run network diagnostics. If the error recurs,
note all circumstances and contact IBM Technical Support. This
message appears prior to Version 6.0.


-955	Database server could not receive data from client.

This internal error reflects a failure in communication between your
client application and the database server software at another site.
Restart your application. Look for operating-system messages that might
give more information. If the problem recurs, ask your DBA to run
network diagnostics. If the error recurs, note all
circumstances and contact IBM Technical Support. This message
appears beginning with Version 6.0.


-956	Client client-name is not in /etc/hosts.equiv on the remote host.

This operation cannot be completed because the specified remote computer
does not recognize the name of the client computer (the local host,
whose name the hostname command returns). Client names are normally
recorded in the configuration file /etc/hosts.equiv. The rhosts file on
the remote computer might also need modification. For more information
on these files and the relation between them, try man rhosts on a UNIX
system. See the remote host administrator to ensure that the client
host name is specified in /etc/hosts.equiv file for the remote host.
This message appears in versions prior to Version 6.0.


-956	Client client-name or user is not trusted by the database server.

The desired database server does not consider the client computer or
your user ID trusted. Ask the system administrator to include the
client computer as a trusted host and/or your user id as a trusted user
in the /etc/hosts.equiv file on the server computer or in the .rhosts
file in your home directory on the server computer. See the UNIX manual
pages on HOSTS.EQUIV(5) for more information.

Alternatively, you can explicitly specify your user name and password
in the USER clause of a CONNECT statement or in the .netrc file in your
home directory on the client computer. See the IBM Informix Guide to SQL:
Syntax for information on the CONNECT statement, and the UNIX manual
pages regarding NETRC(5) for information on the .netrc file. This
message appears with Version 6.0 and later.


-957	Cannot create/access database on NFS mount.

Note the specifics of your system when this internal error
occurred, and contact IBM Technical Support.


-958	Temp table <table-name> already exists in session.

This statement tries to create a table with the name that is shown, but a
temporary table with that name already exists. Only one temporary table with
a given name can exist in a session.

Check the spelling of the name. If the name is spelled as you intended, check
that a temporary table with the given name does not exist in the session.
To review the names of temporary tables, query the systabnames table as
follows:

    SELECT dbsname, tabname FROM sysmaster:systabnames
           WHERE tabname = <table-name>

If the name exists, review this name by querying the systables table
in <dbsname>:

    SELECT tabname FROM <dbsname>:systables
           WHERE tabname = <table-name>

If the name does not exist in systables (" No rows found "), this table is
a temporary table.


-959	The current transaction has been rolled back due to an
internal error.

A server thread associated with your session has been suspended, most
likely because of a serious internal error. Evidence about the
problem has been gathered and written to an Assertion Failure file,
and your online log should contain more information. Contact 
IBM Technical Support and provide them with your Assertion
Failure file.

Before suspending the session thread, the server attempted to roll
back all work performed by the current transaction. Your connection
to the server may also have been broken, depending on the type of
thread that was suspended. At a minimum you will have to begin a
new transaction.


-960	The connection failed because the user failed the security
check set by the SECURITY_LOCALCONNECTION configuration parameter.

The ID of the local user running the client program is not the same
ID of the user trying to access the database. The server checks the
user IDs when the SECURITY_LOCALCONNECTION configuration parameter
is set to a nonzero value.

See the IBM Informix Administrator's Reference manual for more
information.


-971	Integrity violations detected.

The user has attempted to change the object mode of a disabled
constraint or disabled unique index to the enabled or filtering mode,
but the SET statement fails because the table contains data that
violates the constraint or the unique-index requirement. If a
violations table has been started for the table that contains the
inconsistent data, this message is returned to the user. The message
is returned whether or not the SET statement included the WITH ERROR
option.

Similarly, when an INSERT, DELETE, or UPDATE statement causes some
records to be added to the violations table because the statement
violates a filtering-mode object, this message is returned to the user
if the following two conditions are true:

    *   The SET statement or CREATE statement that specified the
	filtering-object mode for the object included the WITH ERROR
	option.

    *   No other errors have been encountered during the execution of
	the INSERT, DELETE, or UPDATE statement.


-972	Unable to alter table table-name.

The in-place alter table operation cannot be performed. See the
accompanying ISAM error for more information.


-973	Cannot insert from the violations table to the target table.

The user issued a statement that attempts to insert rows from the
violations table into the target table. For example, the user enters
the following statement:

INSERT INTO mytable SELECT * FROM mytable_vio

If the target table has some filtering-mode objects, this error is
returned to the user. The user can recover in any of the following
ways:

    *   Set the object mode of the filtering objects to some other
        mode.

    *   Stop the violations table.

    *   Insert rows from the violations table into a temporary table,
	and then insert rows from the temporary table into the target
	table.


-974	Cannot drop not null constraint on the serial column.

The user issued a statement to drop a NOT NULL constraint on a column
that has a SERIAL or SERIAL8 or BIGSERIAL data type. Such constraints 
can be disabled, but they cannot be dropped before the column is dropped.


-975	Invalid object and object mode combination.

The user tried to create a new object in an object mode that does not
apply to that object type, or the user set the object mode of an
existing object to a mode that does not apply to that type of object.
For example, if the user tries to create a trigger in the filtering
mode or set an existing trigger to the filtering mode, the user
receives this error.


-976	Table must be fragmented by expression to grant fragment authority.

The user attempted to grant fragment-level privileges on an
unfragmented table or on a table that is not fragmented by expression.


-977	No permission on fragment (dbspace-name/partition-name).

The user does not have the required fragment-level privilege on the
table fragment. This message is always followed by another message that
identifies the privilege that the user lacks. If an INSERT statement
fails, the second message is -271. If an UPDATE statement fails, the
second message is -346. If a DELETE statement fails, the second message
is -240.


-978	No insert permission on the violations/diagnostics tables.

The user issued an INSERT, DELETE, or UPDATE statement on a table with
filtering-mode objects. The user receives this message because the user
lacks the INSERT privilege on the violations or diagnostics tables that
are associated with this table. The user must have the INSERT privilege
on the violations and diagnostics tables before the database server can
write rows into the violations and diagnostics tables for that user.

Similarly, if the user issued a SET statement to change the object mode
of a disabled constraint or a disabled unique index to the enabled or
filtering mode, and if a violations table has been started for the
target table, the user receives this message if the user lacks the
INSERT privilege on the violations or diagnostics table associated with
the target table.


-979	The current transaction has been rolled back due to an
internal error.

A server thread associated with your session has been suspended, most
likely because of a serious internal error. Evidence about the
problem has been gathered and written to an Assertion Failure file,
and your online log should contain more information.

Before suspending the session thread, the server attempted to roll
back all work performed by the current transaction. Your connection
to the server might also have been broken, depending on the type of
thread that was suspended. At a minimum, you will have to begin a
new transaction.

Contact IBM Technical Support and provide them with your
Assertion Failure file.


-999	Not implemented yet.

This error means the functionality being exercised is not currently
implemented. Check the documentation and release notes that
describe this current restriction in this particular release for this
product. If this condition is not described in the regular documentation
or the release notes and recurs, note all circumstances and
contact IBM Technical Support.


-1003	Invalid ACCEPTKEY set in the environment.

The key that the ACCEPTKEY environment variable specifies is not
decipherable; either it does not start with F, or it has an invalid
number. Specify a different key.


-1004	The selected ACCEPTKEY has been preassigned for ISQL.

The key that the ACCEPTKEY environment variable specifies is one that
IBM Informix SQL always uses. Set a different value in the environment
variable.


-1005	Your specified termcap file cannot be read.

The TERMCAP environment variable specifies a file that cannot be
opened. Either it does not exist, or your account does not have
operating-system permissions to read it. Check the environment variable
and the file that it names.


-1006	Error number.

The error code that is shown was returned, but the program could not
display the message text for that number, probably because one of the
.iem message files is missing from the directory that the INFORMIXDIR
environment variable specifies. Look up the number in the finderr utility.
Also consult with the person who installed the IBM Informix software to find
out why the message files are not available.


-1007	Invalid value for the INFORMIXTERM environment variable.

The only valid settings for the INFORMIXTERM environment variables are
termcap and terminfo. Setting the variable to termcap (or leaving it
undefined) directs 4GL to use the TERMCAP facility for terminal
control. Setting it to terminfo causes 4GL to use the TERMINFO
facility. Other settings, including variations of the words termcap and
terminfo with capital letters in them, cause this error.


-1008	Termcap entry too long.

The contents of the TERMCAP environment variable, or of the termcap
entry from the termcap database, are read into storage when the
application is initializing. However, the memory buffer that is
allocated to hold the termcap entry is 1,024 bytes, and the entry in
use is longer than that. Use a simpler termcap.


-1009	Bad termcap entry.

The contents of the TERMCAP environment variable, or of the termcap
entry from the termcap database, are read into storage when the
application is initializing. While the program was doing this, it found
improper punctuation in the termcap entry. A colon separator did not
appear where one was expected. Review the specified termcap, and choose
a different one or correct the one that is in use.


-1010	Too many tc= indirections.

In a termcap definition for a terminal, the entry tc= causes the use of
a definition for default values for a different terminal. That terminal
might also have a tc= entry, and so on. However, 4GL cannot follow more
than four tc= commands. The termcap definition in use at this time (as
the TERM or TERMCAP environment variable specifies) exceeds the limit.
Write or find a termcap definition that is more self contained.


-1101	Variable address is NULL.

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


-1102	Field name not found in form.

A field name listed in an INPUT, INPUT ARRAY, CONSTRUCT, SCROLL or
DISPLAY statement does not appear in the form specification of the
screen form that is currently displayed. Review the program logic to
ensure that the intended window is current, the intended form is
displayed in it, and all the field names in the statement are spelled
correctly.

A common problem is the attempted use of field tags instead of field
names. The field tag is the name that is written in the screen picture
and that appears at the left side of the ATTRIBUTES statement for that
field. It is not the name of the field for input or display purposes.
The field name is the column name with which it is associated. This
name appears to the right of the equal sign in the ATTRIBUTES section.

   ATTRIBUTES

   f000 = customer.customer_num,color=red;

The name of the field in the preceding example is customer_num. Use of
the tag f000 in an INPUT statement will produce an error.


-1103	This value is not among the valid possibilities.

A list or range of acceptable values has been established for this
column (via an INCLUDE attribute in the form-specification file). You
must enter a value within the acceptable range.

For 4GL programs, -1301 replaces this error.


-1104	The two entries were not the same. Try again.

To guard against typographical errors, this field has been designated
VERIFY (in the form specification file). The value in this field must
be entered twice, identically. Carefully reenter the data.
Alternatively, you can cancel the form entry with the Interrupt key
(usually CTRL-C, but see the operating instructions that the program
author supplied).

For 4GL programs, -1302 replaces this error.


-1105	You cannot use this editing feature because a picture exists.

This field is defined (in the form specification file) with a PICTURE
attribute to specify its format. You cannot use certain editing keys
(for example, CTRL-A, CTRL-D, and CTRL-X) while you are editing such a
field. Use only printable characters and the backspace to enter the
value.

For 4GL programs, -1303 replaces this error.


-1106	Error in field.

You entered a value in this field that cannot be stored in the program
variable that is meant to receive it. For example, possibly you entered
a decimal number when the application provided only an integer
variable, or you entered a character string that is longer than the
application expected. Note all the circumstances and then discuss the
problem with the person who wrote the application program.

For 4GL programs, -1304 replaces this error.


-1107	Field subscript out of bounds.

The subscript of a screen array in an INPUT, DISPLAY, or CONSTRUCT
statement is either less than 1 or greater than the number of fields in
the array. Review the program source in conjunction with the form
specification to see where the error lies.


-1108	Record not in form.

The screen record that is named in an INPUT ARRAY or DISPLAY ARRAY
statement does not appear in the screen form that is now displayed.
Review the program source in conjunction with the form specification to
see if the screen record names match.


-1109	List and record field counts differ.

The number of program variables does not agree with the number of
screen fields in a CONSTRUCT, INPUT, INPUT ARRAY, DISPLAY, or DISPLAY
ARRAY statement. Review the statement in conjunction with the form
specification to see where the error lies. Common problems include a
change in the definition of a screen record that is not reflected in
every statement that uses the record, and a change in a program record
that is not reflected in the form design.


-1110	Form file not found.

The form file that is specified in an OPEN FORM statement was not
found. Inspect the "form-file" parameter of the statement. It should
not include the file suffix.frm. However, if the form is not in the
current directory, it should include a complete path to the file.


-1111	Field table offset out of bounds.

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


-1112	A form is incompatible with the current 4GL version. Rebuild your form.

The form file that is specified in an OPEN FORM statement is not
acceptable. Possibly it was corrupted in some way, or it was compiled
with a version of the Form Compiler that is not compatible with the
version of the 4GL compiler that compiled this program. Use a current
version of the Form Compiler to recompile the form specification.


-1113	Memory allocation error.

A BYTE or TEXT variable has been located in memory, and a value has
been assigned to the variable. However, not enough data memory is
available to hold the variable. Review the program, and locate the
large value in a file instead.

For 4GL programs, -1319 replaces this error.


-1114	No form has been displayed.

The current statement requires the use of a screen form. For example,
DISPLAY...TO or an INPUT statement must use the fields of a form.
However, the DISPLAY FORM statement has not been executed since the
current window was opened. Review the program logic to ensure that it
opens and displays a form before it tries to use a form.


-1115	Numeric value too long for field.

4GL tried to format a numeric value for display in a form field, but
the resulting string was too long for the field. Review the program
logic to find out what large numeric value is being assigned.

For 4GL programs that were compiled at Version 5.0 and later or that
are running under 4GL/GX, this error cannot occur.


-1116	Default value from form field cannot be converted to
input variable type.

This statement takes input from a form field whose default value (which
the ATTRIBUTES keyword DEFAULT specifies in the form) is not compatible
with the program variable that receives it. Review all the program
variables that are named in this statement, and compare them to the
definitions of the fields in the form specification. Check that each
variable corresponds to the intended field and has a compatible data
type.


-1117	Cannot convert date value to string.

This message is not believed to be in use in any current product. If
the error recurs, note all circumstances and contact
IBM Technical Support.


-1119	NEXT FIELD name not found in form.

This statement (INPUT or INPUT ARRAY) contains a NEXT FIELD clause that
names a field that is not defined in the form. Perhaps the form has
been changed, but the program has not. Also see the note for error
message -1102.

For 4GL programs, -1371 replaces this error.


-1120	Message file not found.

The message file that is specified in the HELP FILE clause of the most
recent OPTIONS statement does not exist. Find that OPTIONS statement in
the program, and review the "help-file" parameter. It must contain the
complete filename of the prepared message file. If the file is not in
the current directory, it must have a full pathname. Message files are
prepared with the mkmessage utility.

For 4GL programs, -1227 replaces this error.


-1121	Message number not found in message file.

A message number that is given in the HELP clause of an INPUT, PROMPT,
or MENU statement cannot be found in the current message file. The
most- recently executed OPTIONS HELP FILE statement establishes the
message file. Find that statement in the program, and verify that the
message file is the one that you intended. Then review the source of
that message file, and ensure that it contains definitions for all the
message numbers that are used in the program. Recompile the message
file with the mkmessage utility, and try the program again.

For 4GL programs, -1228 replaces this error.


-1122	Incompatible message file.

The message file that is named in the most-recently executed OPTIONS
HELP FILE statement was not acceptable. Possibly it has been corrupted
in some way. Possibly the OPTIONS statement named the message source
file instead of the compiled message file (the output of mkmessage).
Possibly the file was compiled with an outdated version of the
mkmessage utility. Recompile the message file with the current version
of the utility, and review the program source to make sure that it
names the correct file.

For 4GL programs, -1229 replaces this error.


-1123	No help file specified.

This INPUT, PROMPT, or MENU statement contains a HELP help-number
clause; however, no message file has been established. The OPTIONS HELP
FILE statement establishes the message file, but none has yet been
executed. Review the program logic, and modify it to execute an
OPTIONS statement with a HELP FILE clause before it is needed.

For 4GL programs, -1343 replaces this error.


-1124	This field requires an entered value.

The cursor is in a form field that has been designated REQUIRED. You
must enter some value before the cursor can move on to another field.
However, to enter a null value, type any printable character and then
backspace. Alternatively, you can cancel the form entry with the
Interrupt key (usually CTRL-C, but see the operating instructions that
the program author supplied).

For 4GL programs, -1305 replaces this error.


-1125	Type again for verification.

The cursor is in a form field that has been designated VERIFY. You must
enter the value twice, identically, before the cursor can move on to
another field. This requirement helps to ensure that no typographical
errors occur during data entry. Alternatively, you can cancel form
entry with the Interrupt key (usually CTRL-C, but see the operating
instructions that the program author supplied).

For 4GL programs, -1306 replaces this error.


-1126	Cannot insert another row - the input array is full.

You are entering data into an array of records that is represented in
the program by an array of program variables. That array is now full;
no place is available to store another record. Press the ACCEPT key
(usually ESCAPE, but see the operating instructions that the program
author supplied) to process the records that you have entered.

For 4GL programs, -1307 replaces this error.


-1127	Cannot delete row - it has no data.

You pressed the Delete Row function key (usually F2, but see the
operating instructions that the program author supplied) in an empty
row. Nothing was deleted.

For 4GL programs, -1308 replaces this error.


-1128	There are no more rows in the direction you are going.

You are attempting to scroll an array of records farther than it can
go, either scrolling up at the top or scrolling down at the bottom of
the array. Further attempts will have the same result.

For 4GL programs, -1309 replaces this error.


-1129	Field in BEFORE/AFTER clause not found in form.

This statement includes a BEFORE FIELD clause or an AFTER FIELD clause
that names a field that is not defined in the form that is currently
displayed. Review the program to ensure that the intended form was
displayed, and review this statement against the form specification to
ensure that existing fields are named. Also see the note on field names
for error message -1102.


-1130	You cannot have multiple BEFORE clauses for the same field.

This statement includes at least two BEFORE FIELD clauses that name the
same form field. Only one is supported. Find all the BEFORE FIELD
clauses relate to one field, and combine them into a single clause.


-1131	You cannot have multiple AFTER clauses for the same field.

This statement includes at least two AFTER FIELD clauses that name the
same form field. Only one is supported. Find all the AFTER FIELD
clauses that relate to one field, and combine them into a single
clause.


-1132	The destination string of the CONSTRUCT statement is not large enough.

The outcome of a CONSTRUCT statement is a character string that
contains all the conditions that the user entered. This string is in a
form suitable for use as the WHERE clause of a SELECT statement. In
this CONSTRUCT statement, the result string is longer than the program
variable that is specified to receive it. As a general rule, the length
of the variable must allow enough room for the names of all the screen
fields that are used in the statement, plus room for the field contents
and for punctuation and relational operators. Review the statement,
and revise the definition of the receiving variable accordingly.


-1133	The NEXT OPTION name is not in the menu.

This MENU statement contains a NEXT OPTION clause that names a
menu-option that is not defined in the statement. The string that
follows NEXT OPTION must be identical to one that follows a COMMAND
clause in the same MENU statement. Review the statement to ensure that
these clauses agree with each other.


-1134	There is no termcap entry for this function key.

The key that is specified in one clause of this OPTIONS statement is
not defined in the termcap file (or the terminfo file if you are using
it instead). Review the HELP KEY, INSERT KEY, NEXT KEY, PREVIOUS KEY,
and DELETE KEY clauses. Compare the function keys that they specify to
the current termcap definition.


-1135	The row or column number in DISPLAY AT exceeds the limits of your
terminal.

Review the DISPLAY...AT statement. Make sure that the position numbers
are in the correct order (row number first, then column) and that they
make sense for the current terminal or window. The dimensions of the
terminal for UNIX systems are determined when the program starts by
reading termcap information (or terminfo information, depending on the
value of the INFORMIXTERM environment variable). A screen location that
is correct for one user of the program might not be correct for all. On
DOS systems, the window size is always 24 lines by 80 characters.


-1136	Window is too large to fit on the screen.

The window dimensions that are specified in the WITH clause of this
OPEN WINDOW statement conflict with the size of the screen. The entire
window cannot be displayed, so the statement is not executed. If the
WITH clause specifies dimensions, you can use smaller ones; if it
specifies a form, the SCREEN statement in the form specification sets
the dimensions. Alternatively, you might be able to get the window
into the screen by changing the origin that is provided in the AT
clause. The dimensions of the terminal for UNIX systems are determined
when the program starts by reading termcap information (or terminfo
information, depending on the value of the INFORMIXTERM environment
variable). Screen dimensions that are correct for one user of the
program might not be correct for all. On DOS systems, the window size
is always 24 lines by 80 characters.


-1137	Cannot open window.

The cause of the problem is a lack of data memory. Change the logic of
the program to keep fewer windows open concurrently, or use fewer
global variables.

For 4GL programs, -1319 replaces this error.


-1138	Border does not fit on screen. Window is too large.

The window that this OPEN WINDOW statement describes cannot be opened
because its border does not fit on the screen. Despite the wording of
the message, the window is not necessarily too large for the screen.
However, one or more of its borders (top, bottom, left, or right)
cannot be drawn. The position of the window is set in the OPEN WINDOWS
statement; check that it starts no higher than row 2 and no farther
left than column 2 (or else remove the BORDER attribute). The OPEN
WINDOW statement or the form that it names sets the size of the
window.

The dimensions of the terminal for UNIX systems are determined when the
program starts by reading termcap information (or terminfo information,
depending on the value of the INFORMIXTERM environment variable). If
the termcap entry includes sg#1 (terminfo: xmc#1), 4GL reserves an
additional column to the left and right of a bordered window. On DOS
systems, the window size is always 24 lines by 80 characters.


-1139	Form line cannot be set using LAST keyword.

This OPTIONS statement includes a FORM LINE clause that uses LAST. You
can specify an absolute form line or one relative to FIRST, but you
cannot specify it relative to LAST.


-1140	NEXT OPTION is a hidden option.

The option that is named in this NEXT OPTION statement has previously
been hidden with the HIDE OPTION statement. Because it is not visible
to the user, it cannot be highlighted as the next choice.


-1141	Cannot close window with active INPUT, DISPLAY ARRAY, or MENU statement.

This CLOSE WINDOW statement cannot be executed because an input
operation is still active in that window. The CLOSE WINDOW statement
must have been contained in, or called from within, the input statement
itself. Review the program logic, and revise it so that the statement
completes before the window is closed.


-1142	Window is too small to display this form.

The window dimensions of the current window are too small to contain
the form that is to be displayed. Review the window dimensions, and
compare them to all forms that will be displayed in that window. The
dimensions of the form are established in the form-specification file
with the SCREEN statement. The dimensions of the window are set during
the OPEN WINDOW statement, either directly or by opening the window
WITH a particular form.


-1143	Window is already open.

This OPEN WINDOW statement names a window that is already open. Review
the program logic, and see whether it should contain a CLOSE WINDOW
statement, or whether it should simply use a CURRENT WINDOW statement
to bring the open window to the top.


-1144	Cannot open window. Window origin is not on the screen.

The row and column position in the AT clause of this OPEN WINDOW
statement points off the physical screen. The statement is not
executed. Review the program, and check that the numbers are in the
correct order (first row, then column). The dimensions of the terminal
are determined when the program starts by reading termcap information
(or terminfo information, depending on the value of the INFORMIXTERM
environment variable), so a window origin that is correct for some
users might not be correct for all.


-1145	Cannot open ERROR window.

4GL attempted to open a one-line, 80-column window in which to display
an error message but was not able to do so. Possible causes include a
shortage of data memory and internal errors.

For 4GL programs, -1319 replaces this error.


-1146	PROMPT message is too long to fit in the window.

Although 4GL truncates the output of MESSAGE and COMMENT to fit the
window dimensions, it does not do so for PROMPT and the user's
response. Reduce the length of the prompt string, or make the window
larger. You could display most of the prompting text with DISPLAY and
then prompt with a single space or colon.


-1147	You cannot CLOSE, CLEAR or make CURRENT an unopened window.

This CLOSE WINDOW, CLEAR WINDOW, or CURRENT WINDOW statement names a
window that has not been opened or has been closed. Review the program
logic to ensure that it does not refer to an unopened window except to
open it.


-1148	Size of a window may not be negative.

The AT clause of this OPEN WINDOW statement uses a negative number. The
row and column sizes must be positive integers. Revise the statement.


-1149	An unknown code has been detected in the form.

The screen form that is currently displayed is unacceptable in some
way. Possibly it has been corrupted; possibly it was compiled by an
obsolete version of form4gl. Recompile the form. If the problem recurs,
note all circumstances and contact IBM Technical Support.


-1150	Window is too small to display this menu.

Review the OPEN WINDOW statement for the current window in conjunction
with this MENU statement. The window must be at least two rows tall,
and it must be wide enough to display the menu title, the longest
option name, two sets of three-dot ellipses, and six spaces. Revise the
program to make the window larger or to give the menu a shorter name
and shorter options.


-1151	IBM Informix 4GL Run Time Facility.

This message is not believed to be in use in any current product. If
the error recurs, note all circumstances and contact
IBM Technical Support.


-1152	Enter value in range.

This error message is a version of message -1103/-1301, which is used
by IBM Informix 4GL/RF with handheld terminals that have very small
screens. See message -1103.


-1153	Bad verify -- reenter.

This message is a version of message -1104/-1302, which is used by
IBM Informix 4GL/RF with handheld terminals that have very small screens.
See message -1104.


-1154	Cannot use edit key.

This message is a version of message -1105/-1303, which is used by
IBM Informix 4GL/RF with handheld terminals that have very small screens.
See message -1105.


-1155	Enter value in field.

This message is a version of message -1124/-1305, which is used by
IBM Informix 4GL/RF with handheld terminals that have very small screens.
See message -1124.


-1156	Enter value again.

This message is a version of message -1125/-1306, which is used by
IBM Informix 4GL/RF with handheld terminals that have very small screens.
See message -1125.


-1157	No more rows.

This message is a version of message -1127/-1309, which is used by
IBM Informix 4GL/RF with handheld terminals that have very small screens.
See message -1127.


-1158	FMP has run out of memory.

FMP refers to IBM Informix 4GL/RF. See the installation documentation for
your system.


-1159	FMP has exceeded its number of concurrent INPUT statements.

FMP refers to IBM Informix 4GL/RF. See the installation documentation for
your system.


-1160	FMP has exceeded its number of concurrent DISPLAY ARRAY statements.

FMP refers to IBM Informix 4GL/RF. See the installation documentation for
your system.


-1161	FMP currently is not in the midst of an INPUT statement.

FMP refers to IBM Informix 4GL/RF. See the installation documentation for
your system.


-1162	FMP has exceeded the number of concurrently open forms.

FMP refers to IBM Informix 4GL/RF. See the installation documentation for
your system.


-1163	The FMP version number is incompatible with the 4GL program. Relink
the 4GL program and run again.

FMP refers to IBM Informix 4GL/RF. See the installation documentation for
your system.


-1164	A NEXT FIELD specified in the instructions section of the form is
not used within the current input statement.

The current form field has a NEXT FIELD specification (in the
INSTRUCTIONS section of the form). However, the specified next field is
not named in the current INPUT statement, so the cursor cannot move to
that field.


-1165	This statement is not allowed for the FMP.

FMP refers to IBM Informix 4GL/RF. See the installation documentation for
your system.


-1166	An illegal code has been received from the FMP.

FMP refers to IBM Informix 4GL/RF. See the installation documentation for
your system.


-1167	An unknown form name has been received by the FMP.

FMP refers to IBM Informix 4GL/RF. See the installation documentation for
your system.


-1168	Command does not appear in the menu.

The SHOW OPTION, HIDE OPTION, or NEXT OPTION statement cannot refer to
an option (command) that does not exist. Check the spelling of the name
of the option.


-1170	The type of your terminal is unknown to the system.

Check the setting of your TERM environment variable and the setting of
your TERMCAP or TERMINFO environment variable. Check with your system
administrator if you need help with this action.


-1171	A disallowed data type has been encountered by the FMP.

FMP refers to IBM Informix 4GL/RF. See the installation documentation for
your system.


-1176	A COMMAND KEY value occurs elsewhere in the current menu.

In the indicated MENU statement, you defined a key value in more than
one COMMAND KEY keylist or both in a COMMAND KEY keylist and as the
default activation key for one or more nonhidden COMMAND clauses (for
example, that key value is also the first character of one or more
menu-option strings). This condition is illegal because MENU has no way
to resolve what to do if the given keystroke occurs.

A given key might appear as the default activation key for more than
one COMMAND (without the KEY clause) because the user will be prompted
for subsequent keystrokes until a unique string is obtained. This
action is not possible with COMMAND KEY because only one keystroke is
compared.

If a COMMAND is currently hidden (by using the HIDE OPTION keywords),
its default activation key is ignored and does not trigger this
particular error condition.

-1200	Number is too large for a DECIMAL data type.

The float DECIMAL data type accommodates numbers greater than or equal to
1.000E-130 and less than 1.000E+126 in absolute value. The precision
(number of significant digits) varies from 1 to 32; however, the source
of this error is not the length of the number but its magnitude.


-1201	Number is too small for a DECIMAL data type.

The DECIMAL data type accommodates numbers greater than or equal to
1.000E-130 and less than 1.000E+126 in absolute value. The precision (number
of significant digits) varies from 1 to 32; however, the source of this
error is not the length of the number but its magnitude.


-1202	An attempt was made to divide by zero.

Zero cannot be a divisor. In some cases, this error arises because the
divisor is a character value that does not convert properly to
numeric.


-1203	Values used in a MATCH must both be type CHARACTER.

The MATCHES relationship applies only to character data; both of its
operands must be CHAR or VARCHAR columns or variables, or literal
character strings. If you need to apply a regular-expression pattern
match to a numeric value, you can do so in 4GL. Assign the numeric
value to a CHAR variable, and test that variable.


-1204	Invalid year in date.

The year in a DATE value or literal is invalid. For example, the
number 0000 is not acceptable as the year.


-1205	Invalid month in date.

The month in a DATE value or literal must be a one- or two-digit number
from 1 to 12.


-1206	Invalid day in date.

The day number in a DATE value or literal must a one- or two-digit number
from 1 to 28 (or 29 in a leap year), 30, or 31, depending on the month that
accompanies it.


-1207	Converted value does not fit into the allotted space.

A noncharacter value, after conversion to a character string, is too
long to fit in the buffer that was provided.

If the conversion was automatic, change the program to provide a larger
host variable to receive the string.

If this action was an explicit call to conversion function, pass a
larger buffer.


-1208	There is no conversion from non-character values to character values.

If you are using a database server prior to Version 4.0, no automatic
conversion from numeric values to character values occurs in SQL
statements such as INSERT and UPDATE. Check that the specified value
for each column agrees with the data type of that column. If you use a
Version 4.0 or later database server, this message should not appear.


-1209	Without any delimiters, this date must contain exactly 6 or 8 digits.

When a literal date value is entered in numeric form, not enclosed in
quotes to make it a character string, it must be entered as a number of
precisely 6 digits (representing mmddyy) or 8 digits (representing
mmddyyyy). Because no punctuation is present, a date with any other
number of digits is ambiguous; it cannot be divided into month, day,
and year with certainty.


-1210	Date could not be converted to month/day/year format.

The DATE type is compatible with the INTEGER type, but not all integer
values are valid dates. This error arises in attempts to convert to
character from a date whose numeric value is less than -693,594 or
greater than 2,958,464. Numbers that are outside this range have no
representation as dates.

You may also see this message if you try to use the VARIANCE() or
STDEV() functions on an inappropriate data type, such as DATE.


-1211	Out of memory.

4GL cannot allocate memory for a small, temporary work area that is
used for processing an expression. To avoid this error, simplify the
program in almost any way to release enough space


-1212	Date conversion format must contain a month, day, and year component.

When a date value is converted between internal binary format and
display or entry format, a pattern directs the conversion. When
conversion is done automatically, the pattern comes from the
environment variable DBDATE. When it is done with an explicit call to
the rfmtdate(), rdefmtdate(), or USING functions, a pattern string is
passed as a parameter. In any case, the pattern string (the format of
the message) must include letters that show the location of the three
parts of the date: 2 or 3 letters d; 2 or 3 letters m; and either 2 or 4
letters y.


-1213	A character to numeric conversion process failed.

A character value is being converted to numeric form for storage in a
numeric column or variable. However, the character string cannot be
interpreted as a number. It contains some characters other than white
space, digits, a sign, a decimal, or the letter e; or the parts are in
the wrong order, so the number cannot be deciphered.

If you are using NLS, the decimal character or thousands separator
might be wrong for your locale.


-1214	Value too large to fit in a SMALLINT.

The SMALLINT data type can accept numbers with absolute values from 0
through 32,767 (plus or minus (2 to the 15th power) - 1). To store
numbers that are outside this range, redefine the column or variable to
use INTEGER or DECIMAL type. (The value -32,768 is a 16-bit value but
is not acceptable; it indicates a null value in 4GL.)


-1215	Value too large to fit in an INTEGER.

The INTEGER or SERIAL data type can accept numbers with absolute values
from 0 through 2,147,483,647 (plus or minus (2 to the 31st power) - 1).

To store numbers that are outside this range, redefine the column or
variable to use the BIGINT or BIGSERIAL or INT8 or SERIAL8 data type 
or the DECIMAL data type.  For more information on valid ranges of 
data types, see the IBM Informix Guide to SQL: Reference.


-1216	Illegal exponent.

The exponent of a numeric literal cannot exceed 32,767. In fact, none
of the available data types can accommodate an exponent that large.
However, the exponent itself triggers this message before checking the
destination of the number. Check the statement for missing or misplaced
punctuation that might have caused two numbers to run together.


-1217	The format string is too large.

The pattern string that is used to format a date (either the DBDATE
environment variable or the pattern that is passed to rfmtdate() or the
USING function) is too long. The limit is 80 bytes.


-1218	String to date conversion error.

The input to the rstrdate() function does not properly represent a
date: either it has nondigits where digits are expected, an unexpected
delimiter, or numbers that are too large or are inconsistent.


-1219	Numeric value from database is too large for COBOL data item.

This message is not believed to be in use in any current product. If
the error recurs, note all circumstances and contact
IBM Technical Support.


-1220	Numeric value from database is too small for COBOL data item.

This message is not believed to be in use in any current product. If
the error recurs, note all circumstances and contact
IBM Technical Support.


-1221	Cannot convert null data types.

This message is not believed to be in use in any current product. If
the error recurs, note all circumstances and contact
IBM Technical Support.


-1222	Value will not fit in a SMALLFLOAT.

The SMALLFLOAT data type can accept numbers within a certain range of
exponents. The maximum and minimum exponent values are different
depending on the host operating system (the range is the same as that
supported by the C compiler for float values in this system). In the
current statement, a constant number is being converted for storage in
a FLOAT variable or column, and the exponent is too large or too
small.


-1223	Value will not fit in a FLOAT.

The FLOAT data type can accept numbers within a certain range of
exponents. The maximum and minimum exponent values are different
depending on the host operating system (the range is the same as that
supported by the C compiler for double values in this host system). In
the current statement, a constant number is being converted for storage
in a FLOAT variable or column, and the exponent is too large or too
small.


-1224	Invalid decimal number.

This message is not believed to be in use in any current product. If
the error recurs, note all circumstances and contact
IBM Technical Support.


-1225	Column does not admit a NULL value.

This statement attempted to store a null value in a column that has
been defined as not allowing nulls. Review the definition of the table,
and revise the statement so that it supplies values for all required
columns.


-1226	Decimal or money value exceeds maximum precision.

The client is attempting to convert a number into a DECIMAL or MONEY variable.
However, the number has more digits to the left of the decimal
point than the declaration of the variable allows. Revise the program to
assign the converted number to a variable with an appropriate precision. 


-1227	Message file not found.

4GL cannot locate a file of message texts. The file should have a
suffix of .iem and be in the product directory, $INFORMIXDIR/msg.
Reinstall such files from the distribution materials. If you have
started to modify the user-message file, 4glusr.msg, check that its
compiled form has been replaced in the correct directory.


-1228	Message number not found in message file.

4GL cannot find a message number that should appear in a message file
that was installed with the product. Reinstall all files of type .iem
from the distribution materials. If you have modified the contents of
the file, 4glusr.msg, review all deletions that you might have made,
and recompile that file.


-1229	Incompatible message file.

4GL is trying to look up a message text in a message file, but the file
contents do not match the current version of the product. Possibly the
file is corrupt; possibly a message file from a prior version is present.
The file has a suffix of .iem and exists in the etc subdirectory of the
path that the INFORMIXDIR environment variable identifies. Reinstall such
files from the distribution materials. If you have started to modify the
user-message file, 4glusr.msg, make sure that you are recompiling it with
a current version of the mkmessage utility.


-1230	Bad message file name formulation.

An invalid filename has been supplied for the message file that is used
for displaying error messages such as the ones in this book, so the
file cannot be opened. Check the value of the DBLANG environment
variable, if one is specified.


-1231	Cannot seek within message file.

The application is trying to look up a message text in a message file
but receives an error code when it tries to position within the file.
This situation indicates some problem with the file itself; possibly it
has been corrupted or truncated. Reinstall all files of type .iem from
the distribution materials. If you have modified the user-message file,
4glusr.msg, recompile it as well.


-1232	Message buffer too small.

4GL is reading a message text from a compiled message file but cannot
resize the buffer to be large enough to hold the complete message. This
situation might indicate a critical shortage of data space, but more
probably it indicates a corrupted or invalid message file. Reinstall
all files of type .iem from the distribution materials. If you have
modified the user-message file, 4glusr.msg, recompile it as well.


-1233	Invalid hour, minute, or second.

This message is not believed to be in use in any current product. If
the error recurs, note all circumstances and contact
IBM Technical Support.


-1234	Function may be applied only to datetime data types.

This message is not believed to be in use in any current product. If
the error recurs, note all circumstances and contact
IBM Technical Support.


-1235	Character host variable is too short for the data.

In an ESQL/C program, the program has attempted to fetch a column value
into a host variable that is not large enough. Use the DESCRIBE command
to find out the sizes of column values.

If this error arises in a 4GL program, note all circumstances
and contact IBM Technical Support.


-1236	Bad era date.

The era name or the era offset that is given in the input string is
invalid or has not been entered in the required format. Check that the
era name and offset are valid and in the proper order in the input
string. Check the format against the value of DBTIME, DBDATE, or the
format string passed to the SQL API function, whichever is
appropriate.


-1237	Bad era name.

The date format requires an era name, but no name that matches the era
names in the GLS locale could be found in the input string. Check that
you are using the correct locale and that you entered the era name
correctly.


-1238	Bad era initialization.

Contact IBM Technical Support regarding this internal error.


-1239	Era year overflow.

The era offset that is given is not within the range for the era that
is specified. Check that the era offset is within the valid range for
the era that is specified.


-1250	Unable to create pipes.

Your application is using an operating-system facility called a pipe to
initialize its communication with the database server. The operating
system returned an unexpected error. Look for operating-system error
messages that might give more information.


-1251	Unable to create shared memory. semget failed.

Your application is initializing its communication with the database
server, which is a version that uses shared memory for communications.
An unexpected error has occurred with an operating-system function,
semget. Look for operating-system messages that might give more
information. Consult with the person who installed the IBM Informix
shared-memory product.


-1252	Unable to create shared memory. shmget failed.

Your application is initializing its communication with the database
server, which is a version that uses shared memory for communications.
An unexpected error has occurred with an operating-system function,
shmget. Look for operating-system messages that might give more
information. Consult with the person who installed the IBM Informix
shared-memory product.


-1254	Unable to connect to remote host.

The program is attempting to open a database that a database server in
another system manages, but it could not open a network connection to
the other system. Check the site name that the DATABASE or CREATE
DATABASE statement specifies. If it is as you intended, look for other
error messages from the networking component or the operating system.
Contact the operator of the other system to verify that it is active
and accepting network connections.


-1257	Operating system cannot fork process for back end.

Back end refers to the database server. If this is an internal error, look
for operating-system messages that might give more detail. In DOS
systems, you probably are out of memory; exit to the operating-system
command line, and resubmit your program. After you verify that no
system limit or local problem exists, note all circumstances and
contact IBM Software Support.


-1258	Cannot attach to shared memory used to communicate with back end.

Back end refers to the database server. In this internal error, look
for operating-system messages that might give more detail. After you
verify that no system limit or local problem exists, note all
circumstances and contact IBM Technical Support.


-1260	It is not possible to convert between the specified types.

The database server attempts any data conversion that makes sense. Some
conversions, however, are not supported, such as INTERVAL to DATE, DATETIME
to MONEY, CHAR to LIST, or CHAR to SET. Possibly you referenced the wrong
variable or column. Check that you have specified the data types that you
intended and that literal representations of data values are correctly
formatted.


-1261	Too many digits in the first field of datetime or interval.

The first field of a DATETIME literal must contain either 1 or 2 digits
(if it is not a YEAR) or else 2 or 4 digits (if it is a YEAR). The
first field of an INTERVAL literal represents a count of units and can
have up to 9 digits, depending on the precision that is specified in
its qualifier. Review the DATETIME and INTERVAL literals in this
statement, and correct them.


-1262	Non-numeric character in datetime or interval.

The form of a DATETIME or INTERVAL literal is very limited. One can
contain only decimal digits and the allowed delimiters: the hyphen
between year, month, and day numbers; the space between day and hour;
the colon between hour, minute, and second; and the decimal point
between second and fraction. Any other characters, or these characters
in the wrong order, produce an error.


-1263	A field in a datetime or interval is out of range, incorrect, or missing.

Inspect the DATE, DATETIME, and INTERVAL literals in this statement;
at least one of them contains at least one incorrect field or is missing
at least one field.

In a DATE or DATETIME literal, the year might be zero, the month might be other
than 1 to 12, or the day might be other than 1 to 31 or inappropriate for the
month. Also in a DATETIME literal, the hour might be other than 0 to 23, the
minute or second might be other than 0 to 59, or the fraction might have too
many digits for the specified precision.

In an INTERVAL literal, the constraints are the same except that the
first field is a count and can have as many digits as the qualifier
specifies.


-1264	Extra characters at the end of a datetime or interval.

Only spaces can follow a DATETIME or INTERVAL literal. Inspect this
statement for missing or incorrect punctuation.


-1265	Overflow occurred on a datetime or interval operation.

Both DATETIME and INTERVAL values are stored internally as DECIMAL
values. In this statement, an arithmetic operation that uses DATETIME
and/or INTERVAL values has caused an arithmetic overflow. This
situation should not occur. Check the precision that is specified for
an INTERVAL value. If the INTERVAL value that you want to enter is
greater than the default number of digits that are allowed for that
field, you must explicitly identify the number of significant digits in
your definition. If the error recurs, note all circumstances and
contact IBM Technical Support.


-1266	Intervals or Datetimes are incompatible for the operation.

Some arithmetic combinations of DATETIME, INTERVAL, and numeric values
are meaningless and are not allowed. Review the arithmetic expressions
in this statement. Possibly one of them is using a DATETIME or INTERVAL
column or variable by mistake. If not, see your SQL reference material
for the valid use of these data types.


-1267	The result of a datetime computation is out of range.

In this statement, a DATETIME computation produced a value that cannot be
stored. This situation can occur, for example, if a large interval is added
to a DATETIME value. This error can also occur if the resultant date does
not exist, such as Feb 29, 1999.

Review the expressions in the statement and see if you can change the
sequence of operations to avoid the overflow.


-1268	Invalid datetime or interval qualifier.

This statement contains a DATETIME or INTERVAL qualifier that is not
acceptable. These qualifiers can contain only the words YEAR, MONTH,
DAY, HOUR, MINUTE, SECOND, FRACTION, and TO. A number from 1 to 5 in
parentheses can follow FRACTION. Inspect the statement for missing
punctuation and misspelled words. A common error is adding an s, as in
MINUTES.


-1269	Locator conversion error.

This message was issued because a function that requires an argument
that is a locator (a reference to a BYTE or TEXT value) received
something other than a valid locator (such as a NULL parameter, or an
argument of any other data type).

Review the program logic to make sure the arguments are correct.


-1270	Interval literal may not have embedded minus sign.

You can use a minus sign as an arithmetic operator between an INTERVAL
literal and other values, and you can use a minus sign as a prefix to
an INTERVAL literal to indicate it is a negative quantity. However, you
cannot embed a minus sign among the fields of the literal. If you did
not intend to do this, inspect the statement for missing or misplaced
punctuation.


-1271	Missing decimal point in datetime or interval fraction.

A decimal point is expected to appear in a DATETIME or INTERVAL literal
when the qualifier of the literal contains the word FRACTION. This
statement has such a literal, but no decimal point was found. Inspect
the literal qualifiers for missing or misplaced punctuation.


-1272	No input buffer has been specified.

You have not specified an input string for this function, so the
conversion cannot proceed. Set the input-string argument, and call the
function again. (This function might require that you define
formatting directives with the DBTIME environment variable.)


-1273	Output buffer is NULL or too small to hold the result.

This error is returned when the function is called and the address
space for the output buffer is null or smaller than the format-string
length. Redefine the size of the address, and execute the function
again. (This function might require that you define formatting
directives with the DBTIME environment variable.)


-1274	No output buffer has been specified.

The output buffer length is zero, or the buffer pointer is a null
pointer. Database servers after Version 5.01 do not use this error
message.


-1275	Invalid field width or precision in datetime or interval format string.

The field width or precision in DATETIME or INTERVAL format
specification must make sense. The field width must be a decimal
number, with a leading zero or minus ( - ) sign. If a precision
specification is present, it must also be decimal, separated from the
field-width specification by a period.


-1276	Format conversion character not supported.

A format conversion character in the format string is not valid. Check
the string against the table of format conversion directives for
DATETIME and INTERVAL format conversion functions in the manual for
your embedded language product. See also the discussion of the DBTIME
environment variable in the IBM Informix Guide to SQL:
Reference.


-1277	Input does not match format specification.

Check that the ASCII string that contains a DATETIME or INTERVAL value
conforms to the format string. For example, a percent character in a
DATETIME or INTERVAL ASCII string must have a matching "%%" sequence in the
format string. See also the discussion of the DBTIME environment variable in
the IBM Informix Guide to SQL: Reference.

If you are using the ROUND() or TRUNC() build-in functions on DATE or DATETIME
data types, note that the list of supported values for the second parameter
is "YEAR", "MONTH", "DAY", "DD", "HH" or "MI".  Please refer to the discussion
on "Algebraic Functions" in the IBM Informix Guide to SQL: Syntax for the
details.


-1278	Invalid escape sequence.

Check the pattern-matching string that the LIKE or MATCHES clause of
the statement specifies. In an ANSI database, the only valid characters
that can be escaped are: %, _, and the escape character for the LIKE
clause, and *, ?, [, ], and the escape character for the MATCHES
clause.


-1279	Value exceeds string column length.

This message applies only to ANSI databases. You attempted to insert into a
CHAR, NCHAR, VARCHAR, NVARCHAR or LVARCHAR column using a string host
variable, but the string is too long.


-1280	Library API incompatibility found in libgen.so.

The libgen.so shared library compiled with your client application is
incompatible with the version in the $INFORMIXDIR/lib directory.
Recompile your application with INFORMIXDIR set to the path of the new
libgen.so shared library.


-1281	Library API incompatibility found in libos.so.

The libos.so shared library compiled with your client application is
incompatible with the version in the $INFORMIXDIR/lib directory.
Recompile your application with INFORMIXDIR set to the path of the new
libos.so shared library.


-1282	Library API incompatibility found in libsql.so.

The libsql.so shared library compiled with your client application is
incompatible with the version in the $INFORMIXDIR/lib directory.
Recompile your application with INFORMIXDIR set to the path of the new
libsql.so shared library.


-1283	Library API incompatibility found in libgls.so.

The libgls.so shared library compiled with your client application is
incompatible with the version in the $INFORMIXDIR/lib directory.
Recompile your application with INFORMIXDIR set to the path of the new
libgls.so shared library.


-1284	Value will not fit in a BIGINT or an INT8.

The BIGINT or BIGSERIAL or INT8 or SERIAL8 data type can accept numbers 
with absolute values from 0 through 9,223,372,036,854,775,807 (plus or 
minus (2 to the 63rd power) - 1).

To store numbers that are outside this range, redefine the column or
variable to use the DECIMAL data type. For more information on valid
ranges of data types, see the IBM Informix Guide to SQL: Reference.


-1285	Internal error: data type unknown.

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


-1301	This value is not among the valid possibilities.

A list or range of acceptable values has been established for this
column (via an INCLUDE attribute in the form-specification file). You
must enter a value within the acceptable range.


-1302	The two entries were not the same. Try again.

To guard against typographical errors, this field has been designated
VERIFY (in the form-specification file). You must enter the value in
this field twice, identically. Carefully reenter the data.
Alternatively, you can cancel the form entry with the Interrupt key
(usually CTRL-C, but see the operating instructions that the program
author supplied).


-1303	You cannot use this editing feature because a picture exists.

This field is defined (in the form-specification file) with a PICTURE
attribute to specify its format. You cannot use certain editing keys
(for example, CTRL-A, CTRL-D, and CTRL-X) while you are editing such a
field. Use only printable characters and backspace to enter the value.


-1304	Error in field.

You entered a value in this field that cannot be stored in the program
variable that is meant to receive it. For example, possibly you entered
a decimal number when the application provided only an integer
variable, or you entered a character string that is longer than the
application expected. Note all the circumstances and then discuss the
problem with the person who wrote the application program.


-1305	This field requires an entered value.

The cursor is in a form field that has been designated REQUIRED. You
must enter some value before the cursor can move to another field. To
enter a null value, type any printable character and then backspace.
Alternatively, you can cancel the form entry with the Interrupt key
(usually CTRL-C, but see the operating instructions that the program
author supplied).


-1306	Type again for verification.

The cursor is in a form field that has been designated VERIFY. You must
enter the value twice, identically, before the cursor can move to
another field. This procedure helps to ensure that no typographical
errors occur during data entry. Alternatively, you can cancel the form
entry with the Interrupt key (usually CTRL-C, but see the operating
instructions that the program author supplied).


-1307	Cannot insert another row - the input array is full.

You are entering data into an array of records that is represented in
the program by an array of program variables. That array is now full;
no place is available to store another record. Press the ACCEPT key
(usually ESCAPE, but see the operating instructions that the program
author supplied) to process the records that you have entered.


-1308	Cannot delete row - it has no data.

You pressed the Delete Row function key (usually F2, but see the
operating instructions that the program author supplied) in an empty
row. Nothing was deleted.


-1309	There are no more rows in the direction you are going.

You are attempting to scroll an array of records farther than it can
go, either scrolling up at the top or scrolling down at the bottom of
the array. Further attempts will have the same result.


-1310	Exiting the current function without executing a RETURN statement.

The current function does not return void but is about to exit without
executing a RETURN statement.


-1312	FORMS statement error number number.

A problem exists with a screen form. Look up error number in this
document. Consider it in relation to the current statement.


-1313	SQL statement error number number.

The current statement calls on the database server that detected an
error and returned an error code number. Look up number in this
document. Also look for other error messages.


-1314	Program stopped at statement, line number line.

At the indicated point in the program, an error was detected. Look for
other error messages that give details of the error. Use the numbers in
this message to locate the error in the program source file.


-1315	4GL run-time error number number.

The program stopped because an error was detected. Look up error code
number in this document. Also look for other error messages for more
details.


-1316	ISAM error number number.

The current statement called on the database server, which detected an
error (probably reported in a display of error -1313). This message
contains additional detail on the cause of the error. Look up number in
this document.


-1317	A numeric conversion error has occurred due to incompatibility
between a calling program and its function parameters or between a variable
and its assigned expression.

4GL converts between one data type and another automatically whenever
it can do so without losing information. In the current statement, it
could not do so. Look first for function calls, and inspect the values
that are passed as parameters. Check that the values that are passed
agree in type with the parameters as they are defined in the function
bodies. (An example of such an error would be calling a function
fun("X") when within the function its parameter was defined as an
integer.) If the statement is a LET statement, check that the value
that is computed on the right can be accommodated in the variable that
is named on the left.


-1318	A parameter count mismatch has occurred between the calling function
and the called function.

Either too many or too few parameters were given in the call to the
function. The call is probably in a different source module from the
called functions. Inspect the definition of the function, and check
all places where it is called to ensure that they use the number of
parameters that it declares.


-1319	The 4GL program has run out of runtime data space memory.

You must reduce the data space that the program requires. Review the
size of large character variables and the dimensions of arrays. You
might need to split the program into separate programs that load
separately, if that is possible.


-1320	A function has not returned the correct number of values expected
by the calling function.

If the function was invoked as part of an expression, then it returned
more than one value. If a CALL invoked it, the number of expressions
that follow the RETURN statement (in the function) was different from
the number of variables that are listed in the RETURNING clause (in the
CALL statement).

Check that the correct function was called. Review the logic of the
function, especially its RETURN statements, to ensure that it always
returns the expected number of values.


-1321	A validation error has occurred as a result of the VALIDATE command.

The VALIDATE statement tests the current value of variables against
rules that are stored in the syscolval table. It has detected a
mismatch. Ordinarily, the program would use the WHENEVER statement to
trap this error and display or correct the erroneous values. Inspect
the VALIDATE statement to see which variables were being tested and
find out why they were wrong.


-1322	A report output file cannot be opened.

The file that the REPORT TO statement specifies cannot be opened. Check
that your account has permission to write such a file, that the disk is
not full, and that you have not exceeded some limit on the number of
open files.


-1323	A report output pipe cannot be opened.

The pipe that the REPORT TO PIPE statement specifies could not be
started. Check that all programs that are named in it exist and are
accessible from your execution path. Also look for operating-system
messages that might give more specific errors.


-1324	A report output file cannot be written to.

The file that the REPORT TO statement specifies was opened, but an
error occurred while writing to it. Possibly the disk is full. Look for
operating- system messages that might give more information.


-1326	An array variable has been referenced outside of its specified
dimensions.

The subscript expression for an array has produced a number that is
either less than one or greater than the number of elements in the
array. Review the program logic that leads up to this statement to
determine how the error was made.


-1327	An insert statement could not be prepared for inserting rows into
a temporary table used for a report.

Within the report function, 4GL generated an SQL statement to save rows
into a temporary table. The dynamic preparation of the statement (see
the reference material on the PREPARE statement) produced an error.
Probably the database tables are not defined now, at execution time, as
they were when the program was compiled. Either the database has been
changed, or the program has selected a different database than the one
that was current during compilation. Possibly the database
administrator has revoked SELECT privilege from you for one or more of
the tables that the report uses. Look for other error messages that
might give more details.


-1328	A temporary table needed for a report could not be created in
the selected database. The user must have permission to create tables in
the selected database.

Within the report definition, 4GL generated an SQL statement to save
rows into a temporary table, but the temporary table could not be
created. Probably no disk space is left in the database, or you
already have a table in your current database with the same name as the
temporary table that the report definition is attempting to create as a
sorting table.

Another possible cause is that the report name is too long. It should be 16
characters or fewer if your database server allows only table names
up to 18 characters long, to leave room for the "t_" prefix.

The sorting table is named "t_reportname". For example, a report named
"order_rpt" would name its sorting table "t_order_rpt". Users should
avoid beginning table names with "t_".

Another possible cause of this error with some database servers is that
you have exceeded an operating-system limit on open files.

Look for other error messages that might give more details.


-1329	A database index could not be created for a temporary database
table needed for a report.

Within the report definition, 4GL generated SQL statements to save rows
into a temporary table. However, an index could not be created on the
temporary table. Probably an index with the same name already exists in
the database. (The sorting index is named "i_reportname"; for example,
"i_order_rpt".) Possibly no disk space is available in the file system
or dbspace. Another possibility with some database servers is that you
have exceeded an operating-system limit on open files. Look for other
error messages that might give more details.


-1330	A row could not be inserted into a temporary report table.

Within the report definition, 4GL generated SQL statements that would
save rows into a temporary table. However, an error occurred while rows
were being inserted. Probably no disk space is left in the database.
Look for other error messages that might give more details.


-1331	A row could not be fetched from a temporary report table.

Within the report definition, 4GL generated SQL statements to select
rows from a temporary table. The table was built successfully but now
an error occurred while rows were being retrieved from it. Almost the
only possible cause is a hardware failure or an error in the database
server. Check for operating-system messages that might give more
details.


-1332	A character variable has referenced subscripts that are out of range.

In the current statement, a variable that is used in taking a substring
of a character value contains a number less than one or a number
greater than the size of the variable, or the first substring
expression is larger than the second. Review the program logic that
leads up to this statement to find the cause of the error.


-1333	Strings of length > 512 cannot be returned from function calls.

The current RETURN statement contains an expression that evaluates to a
character string longer than 512 characters. This situation is not
supported. Review the logic of the function, and modify it so that it
does not return such a long character value. You can assign a longer
string to a global variable.


-1334	The 4GL program cannot allocate any more space for temporary
string storage.

You should not see this message from a program that is compiled at a
version later than Version 4.1; however, programs that are compiled by
4GL Version 4.1 and earlier must deal with this issue.

Temporary string storage is used while evaluating a character
expression. It is allocated by a simple algorithm from a fixed-size
buffer. Space in this buffer is not reclaimed until the last pending
character expression is finished. Because most expressions complete
immediately, the string buffer is normally emptied as fast as it is
used.

However, when expressions involve function calls, expression evaluation
is suspended during the function call. The buffer is not cleared until
the function returns. For example, temporary space is used for the
literal "###" and the result of the USING operator in the following
statement:

LET charvar = numvar USING '###', myfunc()

These pending values remain in the string buffer for the duration of
the call to myfunc(). If the aggregate total of all temporary character
values that are used during the evaluation of myfunc() and its
sub-functions exceeds the buffer size, this error occurs.

You can usually prevent the error by isolating function calls in
separate statements, as in the following example:

LET charvar = myfunc()
LET charvar = numvar USING '###', charvar clipped

The string buffer is free during the call to myfunc() in the first
statement and free again as soon as the second statement completes.

The short form of a WHEN clause in a CASE statement also creates a
suspended character expression. In the following example, temporary
string storage is tied up throughout the calls to func_A() and
func_B().

CASE charvar
        WHEN 'A' CALL func_A()
        WHEN 'B' CALL func_B()
...

The longer form of the WHEN clause does not do this because evaluation
of the character expression is completed before the function call
begins.

CASE
        WHEN charvar = 'A' CALL func_A()
        WHEN charvar = 'B' CALL func_B()

Finally, a known error in some versions of IBM Informix-4GL Version 4.1
causes a spurious error of this type when the WORDWRAP clause appears
in a PRINT statement. If the error recurs, note all
circumstances and contact IBM Technical Support.


-1335	A report is accepting output or being finished before it has been
started.

The program executed an OUTPUT TO REPORT or FINISH REPORT statement
before it executed a START REPORT. Review the program logic that leads
up to this statement to find the cause of the error.


-1336	Module name in the pcode file contains pcode version compile-version.
This program can run pcode version runner-version. Run the pcode compiler
with the -V option to check the pcode version that it produces. Then
recompile all modules of your program, and run it again.

The program runner or a customized runner must be the same software
version as the program compiler. To check that the programs are at the
same level, execute each with the -V option. That option displays their
version numbers. When you determine that you are using compatible
software, recompile your program.


-1337	The variable name has been redefined with a different type or length.

The variable that is shown is defined in the GLOBALS section of two or
more modules, but it is defined differently in some modules than in
others. Possibly modules were compiled at different times, with some
change to the common GLOBALS file between. Possibly the variable is
declared as a module variable in some module that does not include the
GLOBALS file.


-1338	The function name has not been defined in any module in the program.

The named function is called from at least one module of the program,
but it is defined in none. If you are using the Programmer's
Environment, possibly one module was not defined as part of a
multimodule program. If you are working at the command line, possibly
one or more compiled .4go modules were omitted when the program files
were concatenated to form the .4gi file.


-1339	Global variable name cannot be found in the descriptor table.

This error indicates an internal problem in the runner. If the error
recurs, note all circumstances and contact IBM Technical Support.


-1340	The error log has not been started.

The program called the errorlog() function without first calling the
startlog() function. Review the program logic to find out the cause of
this error.


-1343	No help file specified.

This INPUT, PROMPT, or MENU statement contains a HELP help-number
clause; however, no message file has been established. The OPTIONS HELP
FILE statement establishes the message file, but the statement has not
yet been executed. Review the program logic, and modify it to execute
an OPTIONS statement with a HELP FILE clause before it is needed.


-1344	IBM Informix Run Time Facility.

No current IBM Informix product displays this message.


-1345	Undefined opcode.

The p-code file for the program (whose file suffix is .4go) has become
corrupted. Recompile the whole program, and run it again. If the same
error occurs, check that you are running the identical version of both
the p-code compiler and the p-code runner. If the error recurs,
note all circumstances and contact IBM Technical Support.


-1346	Number is too large for a DECIMAL data type.

The DECIMAL data type accommodates numbers from 10 to the -130th power
through 10 to the 124th power in absolute value. The precision (number
of significant digits) varies from 1 to 32; however, the source of this
error is not the length of the number but its magnitude.


-1347	Number is too small for a DECIMAL data type.

The DECIMAL data type accommodates numbers from 10 to the -130th power
through 10 to the 124th power in absolute value. The precision (number
of significant digits) varies from 1 to 32; however, the source of this
error is not the length of the number but its magnitude.


-1348	An attempt was made to divide by zero.

Zero cannot be a divisor. In some cases, this error arises because the
divisor is a character value that does not convert properly to numeric.


-1349	Character to numeric conversion error.

A character value is being converted to numeric form for storage in a
numeric column or variable. However, the character string cannot be
interpreted as a number. It contains some characters other than white
space, digits, a sign, a decimal, or the letter e, or else the parts
are in the wrong order so that the number cannot be deciphered.


-1350	It is not possible to convert between the specified types.

The system will attempt any data conversion that makes sense. However,
some conversions, such as INTERVAL to DATE, or DATETIME to MONEY, are
not supported. Possibly you referenced the wrong variable or column.
Check that you have specified the data types that you intended and that
you formatted literal representations of data values correctly.


-1351	The function (or report) name has already been defined. Function
and report cannot both have the same name.

Each function (or report, which is similar to a function) must have a
unique name within the program. You must change either this use or the
prior one.


-1352	name may not be used as both a function (or report) name and
a variable name.

The name that is shown has been defined at least two ways. Names at the
global or module level (function names, report names, and names of
global or module variables) must be unique. Locate all the definitions
of this name, and change all but one of them.


-1353	Use '!' to edit TEXT and BYTE fields.

The built-in form editor cannot deal with TEXT or BYTE columns.
However, you can designate an external program that can display or edit
a value from a TEXT or BYTE column. To call the external program for
any field, put the cursor in that field, and key the exclamation mark
(!) character. If an external program has been defined (with the
PROGRAM attribute in the form specification), it will be started. In a
TEXT field, if no external program is specified in the form, the
program that the DBEDIT environment variable names will be started.


-1355	Cannot build temporary file.

A TEXT or BYTE variable has been located in a temporary file using the
LOCATE statement. The current statement assigns a value into that
variable, so 4GL attempted to create the temporary file, but an error
occurred. Possibly no disk space is available, or your account does not
have permission to create a temporary file. 4GL creates a temporary
file in the directory that the DBTEMP environment variable specifies.
Look for operating-system error messages that might give more
information. Check the value of DBTEMP. Since Version 5.01, the
IBM Informix SE database server uses the DBTEMP environment variable, but
IBM Informix  Dynamic Server and IBM Informix OnLine Dynamic Server do not.


-1356	Write error on temporary file filename.

The operating system signalled an error during output to a temporary
file in which a TEXT or BYTE variable was being saved. Possibly the
disk is full, or a hardware failure occurred. For more information,
look for operating-system messages.


-1357	Read error on temporary file filename.

The operating system signalled an error during input from a temporary
file in which a TEXT or BYTE variable was saved. Possibly a hardware
failure occurred. For more information, look for operating-system
messages.


-1358	Write error on TEXT or BYTE file filename.

The operating system signalled an error during output to a temporary
file in which a TEXT or BYTE variable was being saved. Possibly the
disk is full, or a hardware failure occurred. For more information,
look for operating-system messages.


-1359	Read error on TEXT or BYTE file filename.

The operating system signalled an error during output to a temporary
file in which a TEXT or BYTE variable was being saved. Possibly the
disk is full, or a hardware failure occurred. For more information,
look for operating-system messages.


-1360	No PROGRAM= clause for this field.

You pressed the exclamation-mark key (!) while the cursor was in a TEXT
or BYTE field. However, no external program has been designated for
this field (with the PROGRAM attribute in the form-specification file).
If this field is a TEXT field, you can set the DBEDIT environment
variable before you start the program to specify a text editor.


-1361	Illegal TEXT or BYTE file name. Null names are not permitted.

The BYTE or TEXT variable has been located in a file using the 4GL
statement LOCATE. However, the filename that is given for the variable
is a null string. Because the file does not exist, 4GL cannot do
anything with it.


-1362	4GL runtime stack violation.

The program attempted to access outside the boundaries of the stack. If
the error recurs, note all circumstances and contact
IBM Technical Support.


-1363	A fatal internal error has occurred - Application Terminating.

The program attempted to access outside the memory that belongs to the
application. If the error recurs, note all circumstances and
contact IBM Technical Support.


-1364	Error recovery setup failed - Application Terminating.

The mechanism that allows the application to catch and handle internal
errors could not complete its actions. Return to DOS, and restart
Windows.


-1365	Application appname not found.

The Application Launcher, fglaunch, did not find the requested
application.


-1366	Unable to load application appname.

The Application Launcher, fglaunch, could not load the requested
application. The DLL does not have the required NewEra entry points, so
it must not be a NewEra DLL. Check to see if the NewEra DLL has the
same name as an existing system DLL.


-1367	DLL dllname is not a resource DLL - Application Terminating.

The program options for the Application Launcher, fglaunch, specified
that the DLL dllname included resources, but no resources were found,


-1371	The field fieldname does not exist in the current form.

The indicated field name has been given to the NEXT FIELD statement or
to the pf_nxfield() function, but it is not defined in the current
form. A common error is to confuse the tag name, which is used in the
screen layout and to the left of the equal sign in the ATTRIBUTES
section, with the field name, which is the column name used to the
right of the equal sign in the ATTRIBUTES section. Use the latter when
you refer to fields.


-1372	The number entered is too large to fit in the decimal or money variable.

Probably no current IBM Informix product returns this message. If it
appears, refer to the explanation of error -1226. If the error recurs,
note all circumstances and contact IBM Technical Support.


-1373	The field fieldname is not in the list of fields in the
CONSTRUCT/INPUT statement.

The built-in function get_fldbuf() or field_touched() has been called
with the field name shown. However, input from that field was not
requested in this CONSTRUCT or INPUT statement. As a result, the
function cannot return any useful value. Review all uses of these
functions, and compare them to the list of fields at the beginning of
the statement.


-1374	SQL character truncation or transaction warning.

The program set WHENEVER WARNING STOP, and a warning condition arose.
If the statement involved is a DATABASE statement, the condition is
that the database that was just opened uses a transaction log. On any
other statement, the condition is that a character value from the
database had to be truncated to fit in its destination.


-1375	SQL NULL value in aggregate or mode ANSI database warning.

The program set WHENEVER WARNING STOP, and a warning condition arose.
If the statement that is involved is a DATABASE statement, the
condition is that the database that was just opened is ANSI compliant.
On any other statement, the condition is that a null value has been
used in the computation of an aggregate value.


-1376	SQL, database server, or program variable mismatch warning.

The program set WHENEVER WARNING STOP, and a warning condition arose.
If the statement that is involved is a DATABASE or CREATE DATABASE
statement, the condition is that the database server opened the
database. On any other statement, the condition is that a SELECT
statement returned more values than there were program variables to
contain them.


-1377	SQL float-to-decimal conversion warning.

The program set WHENEVER WARNING STOP, and a warning condition arose.
The condition is that in the database that was just opened, the
database server will use the DECIMAL data type for FLOAT values.


-1378	SQL non-ANSI extension warning.

A database operation was performed that is not part of ANSI SQL,
although the current database is ANSI compliant. This message is
informational only.


-1379	Report functions may not be called directly. Use the OUTPUT
TO REPORT statement.

A report function has been entered as a result of a CALL statement.
Report functions can only be executed using the START REPORT, FINISH
REPORT, and OUTPUT TO REPORT statements. Review the program. Look for
places where the report function name is called like a normal function,
and change them. If you want to use some of the code in the report
function as a subroutine, place it in a separate subroutine, and call
it from the report function and other places.


-1380	Only character expressions may be CLIPPED.

You cannot CLIP a noncharacter expression.


-1381	Cannot execute another runner when debugging.

An instance of the 4GL runner is currently executing. While you are
debugging, you cannot launch additional instances of the runner through
a RUN command, the RUN accelerator button, or directly from Windows. To
launch a new instance of the runner, first quit the currently running
4GL application.


-1390	The class "class" has not been defined in any module in the program.

The named class has been declared, and it has been used, but it has
never been defined. It must be defined at the definition of the first
member function of that class.


-1391	Invalid class specified in AS clause.

The class specified in an AS clause of a NEW or COPY operation must be
derived from the stated class.


-1392	Cannot use a NULL object.

In the p-code runner, an attempt was made to dereference a NULL
object. Perhaps the program has defined an object, then tried to
invoke a member function of the object before creating it through
!copy() or !derive().


-1393	The class class has already been defined.

The program attempted to define a class for a second time.


-1394	Invalid ixRow object argument for built-in function.

An ixRow argument is expected as the first argument for the built-in
functions UNPACKROW() and PACKROWINTO().


-1396	A report PRINT FILE source file cannot be opened for reading.

The file that is named in a PRINT FILE statement cannot be opened.
Review the file name. If it is not in the current directory, you must
specify a full path. If the file is specified correctly, check that it
exists and that your account has file permissions to read it. Look for
operating-system error messages that might give more details.


-1778	The security subsystem could not be initialized for this command.

Ensure that this account has sufficient privileges.


-1779	This command can be executed only by members of the informix-admin
group.

Log in with a user account that belongs to the informix-admin group, or
ask the Windows administrator to add your user account to the
informix-admin group. Then try the procedure again.


-1780	The database server can be started only by user informix.

You must be a member of the informix-admin group to start the database
server. Log in with a user account that belongs to the informix-admin
group, or ask the Windows administrator to add your user account to
the informix-admin group.


-1781	The database server could not retrieve the account information for
this user account.

The account information is missing or invalid. Run User Manager to
check the validity of this account.


-1782	The database server cannot validate this user.

The user does not have a valid account or password on the computer
where the database server is running. You must create a user account
and password for this user.


-1783	UnSetup will carry out these actions:

    *   Remove the groupname group and the username user accounts

    *   Remove the servicename service

    *   Remove the branch Software\\branchname\\keyname\\ from the
	registry

Do you also want to remove all IBM Informix product files and directories?
(Y,N,Q)


-1784	The database server could not initialize the security subsystem.

The database server runs under the user informix account, which must
have the following privileges:

    *   Log on as a service

    *   Create a token object

    *   Act as part of the operating system

    *   Belong to the informix-admin group

To verify that user informix has these rights, access the User Manager,
and use the Policies/User Rights dialog box.


-1785	pathname\buildsmi.ext

This message refers to the output of buildsmi.bat. For Windows, look
into the file %INFORMIXDIR%\etc\buildsmi.out if "Error building
sysmaster" appears in the online.log file.


-1786	The command line option specified in the Control Panel/Services/Startup
dialog was -i.

The parameter that was specified in the Control Panel/Services/Startup
dialog box was -i, which causes the database server to initialize the
root dbspace, destroying any information that it currently contains.
When the database server runs as a service under Windows, it does
not prompt you to confirm the parameters that you have specified. If
you are sure that you want to initialize the root dbspace, specify the
parameters as -iy instead.


-1787	The database server detected a mismatch in the configuration file.
Mirror chunk pathname = pathname, Offset = offset K, Size = size K.

Check the actual file size of the chunk against the size that is
specified for the mirror chunk in the ONCONFIG file.


-1788	The audit configuration-file pathname is too long. Its pathname
should contain at most maxnum characters.

The maximum number of characters, or maxnum, is 128.


-1789	The database server could not get account information for user username.

Check to see that the user account exists and is valid.


-1790	The database server could not be started.

Ensure that the account used to start the database server
is a member of the informix-admin group.


-1791	The database server encountered a fatal error while initializing
shared memory.

Look for the cause of this error in %INFORMIXDIR%\online.log.


-1792	The database server cannot access %INFORMIXDIR%\dbssodir or
%INFORMIXDIR%\aaodir.

Check access to the path segments that lead to %INFORMIXDIR%\dbssodir
and %INFORMIXDIR%\aaodir. If %INFORMIXDIR% is on a network drive, make
sure that the oninit process privileges are not altered. In addition,
make sure that the AAO and DBSSO group names are valid in the
registry.


-1793	The database server could not open the chunk chunkname. The system
error value returned was errno.

Ensure that this chunk exists and has the correct permissions for
access.


-1794	The primary chunk chunkname containing the root dbspace is
invalid. It needs to be re-initialized.

The chunk that contains the root dbspace is corrupt or out of date. If
you have backed up your database server, you can perform a full-system
restore to restore the root dbspace. If you have not backed up your
database server, you will need to reinitialize the root dbspace by
using the -iy parameters when you start the database server.

Warning: Starting the database server with the parameters -iy reinitializes
the root dbspace and effectively destroys all existing data. You will
no longer be able to access existing databases unless you subsequently
perform a full system restore. Do not reinitialize the root dbspace
unless you are certain that you want to do so.


-1795	The number of chunks specified in shared memory, num_chunks, is too
large.

The maximum allowable number with the current configuration is
num_chunks. Specify larger chunk sizes, and reduce the number of
chunks.


-1796	The database server detected a mismatch in the registry subkey data for
MIRRORPATH. The data retrieved for MIRRORPATH was pathname.

The root dbspace has not been mirrored. To add mirroring, use onspaces
or onmonitor.


-1797	The root dbspace is not large enough for the specified configuration.
The actual size is sizenum, and the required size is sizenum.

The root dbspace will not fit on the specified drive. Free the amount
of space that is needed on the specified drive, or change the ROOTPATH
configuration parameter to specify a different drive with more space
available. Then restart the database server with the -iy parameters to
initialize the root dbspace.

Warning: Starting the database server with the parameters -iy
reinitializes the root dbspace and effectively destroys any existing
data. You will no longer be able to access existing databases unless
you subsequently perform a full-system restore. Do not reinitialize the
root dbspace unless you are certain that you want to do so.


-1800	Invalid transaction state.

You must commit or rollback the current transaction before you
disconnect.


-1801	Multiple-server transaction not supported.

You are attempting to span multiple connections within a single
transaction. You can switch to a different connection while a
transaction is active if you use the WITH CONCURRENT TRANSACTION clause
when you establish the connection.

This error message can occur when you try to switch connections as
follows:

    *   If the current connection is to a Version 6.0 or later database
	server, you did not specify the WITH CONCURRENT TRANSACTION
	clause when you established the connection, and there is an
	active transaction in the current connection.

    *   If the current connection is to a Version 5.0 database server,
	you did not specify the WITH CONCURRENT TRANSACTION clause when
	you established the connection, and a database is currently
	open on this connection.


-1802	Connection name in use.

A connection with the same connection name has already been made. Each
connection must have a unique connection name. Rename the connection,
and try again.


-1803	Connection does not exist.

The connection name in a SET CONNECTION or DISCONNECT statement does
not refer to an established connection. Check your program to see that
the connection was made and, if so, that it was not disconnected. Also,
check the spelling of the connection name in the statement that is
failing.


-1804	Invalid database environment.

The database server cannot connect to the database environment that you
specified. The server cannot locate either the database server or the
database that you specified. Check the syntax of your statement. If you
are specifying a database server, you must use the @ sign. You cannot
use //.


-1805	Invalid connection name.

The connection name is invalid. It must conform to the same rules as any
other identifier; that is, it cannot exceed the maximum length, cannot be an
ANSI reserved word, must begin with a letter or underscore, and can contain
only letters, digits, underscores, and, in IBM Informix Dynamic Server 9.2 or later,
dollar-sign characters.

The maximum length for identifiers depends on the database server. In
IBM Informix Dynamic Server 9.2 or later, the maximum length is 128 characters. In
other Informix database servers, the maximum length is 18 characters.


Check that the connection name is a valid identifier and that you are using
the connection name and not some other value. If a connection name was used
with the original CONNECT TO statement, you must use the connection name in
subsequent connection statements.


-1807	No connection to disconnect.

You are attempting to disconnect a connection that does not exist at
this time. Check your program to see that you have not already
performed a DISCONNECT statement for this connection.


-1808	Reconnect to server_name server to perform the database operation.

If you connect to a database server using the CONNECT statement, you
cannot implicitly reconnect to a server through one of the DATABASE
statements (DATABASE, START DATABASE, and so on). You must switch to it
with the SET CONNECTION statement.


-1809	Server rejected the connection.

Check that you have permission to connect to the server that you
specified. If you specified both a database server and a database,
check to see that you have permission to access the database.

This error message can occur when you are trying to use a Pluggable Authentication Module (PAM) feature of IDS when one or both of the following conditions exists:

    *   The PAM configuration file is not set correctly. Refer to the OS vendor
	documentation for more information.


    *   The client or server computer is not configured to handle PAM messages 
	that are generated from a connection request. 

-1810	Disconnect error.

A DISCONNECT ALL statement has not disconnected a connection. The
database server for one of the connections might have terminated. If
not, the cause is internal to the software. If the error recurs,
note all circumstances and contact IBM Technical Support.


-1811	Implicit connection not allowed after an explicit connection.

Once you have used the CONNECT TO statement to establish an explicit
connection to a database server, you cannot use one of the DATABASE
statements to connect implicitly to another database server. After an
explicit connection, you must use the CONNECT TO statement to connect
to other database servers.


-1812	Internal error.

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


-1813	Only the current connection can be made dormant.

You used the SET CONNECTION DORMANT statement incorrectly. You
attempted to put a connection that was already dormant into the dormant
state. Or you attempted to put a connection that is in use by another
thread in a dormant state.


-1814	Need to allocate collection or row variable before using it.

The application needs to call ALLOCATE COLLECTION or ALLOCATE ROW
before it uses a host variable of type collection or of type row in an
SQL statement.


-1815	No type information for collection or row is available.

The application needs to declare a typed collection or row host
variable before using it in an SQL statement. The application can fetch
the complex type data from a column of type set, type list, type
multiset or type row into their untyped collection or row host variable
before it uses the data in the SQL statements.


-1816	No such column exists in the collection or row.

The field name specified by the application does not exist in the
description of the collection or row host variable. Check the
description of the field names within the declaration and make sure the
field name specified matches the one in the declaration.


-1817	No collection or row variable provided.

A collection or row host variable was expected but none was provided, or the
host variable used in the derived table syntax is not a collection or row
host variable.

Check the declaration of this host variable in the application and change it
to a collection or row host variable declaration.


-1818	Input variable type does not match collection or row definition.

Certain data types cannot be cast on the client. The following
situations return this error:

    *   Trying to cast any complex type into any other complex type
	(that is, casting a set into list)

    *   Trying to cast a built-in type (for example, INT) into a
        complex type

    *   Trying to cast a complex type into a user-defined data type

    *   Trying to cast a built-in type into a user-defined data type

Check the SQL statement and make sure the types are compatible.


-1820	The host variable type was changed between fetches or puts.

If the host variable is used for user-defined-data-type columns or if
the host variable itself is a user-defined-data-type host variable, the
host variable type and length cannot be changed between fetches or puts.


-1821	Host variable is not large enough to hold the data returned from
the server.

The memory allocated by the application to fetch the user-defined data
type is not sufficient. Change the application so that it allocates
more memory before it fetches this user-defined data type.


-1822	Invalid argument.

One of the arguments passed to the function has an illegal value or is
NULL. Check the documentation for the valid values that can be passed
to this function.


-1823	Need more memory to store data.

This error is returned from ifx_var_setlen() and ifx_var_setdata() when
the application tries to set the length or the data to a size that is
larger than the amount of memory allocated in ifx_var_alloc(). Find the
current allocated length by calling ifx_var_getlen(), resize it if
necessary by calling ifx_var_alloc(), and execute ifx_var_setlen() or
ifx_var_setdata() again.


-1824	Message cannot be found.

The server user-defined routine has been executed, but the message text
cannot be found. Check the user-defined routine to make sure all
SQLSTATES returned by the server have a corresponding message text
associated with them.


-1825	INSERT and DELETE cannot be performed on ROW host variables.

Only UPDATE and SELECT statements can be used with row host variables.
Check the derived table syntax that is using the row host variable and
use UPDATE or SELECT instead.


-1826	DESCRIBE information about this statement is not available at this time.

When the DEFERRED_PREPARE option is turned on, the description of the
statement is not known until the cursor is opened. Therefore, a DESCRIBE
can only be executed after an OPEN. If DEFERRED_PREPARE and OPTOFC are
both turned on, then the DESCRIBE can happen only after the FETCH, because
the OPEN is not executed until the FETCH is executed.


-1828	Cannot use scroll or hold cursor with client collections.

A cursor declaration for a client collection cannot be for a scroll or hold
cursor, as in the following declarations:

    /** scroll cursor case **/
    EXEC SQL DECLARE cur1 SCROLL CURSOR
             FOR SELECT * FROM table(:collection_host_variable);

    /** hold cursor case **/
    EXEC SQL DECLARE cur2 CURSOR WITH HOLD
             FOR SELECT * FROM table(:collection_host_variable);

Declare the cursor as follows instead:

    EXEC SQL DECLARE cur3 CURSOR
             FOR SELECT * FROM table(:collection_host_variable);


-1829	Cannot open file citoxmsg.pam.

The file citoxmsg.pam is missing from the directory $INFORMIXDIR/msg.

If this error occurs, note all circumstances and contact IBM Technical Support.


-1831	Combination of FetArrSize, Deferred-PREPARE, and OPTOFC is not supported.


-1832	Environment block is greater than 32K.

At the start of a session, the client groups all the environment variables 
that the server will use and sends the environment variables to the server as 
a single block. The maximum allowed size of this block is 32K. The current 
block of environment variables exceeds 32K. Unset one or more environment 
variables or reduce the size of some of the environment variables and then
retry connection to IDS.


-1833	Cannot open file itoxmsg.pam.

The file itoxmsg.pam is missing from the directory $INFORMIXDIR/msg.

If this error occurs, note all circumstances and contact IBM Technical Support.


-2013	The output form file filename cannot be opened.

Possibly your account does not have permission to write in the
specified directory; possibly the disk is full. In some systems, the
problem might be related to a limit on the number of open files. Look
for operating-system messages for more information.


-2014	There were an incorrect number of arguments on the operating
system command line. At least one (1) argument is expected.

When you run the Form Compiler from the command line, you must specify
either the -d option or the name of a form.


-2015	An open comment symbol, {, was found inside an already open
comment on line line, character column. This could be due to a failure
to close the previously opened comment, which was begun on line line,
character column.

Nested comments are not supported. Review the form specification, and
inspect all comments. Check that each open brace has a matching close
brace.


-2016	A comment has been opened, but not closed. The last comment begun
was opened on line line, character column.

Insert a close-comment symbol where appropriate in the report
specification.


-2017	The character data value does not convert correctly to the field type.

You have entered a character value (a quoted string) into a field that
has a different data type (for example INTEGER). However, the
characters that you entered cannot be converted to the type of the
field. Consult the operating instructions for this application, then
reenter the data.


-2018	A grammatical error has been found on line line, character column.
The construct is not understandable in its context.

This message points to the exact spot in a source file where the
compiler could no longer understand the input. The actual mistake might
be earlier in the file, perhaps several lines earlier, but it is not
later. Other, more specific error messages should also appear.


-2019	This integer exceeds the maximum size allowed.

The INTEGER data type can accept numbers with absolute values from 0 to
2,147,483,647 (plus or minus (2 to the 31st power) - 1). If you have to
store numbers outside this range, redefine the column or variable to
use DECIMAL data type. (The value -2,147,483,648 is a 32-bit value but
is not acceptable; it is used in 4GL to indicate a null value.)


-2020	The table table-name could not be opened. The operating system was
asked to open it for writing.

You are using a database server that manages tables as ordinary disk
files. The current database is managed as a directory, and tables are
files within it. Look for operating-system error messages that might
give more information. Locate the database directory (either in the
current directory or on a path that is named in the DBPATH environment
variable). Check that disk space is available. In UNIX, your personal
account does not have to have write access to the directory and table
files; however, they must be writable to the group-id informix.


-2021	An illegal color has been specified. Colors 0 through 7 are white,
yellow, magenta, red, cyan, green, blue, and black.

Both in a COLOR attribute in a form specification and in a display
attribute in a 4GL program, you must specify colors by name and spell
them as this message shows. Check the spelling and punctuation of the
statement.


-2022	This identifier exceeds the maximum length for identifiers,
which is <length>.

Names of fields and other identifiers cannot exceed the maximum length. In
IBM Informix Dynamic Server 9.2 or later, the maximum length for identifiers is 128
characters. In other Informix database servers, the maximum length for
identifiers is 18 characters.

Revise the form specification and recompile it.


-2023	This quoted string exceeds the maximum length for quoted strings,
which is length.

You cannot use longer quoted strings. In a form, you cannot join
shorter strings to make longer ones, so this maximum is an absolute
length limit. You must revise the form specification and recompile it.


-2024	There is already a record name specified. If the record name is
the same as a table name in the form, a default record of the same name
has been created.

Check that the record-name of every screen record and screen array is
unique in the form specification. A screen record is automatically
defined for each table that is used in the ATTRIBUTES section to define
a field. If you define a record with the name of a table, it is seen as
a duplicate.


-2025	The comment close symbol (}) has been found on line line, character
column, even though no comment has been opened.

Unless comment symbols are enclosed in quotes, they must be balanced.
Probably you accidentally deleted the open-comment symbol when you were
editing. Change the form specification so that comments are properly
delimited.


-2026	The FORMONLY field fieldname did not have a type specified. A type
must be specified if include lists or default values are specified.

The usual way of defining a form-only field (one not linked to a
database column) is as follows:

tagname = DISPLAYONLY.fieldname TYPE datatype

The TYPE clause is required. Review the attribute statements and
recompile the form. (The keyword FORMONLY is used in forms that the 4GL
compiler compiles. Its meaning is the same as DISPLAYONLY.)


-2027	An illegal (invisible, control) character has been found on
line line,character column. It has been replaced by a blank in the listing,
but it is still in the source (input) table, and should be removed before
attempting to compile again.

Illegal characters can be introduced into files by using a
word-processing editor in document mode instead of text mode, by
striking nonprinting keys while editing the file, or by data
corruption.


-2028	The symbol name does not represent a table prefix used in this form.
It cannot be used here to select record elements.

In a SCREEN RECORD statement, each component must be introduced by the
name of the table as defined in the TABLES section or by the word
FORMONLY. Review the spelling of the indicated name against the TABLES
section, and check the punctuation of the rest of the statement.


-2029	Screen record array name has component sizes which either
differ from the specified dimension of the array or differ among themselves.

The dimension of the screen array is written in square brackets that
follow its name, as in the following example where the dimension is 12:

SCREEN RECORD details [12]

(items.item_num, items.item_desc, items.unit_price)

In this case, exactly 12 screen fields should be associated with each
of the three columns that are listed in the screen record. This error
message appears when one or more of the columns appear a different
number of times.


-2030	A typographical error has been found on line line, character column.

The single character at the indicated position, although printable, is
unexpected and does not fit the syntax of a form specification.


-2031	The WORDWRAP attribute can only be specified for CHAR, VARCHAR and
TEXT fields.

This PRINT statement applies the WORDWRAP function to a value that is
not character data. Check that the field named is the one that you
intended, and check the punctuation of the rest of the statement.


-2032	The number above could not be successfully converted to either an
INTEGER or a DOUBLE or a LONG.

Something is wrong with the numeric constant; probably it has too many
digits. Check the punctuation of the statement; possibly two numbers
have been run together.


-2033	The field name has a default value not within the range of its include
list values.

The indicated field has both a DEFAULT attribute and an INCLUDE
attribute, but they disagree. The default value is not one that is
allowed. Modify one of the attributes, and recompile the form
specification.


-2034	This feature is not available for IBM Informix SQL. It is available for
IBM Informix 4GL by using the "form4gl" form builder.

The PERFORM form compiler and the 4GL form compiler accept very similar
form specifications, but they differ in some features. This statement
uses a 4GL feature, but PERFORM cannot process it.


-2035	The WORDWRAP attribute, if specified, should apply to all
the columns in a join.

Ignore this message. It applies to a feature of PERFORM (joins) that
4GL does not support.


-2036	The display lines of a multi-line field lie in different screen pages.

A multiline field (multiple fields with identical tags, given the
WORDWRAP attribute) must be complete within a screen page. Possibly you
did not intend the field to be on two pages. If your page layout, plus 4
reserved lines, is taller than the physical screen (as specified in
the SCREEN statement or in the lines dimension on the command line),
the form is divided by starting a new page after the last line that can
fit on the page, and this situation might accidentally split a
multiline field. In any case, rearrange fields so that the multiline
field fits on a single page.


-2037	The PROGRAM attribute can only be specified for BYTE and TEXT fields.

The field attribute PROGRAM specifies an external program to edit or
display a BYTE or TEXT value; these values are assumed to be too large
and specialized for the normal form-display methods. However, in this
statement, the attribute is applied to a column of another type, which
is not supported. Check the table and column names to make sure that
they are as you intended, and verify the current definition of the
table in the database that is named in the DATABASE statement.


-2038	BLOB fields cannot be joined.

Columns of BYTE and TEXT types cannot be compared. Therefore, they
cannot be used in joining tables, and they cannot be named as join
columns or in a COMPOSITES statement. Check that the table and column
names are as you intended, and verify the current definition of the
table in the database that the DATABASE statement names.


-2039	The attributes AUTONEXT, DEFAULT, INCLUDE, VERIFY, RIGHT and ZEROFILL
are not supported for BLOB fields.

Columns of BYTE and TEXT types cannot be used in the ways that these
attributes imply. Check that the table and column names are as you
intended, and verify the current definition of the table in the
database that the DATABASE statement names.


-2040	The form name name exceeds the maximum length of length characters.

The limit of the form compiler on names might be shorter than that of
the host operating system. Rename the form-specification file, and
issue the command again.


-2041	The form filename cannot be opened. This is probably because
it does not exist, or the user does not have read permission.

Check the spelling of filename. Check that the form file exists in your
current directory. If it is in another directory, check that the
correct pathname has been provided. On a UNIX system, if these things
are correct, verify that your account has read permission on the file.


-2042	The usage of a BLOB field in or around the above statement
is incorrect.

Columns of BYTE and TEXT types cannot be used in the ways that this
statement implies. Check that the table and column names are as you
intended, and verify the current definition of the table in the
database that the DATABASE statement names.


-2043	Screen layout exceeds the specified screen width. This is
a warning only.

The assumed screen width is taken from the SCREEN statement or a
command-line parameter to the form compiler, with a default of 80
characters. If the current form specification is displayed on a
terminal of that width, either some lines truncate, or lines wrap
unattractively.


-2044	At most one color attribute may be specified for each
field with each condition.

Review this ATTRIBUTES statement; a problem exists near a COLOR
attribute. Look for missing punctuation.


-2045	The conditional attributes of a 4GL field cannot depend
on the values of other fields.

The Boolean expression in a WHERE clause of a COLOR attribute can use
only the name of that field and constants. Revise this attribute, and
recompile the form.


-2100	Field field has validation string error, String = string.

One of the formatting or validation strings that is stored in the
syscolval or syscolatt tables is improperly coded. The string is shown
as is the field to which it applies. Use the Column Attributes
Dictionary utility in Windows or the upscol utility in DOS and UNIX to
update the string.


-2800	The first line of the specification must be the keyword database
followed by the database name, or the FORMONLY keyword (4GL only). An optional
WITHOUT NULL INPUT may also follow.

Aside from comment lines, a form specification must begin by naming a
database. Review the file for punctuation and spelling errors. Refer to
the reference manual for this product for the options that are allowed
in the DATABASE statement. (Current products do not use this message.
You might encounter it with Version 4.0 or earlier products.)


-2810	The name name is not an existing database name.

This name, which was found in the DATABASE statement at the start of
the form specification, is not a database that can be found. If you
are using IBM Informix SE, the database must reside either in the current
directory or in a directory that the DBPATH environment variable
names.


-2811	The temporary table table-name could not be opened for writing.

The application is attempting to create a temporary table in the
database or some other temporary file but received an error code from
the database server. The most probable cause is a lack of disk space.
Look for other error messages, including operating-system messages,
that might give more information.


-2812	The temporary table table-name could not be read.

The application created and filled a temporary table in the database or
created and filled some other temporary file, but when it tried to read
rows from it, it received an error code from the database server.
Probably a hardware failure occurred. Look for other error messages,
including operating-system messages, that might give more information.


-2820	The label name between brackets is incorrectly given or
the label is missing.

In this line of the SCREEN section of a form specification, square
brackets indicate a field. The brackets should contain a simple name.
Instead, they contain spaces or an invalid name. Review the punctuation
of the line to make sure that the brackets contain only a simple
identifier.


-2830	A left square bracket has been found on this line, with no right
square bracket to match it.

A screen field cannot span lines. Review the SCREEN section to make
sure all fields are properly marked. To create a multiline field, mark
off multiple complete fields all with the same field tag.


-2831	The control block has exceeded the maximum of limit fields.

Too many columns or tables are listed in the OF clause of this control
block. Write separate control blocks, each for part of the list.


-2832	This form uses "|" to both start and end a field placement.
Because of this, the form must specify left and right delimiters which
are the same character. This is done with the DELIMITERS command in
the INSTRUCTIONS section.

Make sure that a DELIMITERS statement is present and that it specifies
the same character for both left and right delimiters.


-2834	NULL cannot be used as the default. It is already the
default if you specify nothing.

This ATTRIBUTES statement contains a DEFAULT clause that specifies
NULL. Either delete the clause, or specify another value.


-2840	The label tag was not defined in the form.

The indicated name appears at the left of this ATTRIBUTES statement,
but it does not appear within brackets in the SCREEN section. Review
the field tags that have been defined to see why this one was omitted.


-2841	The form must include a tables declaration before the attributes
section.

Check that the form-specification file contains a DATABASE statement, a
SCREEN section, a TABLES section, and an ATTRIBUTES section, in that
order.


-2843	The column column-name does not appear in the form specification.

A name in this ATTRIBUTES statement should have been defined previously
in the form specification. Check that all names in the statement are
spelled correctly and defined properly.


-2844	The column column-name is associated with more than one field in the
form specification.

Any one table column can be related to only one field in an ATTRIBUTES
statement. Possibly you are trying to display columns from two or more
tables that have the same column names; in that case, prefix the table
names to the column names to distinguish them.


-2845	The composite column for table table-name containing
column column is not indexed. Performance will be much improved by
creating an index on the column.

The presence of an index can greatly reduce the time that is needed to
join tables. However, an index is not essential, especially when the
tables are small, or during initial testing.


-2846	The field field-name is not a member of the table table-name.

Something in this statement suggests that the name shown is part of
this table, but that is not true in the current database. Review the
spelling of the two names. If they are as you intended, check that the
correct database is in use and that the table has not been altered.


-2850	The name name is not a column name in this database.

The tables that are specified in the TABLES section of the form exist,
but the column name, which is named in the ATTRIBUTES section, does
not. Check its spelling against the actual table. Possibly the table
was altered, or the column was renamed. You can use Informix SQL to
check column names under the Tables menu, Info selection.


-2856	The TODAY attribute may be assigned only to date columns.

The TODAY function (not attribute) returns the value of today's date.
That value can be assigned only to a field that has the DATE or
DATETIME data type. The field in this statement has a different type.
Automatic data conversion is provided in 4GL programs, but not in the
context of a form.


-2857	There can be only one dominant composite column in a join list.

This statement defines a join list, a list of two or more column names
that are related to the same form field. In such lists, an asterisk
preceding a column name indicates that column is the dominant column in
a verify join. Only one such column is allowed in any join, but two or
more are present in this list. Review the documentation on verify
joins, and choose a single dominant table.


-2858	The table table-1 is joined to the table table-2, but its joined
columns do not belong to a composite key.

You have defined two or more different joining columns between the two
indicated tables. However, no composite index exists on the joining
columns. Such an index is required to ensure that a composite key
exists; that is, that any combination of values from the joining
columns will occur only once. Review the two or more ATTRIBUTES
statements that define join columns for these two tables. Make sure
that they are as you intended; for example, make sure that you intended
to join two tables on two or more columns, instead of joining three or
more tables on one column each. If you intended the composite key, then
use the CREATE INDEX command to create a composite unique index on
those columns for at least table1.


-2859	The column column-name is a member of more than one
table -- you must specify the table name.

Two or more tables that are named in the TABLES section have columns
with the name shown. You must make clear which table you mean. To do
this, write the table name as a prefix of the column name, as
table.column, wherever this name is used in the form specification.


-2860	There is a column/value type mismatch for column-name.

This statement assigns a value to the field with the DEFAULT clause or
uses its value with the INCLUDE clause, but it does so with data that
does not agree with the data type of the field. Review the data type of
the field (which comes from the column with which it is associated),
and make sure that only compatible values are assigned.


-2861	You have exceeded the maximum of number tables.

A limit exists on the number of tables that can be in use at one time.
(This limit might be different on different host systems or with
different database servers.) Reduce the number of tables that you use
in the form.


-2862	The table table-name cannot be found in the database.

All tables used in a form must exist at the time that the form is
compiled, so that the compiler can verify the data types of the
columns. The indicated table does not exist in the database that is
named in the form. Check the spelling of the table name and database
name. If they are as you intended, either you are not using the version
of the database that you expected (check the value in the DBPATH
environment variable), or the database has been changed.

The tables that are specified in the TABLES section of the form exist,
but column-name, which is named in the ATTRIBUTES section, does not.
Check its spelling against the actual table. Possibly the table was
altered, or the column was renamed. You can use IBM Informix SQL to check
column names under the Tables menu, Info selection.


-2863	The column column-name does not exist among the specified tables.

The tables that are specified in the TABLES section of the form exist,
but column-name, which is named in the ATTRIBUTES section, does not.
Check its spelling against the actual table. Possibly the table was
altered, or the column was renamed. You can use Informix SQL to check
column names under the Tables menu, Info selection.


-2864	The table table-name is not among the specified
tables.

The indicated table is used in this statement but is not defined in the
TABLES section of the form specification. Check its spelling; if it is
as you intended, add the table in the TABLES section.


-2865	The column column-name does not exist in the table
table-name.

Something in this statement implies that the column shown is part of
the indicated table (most likely the statement refers to
table-name.column). However, it is not defined in that table. Check
the spelling of both names. If they are as you intended, then check the
contents of the database; possibly the table has been altered or the
column renamed.


-2866	The NOW attribute may be assigned only to datetime
columns.

This message is not in use in any current product. SQL does not support
any NOW attribute or function; use the CURRENT function.


-2867	The CURRENT attribute may be assigned only to datetime
columns.

The CURRENT function (not attribute) produces the current date and time
as a DATETIME value, but the field that is referenced in this statement
does not have the DATETIME data type. Automatic data conversion is not
supported in this context. Review the statement to make sure that it
refers to the field that you intended, and revise the form to assign
DATETIME values only to DATETIME fields.


-2870	The subscripted column size does not match the space
allocated in the display field.

This attribute statement relates a substring of a column to a display
field. However, either the substring numbers are wrong (the first is
less than 1 or greater than the size of the column, the second is less
than the first), or they are correct but the number of characters that
they select is different from the size of the display field. Revise the
substring numbers to select exactly as many characters as the field
requires.


-2880	The word 'screen' or 'end' has been left out.

Every form specification must end in the keyword END and must contain
the keyword SCREEN. Both must begin in the first column of a line.
Review the contents of the form specification to make sure that all the
necessary sections are properly marked.


-2890	A screen definition must begin with a left curly bracket '{'.

Each screen layout must be enclosed in braces ({ }). The open brace
must be the first character on its line. Review the form specification
to make sure that the screen layout is punctuated properly.


-2892	The column column-name name appears more than once. If you wish
a column to be duplicated in a form, use the same display field label.

The expected way to display the same column in two or more places is to
put two or more fields in the screen layout, each with the same
tag-name. Then put a single statement in the ATTRIBUTES section to
associate that tag-name with the column name. The current column value
will be duplicated in all fields. If you intended to display different
columns, the column names as listed in the ATTRIBUTES section must
differ. If you intend to display different columns that happen to have
the same column-names, prefix each with its table-name.


-2893	The display field label tag-name appears more than once
in this form, but the lengths are different.

You can put multiple copies of a field in the screen layout (all will
display the same column), but all copies must be the same length.
Review the SCREEN section to make sure that, if you intended to have
multiple copies of one field, all copies are the same.


-2895	Display field length of field-size does not match
the database column length of column-size. This is a warning only.

The size of the character field that is defined in this statement (as
shown by its appearance in the SCREEN section) is different from the
size of the associate column. You specified the -v option to the form
compiler to request warnings of this type.


-2901	Field name contains two conflicting attributes, first and second.

This statement contradicts itself. The UPSHIFT and DOWNSHIFT attributes
cannot be applied to the same field; nor can NOENTRY and REQUIRED or
NOETNRY and VERIFY. Review the statement, and correct the selection of
attributes.


-2920	The column column is a dominant column but it is not indexed.
Performance will be much improved by creating an index on the column.

You have defined the indicated column as dominant in a verify join.
Whenever the operator enters a value in the field, it will be looked up
in this column. Such a lookup operation is very quick when an index is
present. No index on the column exists at this time. Without one, a
lookup might be extremely slow. Unless the field does not allow
operator input (in which case you should remove the asterisk) or the
table is very small (a few dozen rows at most), you should create an
index for this column before you put the form into use.


-2921	The database dbname is not compatible with the current version of
IBM Informix SQL.

A prior version of IBM Informix software created the database that is named
in the DATABASE statement in this form. Before the present system can
use the database, you must use the sqlconv utility to convert it.


-2930	Portions of the column name are displayed on the screen
more than once.

This form displays subscripted portions of the indicated column in
different fields. This situation is permitted; however, no single
character can appear in more than one field. That is, the subscripts
cannot overlap. For example, you can display name[25,49] in one field
and name[50,74] in another. You cannot display name[25,49] and
name[25,74] because some characters would be displayed twice.


-2931	There is an error in the format specification.

Check the content of the FORMAT string in this statement. It is not
correct for the data type; that is, it has characters other than # and
. for a numeric column, and it has an incorrect internal length for a
DATE column (for example, yyy, which calls for a three-digit year).


-2932	Formats may be specified only for float, smallfloat,
decimal, or date columns.

This attribute statement specifies a FORMAT string, but the data type
of the field is not one of the four that support formatting: FLOAT,
SMALLFLOAT, DECIMAL (or MONEY), and DATE. If this column is not
DISPLAYONLY, check that it has been associated with the right column
and that the column is defined in the database as you expected.


-2933	The format width is larger than the allocated display width.

The length of the FORMAT string that is specified for this field is
greater than the length of the field itself as shown in the SCREEN
section. Review the screen layout, and revise it or the format so that
they agree.


-2934	The format width is less than the allocated display width.

The length of the FORMAT string that is specified for this field is
less than the length of the field itself as shown in the SCREEN
section. Review the screen layout, and revise it or the format so that
they agree.


-2935	The number of lines specified with the '-l' option or
in the screen section must be a positive integer from 6 to 600.

The vertical size of the screen, as indicated in the SCREEN statement
or in the -l (lowercase L) command-line option, is out of range. Change
it to specify the expected size of the terminal where the form will be
used.


-2936	The number of columns specified with the '-c' option or
in the screen section must be a positive integer from 30 to 600.

The horizontal size of the screen, as indicated in the SCREEN statement
or in the -c command line option, is out of range. Change it to specify
the expected size of the terminal where the form will be used.


-2940	The column name appears both with and without subscripts.

This form displays all of the indicated column, and subscripted portion
of it, in different fields. You can display different, subscripted
parts of a column in different fields, but the parts cannot overlap.
That is, portions of a column cannot be displayed twice on the same
screen. Review all uses of the indicated column. Perhaps you did not
intend to name it in both places. Perhaps two or more columns of the
same name exist in different tables, and you need to use the table name
to distinguish them. Otherwise, use nonoverlapping subscripts on each
field of the column.


-2941	name is not a display field name on the form.

This statement refers to a field as name, but no such name is defined.
Check the spelling, and review the ATTRIBUTES section to see how the
field was defined.


-2943	You have exceeded the pseudo machine capacity.

The expression in this statement is too complex to process. Simplify
it, and recompile the form. (See also error message -2988.)


-2944	You may apply the after add, update, query, or remove commands to
a table only -- not a column.

The operations of Add, Update, Remove, and Query all apply to whole
rows. Consequently, these control blocks must list only table names,
not names of individual columns, in their opening command. Review the
names in this statement, and change column names to the names of their
tables.


-2945	You may apply the after add, update, query, or remove commands to
a table only -- not a column.

Aggregates (AVG, MIN, MAX, COUNT, TOTAL) can only be performed on
fields that are associated with tables (not on DISPLAYONLY fields), and
the tables must be listed in the opening command of the same control
block. Revise the form specification, and recompile.


-2946	You may not calculate an aggregate on the display-only field name.

Aggregates can only be performed on fields that are associated with
tables (not on DISPLAYONLY fields), and the tables must be listed in
the opening command of the same control block. Revise the form
specification, and recompile.


-2950	The column name has no section which starts at 1.  Remember that
the first subscript is one, not zero.

Multiple substrings from the same column are assigned to display
fields. However, the substrings do not cover adjacent, nonoverlapping
portions of the column. Either there is no first section (starting from
column 1), or one section overlaps another. Review the substrings that
are specified. Consider using a multiline edit field instead of a group
of substrings; it is simpler to code and provides better editing for
data entry.


-2951	The left and right delimiters must be specified in a two character
string.

The DELIMITERS instructions require a string of exactly two characters,
the left and right delimiter (marker) characters to be used when
displaying fields. The characters can be the same, but there must be
two of them.


-2952	In order to use a picture, the picture length must be the same as
the display field length.

The string that is specified with the PICTURE attribute must have
exactly the same length as the field as depicted in the SCREEN section.
Review the definition of this field, and make the two lengths agree.


-2953	The name name is not a database column in this form.

All the columns that are named in a COMPOSITES list must be defined in
the ATTRIBUTES section. Check the spelling of all the names, and make
sure that they have been defined.


-2954	You have exceeded the maximum of number control instructions.

The INSTRUCTIONS section of this form has exceeded the ability of the
form compiler to handle it. Remove some instructions to simplify the
form.


-2955	The name field-tag is not a displayed field in this form.

The name that is shown appears in the ATTRIBUTES section but nowhere in
the SCREEN section. Check the spelling of the name; it is wrong in one
of those places, or it has been omitted from the screen layout.


-2956	You may not set display field field-tag to a value because
none of its associated database columns belong to the same table as
table, nor is it a variable display-only field.

You cannot assign values in a LET statement across tables. All columns
that are associated to the field-tag in a LET statement must belong to
tables that are named in the opening command of the control block, or
it must be a display-only field.


-2957	You may not set the next field to that-tag because none of its
associated database columns belong to the same table as this-tag.

The field that is named in a NEXTFIELD statement must be associated
with the same table as the current field. Review the relationships
between columns and tables in this form, and revise it.


-2958	You may have a maximum of ten parameters in a C-function.

This improper call to an external C function has too many parameters.
Find some way to pass the same information in fewer parameters.


-2959	Two tables may join with a maximum of limit column pairs,
including all components of composite columns.

A limit exists on the number of columns that are involved in a join.
This limit includes both the join columns that are named in an
ATTRIBUTES statement and those that are named in a COMPOSITES statement
for the same table.


-2970	The column name joins with other columns, but it is not indexed.
It is recommended that columns be indexed for cross-table queries.
Performance will be much improved by creating an index.

The presence of an index on at least one of the columns that are
involved in a join can make join operation much faster. However, an
index is not required when one or both tables are small (dozens of
rows). Consider creating an index on all join columns before you put
the form into production.


-2971	This column is not a character column, and therefore cannot be
subscripted.

This statement contains a subscript, a pair of numbers in square
brackets, after a column name. However, the data type of the column is
not CHAR, VARCHAR, or TEXT. Only such columns can be subscripted. Check
that you named the correct column. If you did, check its definition in
the database.


-2972	This column cannot be right justified or zero-filled because its
displayed width does not match the actual column width.

In order to use the RIGHT or ZEROFILL attributes, make sure that the
field size (as depicted in the SCREEN section) is exactly the same as
the width of the database column. Review this statement, the screen
layout, and the definition of the table in the database to make sure
these sizes agree.


-2973	There may be only one dominant column in a display field description.

This statement defines a join list, a list of two or more column names
that are related to the same form field. In such lists, an asterisk
that precedes a column name indicates that column is the dominant
column in a verify join. Only one such column is allowed in any join,
but this list contains two or more. Review the documentation on verify
joins, and choose a single dominant table.


-2975	The display field label tag-name has not been used.

The indicated name was defined in the SCREEN section but not in the
ATTRIBUTES section. Review the tags in each section, and revise the
form so that all tags are defined.


-2976	The end of the form has been reached prematurely.

This form specification has a SCREEN section but no TABLES or
ATTRIBUTES sections. Complete the form specification.


-2977	Table table1 cannot be a master of table table2 because
they do not join.

The two tables that are named in a MASTER OF instruction must be
joined. A join between tables is expressed by naming columns from both
tables in one statement in the ATTRIBUTES section. Check the spelling
of the table names here, and review the attribute statements.


-2978	The column column1 and the column column2 cannot be joined columns
because their types or lengths are different.

The columns in a join must contain data from the same domain. The fact
that these columns have different types or (if they are character
columns) different lengths indicates that their contents are not from
the same domain. Check the spelling of the column names to make sure
that you named the correct columns. Review the design of the database,
and make sure that these tables are meant to be joined on these
columns.


-2984	The table identifier table is defined more than once.

Correct the statements in the TABLES section so that each table is
defined just once. Possibly you have defined an alias that is the same
as a real table name.


-2985	The table identifiers name1 and name2 represent the same table.

In the TABLES section, these two names are defined in such a way that
they refer to the same database table. One or both of them is a table
alias. Change the statements so that each name stands for just one
table and each table has just one name.


-2986	The form specification has exceeded the maximum of limit
master/detail pairs.

A restriction exists on the number of master-detail pairs that can be
supported in one form. You must find a way to simplify the form.


-2987	The form specification has exceeded the maximum of limit screens.

A restriction exists on the number of screen layouts that can be
supported in one form. You must find a way to simplify the form.


-2988	FORMBUILD has run out of memory.

The form compiler cannot get enough data memory to process the form
specification. You must find a way to simplify the form.


-2989	The column name is a reference column, but it is not indexed.
It is recommended that reference columns be indexed for lookups.
Performance will be much improved by creating an index.

You have defined the indicated column as a reference column using the
LOOKUP attribute. Whenever the operator enters a value in the field, it
will be looked up in this column. Such a lookup operation is quick when
an index is present, but no index on the column exists at this time.
Without one, a lookup might be extremely slow. Unless the field does
not allow operator input (in which case you should remove the asterisk)
or the table is very small (a few dozen rows at most), you should
create an index for this column before you put the form into use.


-2990	The columns column1 and column2 are not in the same database table.

All columns that are cited in a single LOOKUP attribute must belong to
the same table. Check the spellings of the names, and make sure that
they are the columns you intended.


-2991	Warning: Only the first screen of your multiple-screen form
will be displayed under 4GL.

This warning appears when you use the 4GL forms compiler to compile a
multipage PERFORM screen. A 4GL program can display only the first page
of a multipage form. If the form specification has more than one SCREEN
section, it has been purposely divided into multiple pages, and you
will have redesign it for 4GL. If it has only a single screen layout,
the 4GL forms compiler has split it into two pages because it will not
fit on the screen. The form design might not allow for the four screen
lines that 4GL reserves.


-2992	The display label name has already been used.

The forms compiler indicates that name has been defined twice. These
names must be defined uniquely in the form specification. Review all
uses of the name to see if one of them is incorrect.


-2993	There is a circular join path specified in the form.

This form defines a series of three or more joins such that table A
joins to table B, table B joins to table C, and table C joins to table
A. The circularity might not be obvious due to the use of table-alias
names. Review all the statements in the ATTRIBUTES section and any
COMPOSITES statements, and draw a diagram of the join relationships.
Then modify the form so that no circular joins are created.


-2994	The form has exceeded the maximum number of joins between tables.

A limit exists on the number of joins that can be specified. You must
find a way to simplify the form.


-2995	The form has exceeded the maximum number of tables contained in joins.

A limit exists on the number of tables that can be contained in one
join. You must find a way to simplify the form.


-2996	The unanticipated error number os-error has occurred. 
        Contact Technical Support.

The error number that is displayed came from the host operating system.
RDS was at one time the name of Informix Software. This error should
not occur. If the error recurs, note all circumstances and
contact IBM Technical Support.


-2997	See error number.

The database server returned the error number that is shown. Look it up
in this document. Also look for other error messages that might give
more information or contact IBM Technical Support.


-2998	Operating system error os-error: text.

The error that is displayed came from the host operating system. This
error should not occur. If the error recurs, note all circumstances
and contact IBM Technical Support.


-2999	SQL server terminated.

The application has lost contact with the database server. Someone
might have shut down the database server, or an internal error might
have damaged a pipe between the application and the database server. In
a local area network system, the database server process or thread in
the file server might have been terminated, or the file server might be
down. Look for other messages, especially operating-system messages,
that might give more detail.


-3000	ISAM or system error number number.

Look up the error number in the finderr utility.


-3001	There are no forms in the current directory.

You can run only forms that are present in the current directory or a
directory that is named in your DBPATH environment variable. Change
directories to the one that contains the desired forms, or change the
contents of DBPATH.


-3002	There are no BLOB fields to view.

You selected the View menu option. This option lets you view the
contents of TEXT and BYTE fields of a form, but this form has none.

-3003	This BLOB field is empty.

You selected the View menu option. The cursor is positioned in a field
that represents a BYTE column, and you pressed the ! key to edit the
contents of the field. However, the field is null; no data exists to
view. Use Query to select a row that includes nonnull data in this
field.


-3005	You do not have permission to access the form form-name.

The form file form-name does exist; however, your account does not have
operating-system permissions to read and write it.


-3006	An unknown code has been found in the .frm file. Recompile your form before running it again.

Recompile the form to make sure that the .frm file has not been
corrupted. If the same error occurs, check that you are running
FORMBUILD and PERFORM products at the identical version level (version
numbers are displayed when the commands are executed from the command
line if you do not use the -s option). If the error recurs, note
all circumstances and contact IBM Technical Support.


-3007	Your form is incompatible with the current version
of PERFORM. Recompile your form before running it again.

Use FORMBUILD to compile the form, then run PERFORM again.


-3010	Database database-name not found.

The database that is named in the DATABASE section of the form could
not be opened. Either it could not be found, or your account has not
been granted CONNECT privilege for it. You can use Informix SQL to
separate these cases. Use Select option from the Database menu. If
database-name is listed, the database can be found but could not be
opened.

The database server looks for a database first in the current directory
and then in directories that are named in the DBPATH environment
variable. Check to see if database-name.dbs exists in one of those
directories.


-3011	A table is locked -- no reading or writing is permitted.

Because another user has locked a table in exclusive mode, PERFORM
cannot continue. Rerun the transaction when the table is not locked.


-3019	Unanticipated error number has occurred; call Technical Support.

Note all circumstances and contact IBM Technical Support.


-3020	The table table-name is not in the database. Build your form again.

A table that is listed in the TABLES section of the form cannot be
found. Review the DATABASE statement to ensure that the form is using
the correct database. If so, and if the table name is spelled as you
intended, the table has been dropped or renamed. You can use
Informix SQL to check table names under Info selection in the Tables
menu. Revise the form to use the correct name.


-3030	The column column-name is not in the database. Build your form again.

The tables that are specified in the TABLES section of the form do
exist, but the column column-name, which was named in the ATTRIBUTES
section, does not. Check the spelling of column-name against the
actual table. The table might have been altered, or the column may have
been renamed. You can use Informix SQL to check column names under Info
selection in the Tables menu. Revise the form to use the correct column
name.


-3031	The form form-name cannot be found or opened.

PERFORM cannot locate the compiled form form-name.frm in the current
directory or in a directory that is named in the DBPATH environment
variable. Or if it did find the file, it could not open it. Check the
spelling of the name. Verify that the file exists, and check that your
account has read access to it.


-3035	The column column-name has changed column type. Build your form again.

The column column-name, which is named in the ATTRIBUTES section of the
form, no longer has the data type that it had when the form was
compiled (the table has been altered since). Check the present data
type; then examine the form specification to make sure that it will
display the column in a field of the appropriate size. Modify the form
as required, and rebuild it.


-3037	The column column-name is not a composite column. Build
your form again.

The column column-name is mentioned as part of a COMPOSITE in the
INSTRUCTIONS section of the form specification. However, no composite
index (an index over all the columns of a composite key) exists over
this column and its fellows in the database. After the form was
compiled, the composite index was dropped. Either it should be
restored, or the form should be revised.


-3050	Operating system error. Cannot open a temporary file.

PERFORM is trying to open a temporary file that it created earlier.
Look for operating-system error messages that might give more
information. Possibly you have exceeded a limit on the number of open
files. If the error recurs, note all circumstances and contact
IBM Technical Support.


-3060	Operating system error. Cannot create a temporary file.

PERFORM is trying to create a temporary file but cannot. On UNIX
systems, check that your account is allowed to write in the /tmp
directory or the directory that is named in the DBTEMP environment
variable and that the directory is not full. Possibly you have exceeded
an operating-system limit on the number of open files. In that case,
you will have to reduce the number of tables that are used in this
form.


-3081	The specified output file name has a bad extension.

The output filename cannot end in any of the following suffixes:
.dat, .idx, .aud, .per, .frm, .ace, .arc, .sql, or .unl.

Select a different filename.


-3082	No program specified to edit this BYTE field.

The form user has keyed! in the display of a BYTE field. However, no
program= attribute was defined for this field.


-3101	The column column-name does not allow null values.

When you added data to a table, you did not specify data for the column
shown. However, that column is defined in the database as not allowing
null values. You cannot add the row unless you supply a value.


-3120	Error in field.

The data that is entered into the current field is not appropriate for
the data type of the field.


-3200	There are no rows in the current list.

You must first query the table before you execute the UPDATE, REMOVE,
NEXT or PREVIOUS command.


-3210	The current row position contains a deleted row.

Another user has just deleted the row now displayed. That row no longer
exists. You cannot use the UPDATE, REMOVE, NEXT, or PREVIOUS commands
until you use QUERY to display a valid row.


-3260	This is an invalid value -- it does not exist in table-name table.

This column has a verify join with a column in table table-name. Any
value that is entered in this field must be found in that table. The
value just entered was not found. Enter a correct value.


-3261	Invalid value -- its composite value does not exist in table-name table.

This column is listed with others as a COMPOSITE in the INSTRUCTIONS
section of the form specification. It is shown there as needing to be
verified against matching columns of table table-name. The value you
have entered, considered with the other values in the composite, does
not occur in table-name.


-3265	A required index on column-name is missing. Restore.

All dominant columns (those with asterisks before their names) in
verify joins must be indexed. Perhaps the index has been dropped since
the form was compiled. Re-create the index, and run the form again.


-3300	There are no more rows in the direction you are going.

You reached the beginning or the end of the current list of rows. You
can start a new query with the QUERY command, or use the PREVIOUS or
NEXT command to reverse through the list the other way.


-3400	There are no rows satisfying the conditions.

No rows in the database match the values that are entered in the form.
Enter different values, and query again.


-3420	This value is not among the valid possibilities.

A list or range of acceptable values has been established for this
column (via an INCLUDE attribute in the form-specification file). You
must enter a value within the acceptable range.


-3421	The joined field table.column cannot be selected by the current user.

This form queries the column in the table shown in joining two tables.
However, your account name does not have SELECT privilege for that
table and column. Contact the owner of the table or a Database
Administrator to be given this privilege.


-3430	This field requires an entered value.

The row cannot be added to the table until a value has been entered in
the indicated field. A REQUIRED attribute in the form-specification
file has been associated with the column. Enter a value in the field.


-3450	Someone else has deleted a row which is in your list.

Another user, accessing a table that is queried by your form, has
deleted a row that your latest query selected. Restart your query to
get an accurate selection of rows. Version 4.0 and earlier of PERFORM
might return this error message when you query a view. Early versions
of the product did not support views.


-3451	This form has no fields requiring data entry.

None of the fields in this form specification permit data entry; they
are all marked as either LOOKUP or DISPLAYONLY without the ALLOWING
INPUT keywords.


-3452	Add, Update and Remove operations not allowed on a remote table.

The table that is being queried is in a database that is external to
the current database (the one that is named in the DATABASE section of
the form). Such tables cannot be modified. (This message is not
currently used. You might encounter it with products of Version 4.0 or
earlier.)


-3460	This row has been locked by another user -- try again later.

Another individual is currently using the table. Wait a few moments,
and reenter your statement.


-3500	The two entries were not the same. Try again.

To guard against typographical errors, you must enter the value in this
field twice. The values that are entered must be identical. Carefully
reenter the data. (A VERIFY attribute in the form-specification file
has been associated with this column.)


-3600	No detail table has been specified for this table.

You must first establish this table as the master of another table in
the INSTRUCTIONS section of the form.


-3610	No master table has been specified for this table.

You must first establish this table as the detail of another table in
the INSTRUCTIONS section of the form.


-3620	You do not have permission to write into this table.

You do not have insert or update privilege for the table, so you cannot
insert or update a column. Check with the owner of the table or the
person who has Database Administrator (DBA) privilege for the database
for the necessary permission.


-3630	Operating system error. Cannot write into a temporary file.

PERFORM earlier created a temporary file but now cannot write into it.
The most likely cause of this error is that the disk has filled up.
Alternatively, another user might have deleted the temporary file after
it was created.


-3650	You must first remove table-name rows which join this row.

The row you wish to remove is the dominant member of a verify join. You
cannot remove this row without first removing any rows that join it.


-3651	You have exceeded the number of opened tables allowed by your system.

Executing the statement would require that PERFORM exceed an operating
system limit on the number of open files. You will have to reduce the
number of tables that are included in the form specification.


-3660	You must first update table-name rows which join this row.

The row you wish to update is the dominant member of a verify join. You
are not allowed to change a row value in this column that would
invalidate joined rows in other tables. You must first update the rows
in table-name that join this column.


-3670	Operating system error. Cannot seek into a temporary file.

Earlier PERFORM created a temporary file; now it cannot change the file
position in that file. Perhaps another user deleted the file after it
was created. Look for messages from the operating system that might
give more detail on the problem.


-3680	PERFORM has run out of memory.

PERFORM cannot get the memory data space it needs. You will have to
reduce the complexity of the form.


-3690	Detail cannot be executed -- tables first and second do not join.

A master-detail relationship for these two tables is specified in the
INSTRUCTIONS section of the form. However, the two tables do not join.
Add a join attribute in the ATTRIBUTES section.


-3700	Permission not granted to allow reading of table-name.

Your account has not been granted SELECT privilege for the table
table-name. The owner of the table, or a person who has Database
Administrator (DBA) privilege for the database, can grant this
privilege level to you.


-3710	Permission not granted to allow update of table-name.

Your account has not been granted UPDATE privilege for the table
table-name. The owner of the table, or a person who has Database
Administrator (DBA) privilege for the database, can grant this
privilege level to you.


-3720	Permission not granted to allow add of table-name.

Your account has not been granted INSERT privilege for the table
table-name. The owner of the table, or a person who has Database
Administrator (DBA) privilege for the database, can grant this
privilege level to you.


-3730	Permission not granted to allow remove of table-name row.

Your account has not been granted DELETE privilege for the table
table-name. The owner of the table, or a person who has Database
Administrator (DBA) privilege for the database, can grant this
privilege level to you.


-3731	Cannot open the table table-name.

The database server cannot open the file that represents this table.
You might have exceeded an operating-system limit on open files; if
that is the case, you will have to reduce the number of tables that are
included in the form. However, first make sure that a file exists for
this table in the database directory (its name is database-name.dbs)
and that your account has read access to it. The name of the table file
is composed of table-name, a 3-digit number, and the suffix .dat.


-3750	Command aborted.

No current IBM Informix product returns this message. If the error recurs, note all circumstances and contact IBM Technical Support.


-3751	Type carriage return to continue.

No current IBM Informix product returns this message. If the error recurs, note all circumstances and contact IBM Technical Support.


-3752	You cannot use this editing feature because a picture exists.

This field is defined (in the form-specification file) with a PICTURE
attribute to specify its format. You cannot use certain editing keys
(for example, CTRL-A, CTRL-D, and CTRL-X) while you are editing such a
field. Use only printable characters and backspace to enter the value.


-3754	You have exceed the pseudo machine stack space.

Reduce the complexity of the form. In particular, reduce the level of
nesting of loops and IF statements, and break very complicated
expressions in LET statements up into simpler ones.


-3755	The selected display-only field tagname cannot be accessed.

The field tag name that is passed to the C function pf_nxfield() is the
name of a display-only field. Because the user is not allowed to enter
data in a display-only field, the cursor cannot be located in one.
Check the tag name that is supplied; if it is the one that you
intended, review the attributes of that field, and find out why it has
been set display-only.


-3756	The selected field tag-name cannot be assigned a value at this time.

The specified field is not in the current table. The cursor is not
allowed to enter such fields, and values cannot be set in them.


-3757	A conversion error has occurred for the field tag-name.

The data type of the value that is passed to pf_putval() could not be
converted into the data type of the screen field tag-name. Review the
value and the valtype flag versus the data type of the field in the
form definition.


-3758	The next selected field tag-name is not in the current table.

The field tag name that is passed to the C function pf_nxfield() is the
name of a field that is not in the current table. The cursor is not
allowed to enter such fields.


-3759	The display field field-name does not exist in the form.

The field tag name that is passed to the C function pf_nxfield() is not
defined in this form. Review the string that is passed; if it is as you
intended, inspect the form definition to see what has been changed. A
common error is to confuse the tag name, which is used in the screen
layout and to the left of the equal sign in the ATTRIBUTES section,
with the field name, which is the column name used to the right of the
equal sign in the ATTRIBUTES section. The latter is used when
referring to fields.


-3760	Matching may not be used between non-character fields or expressions.

An IF-THEN-ELSE statement in the INSTRUCTIONS section of the form uses
the keyword MATCHES to compare two fields. However, at least one of the
fields is not a character field, and you can use MATCHES only with
character fields. Review all uses of MATCHES in the INSTRUCTIONS
section to make sure it is applied only to character fields.


-3761	ERROR -- attempt to divide by zero has occurred.

A division expression in the INSTRUCTIONS section has a zero divisor.
Review all uses of division in the INSTRUCTIONS section, and look for
any that might have a denominator of zero (possibly the denominator is
a field into which the user entered a zero). Protect these expressions
with tests for zero using IF-THEN-ELSE.


-3762	The user function funcname defined in the form could not be found
in the C function definition table userfuncs.

The INSTRUCTIONS section of the form includes a call to a function
funcname, and sperform assumes that this is the name of an external C
function. However, the name and address of each such function must
appear in a static array that is named userfuncs. That array, along
with the computer code of the external functions, is linked with a
custom version of sperform. Because name did not appear in the array,
sperform cannot call it.

Check that you are executing the correct, customized version of
sperform (the original version of the program has no external functions
linked to it). Check to see if funcname is correctly spelled. Then
examine the source of the C functions to make sure that the userfuncs
array is defined correctly.


-3763	This program has an invalid serial number. Consult your
installation instructions.

The IBM Informix software product has been improperly installed. Review the
installation procedure. If you need help, contact IBM Technical Support.


-3764	Screen too small. Must be at least 6 lines and 30 columns.

PERFORM cannot operate in a screen or window that is smaller than 6
lines by 30 columns. You must increase the size of the terminal window
in which you are executing PERFORM. The absolute minimum is 6 lines by 30
columns. However, the window must also be large enough to contain
the form that will be displayed.


-3765	Form image too large to fit in the screen window.

The screen image as defined in the form file is larger (either wider or
taller) than the dimensions of the current window. If the current
window is the main window, its size is set by the dimensions of the
terminal in use. If the current window was opened with OPEN WINDOW, you
should specify more rows or columns. Review the form file, and either
reduce the size of the screen image or display it as a bigger window.


-3766	Usage: SPERFORM [-s] [-d database] filename . . .

This message displays the command-line option of the sperform program.


-3767	An unknown option option name was found on the command line.

Make sure that you typed the correct command-line option.


-3999	System internal error in file filename at line number.

This error should not occur. If the error recurs, note all
circumstances and contact IBM Technical Support.


-4000	Intrinsic member functions cannot be declared as SHARED.

This statement attempts to declare one of the intrinsic members of this
class (the class constructor, or the !copy() or !derive() function) as
SHARED. You can declare these functions in order to extend them, but
the declaration cannot specify SHARED.


-4001	Fundamental type name "type" cannot be used as a class name.

This CLASS statement attempts to declare a class with the same name as
a built-in data type such as INTEGER. Find a different name for your
class.


-4002	Argument n of function "name" is not convertible to its formal
parameter's type.

The indicated argument expression or default argument expression is not
compatible with the declared type of that function argument. Review the
declaration of the function to see what type is expected.


-4004	Member "name" of class "class-name" cannot be accessed in this context.

The compiler is aware of the member, but the access control for the
member makes it inaccessible in the statement. Check for a PUBLIC,
PRIVATE, or PROTECTED declaration. Member variables default to
PROTECTED access, but member constants and member functions default to
PUBLIC.


-4005	You cannot redefine private base member function "name".

This FUNCTION declaration in a class declaration names a member that is
inherited from a base class of this class. However, that inherited name
is declared as PRIVATE, so it cannot be overridden in this class.
Review the declarations of all base classes; then choose a name for
your function that will be unique to this class.


-4007	Record member "name" is undefined.

This statement refers to record.name. While the variable record is
indeed a record, name is not the name of one of its component fields.
Find the definition of record (it might be in the GLOBALS file), and
verify the names of its fields. Then correct the spelling of name.


-4009	Non-shared member "name" cannot be used in default values.

A default value expression in this function declaration refers to the
value of a normal member variable of this class. This action is not
supported. Default value expressions can refer to variables, but they
must be declared at the module level or be shared members of classes.


-4010	Include file "pathname" is not found.

This INCLUDE statement names a file that the compiler cannot find. If a
complete pathname is used, the file does not exist. Check the spelling
of all the directories and the filename. If only a filename is given,
that file could not be found in the current directory, in
$INFORMIXDIR/incl, or in any directory that is specified in a -H
compiler argument. Perhaps one of these arguments was omitted or
misspelled.


-4011	Class "name" is not declared.

This statement refers to a class of the indicated name, but no such
class has been declared to this point in the source module. Check the
spelling of the name. Make sure that all desired include files have
been included.


-4012	You can only specify a base clause for class constructors.

This function declaration is followed by a colon, class-name, and
argument list (in short, a base clause). This syntax is used only when
declaring the constructor function for a class (the function whose name
is the same as the name of the class), in order to specify function
arguments to the constructor of the base class.


-4013	Invalid intrinsic member function "!name".

The supported intrinsic member functions are !copy(), !derive(), and
the class-name (the constructor). No other functions can be declared
with an initial exclamation mark. Check the spelling of name. If it is
not one of the supported names, declare the function as a normal member
function.


-4014	You cannot specify the RETURNING type for intrinsic member functions.

This declaration of an intrinsic member function includes a RETURNING
clause. This action is not supported. The compiler defines the returned
value from an intrinsic member function. Omit the RETURNING clause.


-4016	Each class declaration must have at least one member function.

This class declaration contains no member functions. A class must
contain at least one, because the point at which the first (or only)
member function is defined is also the point at which the class itself
is defined. If the class has no other members, declare its constructor
function. Because the constructor is declared, it must also be defined
(although the definition need not contain any statements beyond
FUNCTION and END FUNCTION unless you wish).


-4018	The columns specified in the THRU option do not belong to the same
table.

This statement refers to some table first THRU (or THROUGH) last;
however first and last are not both columns in that table. Check the
spelling of these column names. Make sure that the correct database is
current at this point in the compilation (the most recent preceding
DATABASE statement).


-4019	The columns specified in the THRU option appear in the reverse order.

This statement refers to some aggregate (table, record, or object) with
the qualification "first THRU (or THROUGH) last." However, first and
last do not appear in that order in the aggregate; last precedes first.
Check the spelling of the two names. Make sure that the correct
database is current at this point in the compilation (the most recent
preceding DATABASE statement).


-4020	Function "member" is not a member of class "class".

This statement tries to invoke class::member(), either directly or as
object.member(). However, no such member function is available from
that class. Check the spelling of the member name and the class or
object name. If the reference is class::member(), review the
declaration of the class for the correct spelling of the names of its
members. If the reference is through an object, make sure the object is
declared as having the class you intended. You can only call members of
the stated class (the class it is declared to have) of an object. If
you want to call a member of an actual class (the class that you think
will be present at execution time), use the CAST operator.


-4021	A class member cannot be named "SELF".

You cannot use SELF, regardless of letter case, as the name of a member
variable, member constant, or member function. The identifier SELF is a
built-in identifier that New Era provides automatically. You can refer
to SELF to make your code more readable when a member has the same name
as an identifier that is declared as in the global or module scope, or
to access a member when a local entity has the same name.


-4022	The reserved keyword "name" cannot be used as a 4GL identifier.

Keywords cannot be used to name a function, report, variable, or
constant. Consult the IBM Informix 4GL Language Reference for a list of
reserved words.


-4023	A class cannot derive from itself.

This CLASS statement asserts that the class is DERIVED FROM itself.
This action is not supported. Either remove the clause, or name another
base class.


-4024	Identifier "name" has multiple declarations with different types.

Multiple declarations of a given name in a given scope must be
consistent (that is, they must have the same type). The identifier that
is shown has been declared with a different type.


-4025	Function "name" is already declared in the class.

A function with the specified name has already been declared in the
current class.


-4026	Member "name" is already defined in base class "class".

A derived class inherits all the members of its base classes. You
cannot add a member that has the same name as a member from the base
class.


-4029	The type of expression on which member "name" is selected is not
an object reference or record.

This statement refers to .name as if name were a member of a record or
of a class. However, the expression that precedes the dot is neither
the name of a record nor a reference to an object. If you think name is
a member of a record, check the definition of the record, and make sure
that its name is correctly spelled immediately preceding the dot. If
you think name is a class member, make sure that the dot is preceded by
an expression that yields a reference to an object of the right class.


-4030	Warning: Cannot further expand an expanded expression.

An expression cannot have multiple .* suffixes.


-4032	Warning: The structure part of the THRU member "name" is ignored.

The statement included a THRU phrase of the following form:

   rec.first THRU rec.last

The correct form is:

   rec.first THRU last

The logic is that first THRU last modifies rec.


-4033	Base member name "name" cannot be used for class name.

This statement attempts to declare a class name, but it also specifies
a DERIVED FROM clause. One of the members that is inherited from that
base class is called name. The name of a class cannot be the same as
the name of one of its members because the constructor function must
use that name. Review the inheritance for this new class, and then
choose a different name for it.


-4034	SQL statements and two-pass reports are not allowed when
compiling with the "-nosql" switch.

The compiler was invoked with the "-nosql" switch, but the source
included either explicit SQL statements or a two-pass report (which
involves SQL statements). Compiling with "-nosql" causes generation of
.c code (instead of .ec code) in which no SQL statements are allowed.


-4035	Function "name" cannot be redefined in a derived
class "class" with different access permissions.

The parent class of the function "name" has an access permission
(PRIVATE, PROTECTED, or PUBLIC) different from this declaration.


-4036	Function "name" cannot be redefined in a derived class
"class" with different scope of reference.

The base class of the function "name" is declared as SHARED and "name"
is not, or "name' is declared as SHARED and its base class is not.


-4037	Multiple declarations of function "name".

Although you can declare multiple distinct versions of a user-defined
function, you cannot do so for functions such as a name that IBM Informix software defines.


-4041	Including "file" again will cause an infinite loop.

This INCLUDEAGAIN statement specifies a file that includes itself. If
you force it to be included, a loop will follow. Make sure that this is
the file you intended to include. Review the contents of the file.


-4042	This form of declaration can only appear in the global (module) scope.

The declaration for identifier::identifier can appear only in the
global scope.


-4043	Illegal EXTERNAL declaration.

This statement tries to declare an EXTERNAL classname::membername. A
program cannot use a global EXTERNAL declaration to declare a shared
member variable. To accomplish this, include the class description of
which it is a SHARED member.


-4044	Member "name" not defined in class "class".

This statement tries to access class::name. However, no such variable
or constant is defined for that class. Check the spelling of the member
name and the class or object name. If the reference is class::name,
review the declaration of the class for the correct spelling of the
member names. If the reference is through an object, make sure that the
object is declared as having the class that you intended.


-4045	Member "name" is defined in class "class", but not as a
variable or constant.

The identifier name is defined in the class, but as something other
than a variable or a constant, such as a member function. Check the
spelling of the member name and the class or object name.


-4046	Formal declaration appeared previously for this informal function
definition.  The formal declaration is invalidated.

A formal declaration for this function appeared previously in this
source module. At this point, a definition in the informal function
syntax appears.


-4047	Mixed informal and formal function declaration syntax.
Return type is ignored.

A function declaration has blended informal (FUNCTION program block)
and formal (FUNCTION prototype) syntax. The parenthesized list of
arguments gave only names, with the types to be defined later in a
VARIABLE statement, but the declaration then continued with a RETURNING
clause, available only in the FUNCTION prototype style of declaration.
Consult the IBM Informix 4GL Reference Manual.


-4048	Driver statements for a report are not allowed within the
body of that report.

This statement defines a record variable and uses initialization
expressions when it declares one or more members. This action is not
supported. You can use an initialization expression only when you
define a simple variable.


-4050	Function "name" has been used and hence declared as informal
before this formal declaration.

A call to this function appears prior to this declaration of it. Calls
to undeclared functions are supported only for compatibility with
previous versions of the 4GL language. When the compiler encountered
the call to the function, it assumed an informal declaration for it.
Move the declaration of the function to the top of the source module so
that it precedes calls to it.


-4051	Member "name" is defined in class "class", but not as a function.

This statement tries to invoke class::member(), either directly or as
object.member(). The class has a member of that name, but it is a
member variable, not a function. Check the spelling of the member name
and the class or object name. Review the declaration of the class for
the correct spelling of its member names.


-4052	Identifier "name" is not defined in the global scope.

A constant or variable is used that is not locally defined, so the
compiler assumes that it is to be globally defined but does not find it
there either.


-4053	Function "name" has already been declared with a different prototype.

The function that is described in this FUNCTION statement has already
been declared, and the previous declaration disagrees with this one in
the number or type of the arguments. Review included files for
declarations of this function, and make those statements consistent.


-4054	Function "name" has already been declared with a different return type.

The function that is described in this FUNCTION statement has already
been declared, and the previous declaration disagrees with this one in
the number or type of returned values. Review included files for
declarations of this function, and make those statements consistent.


-4055	Overriding the constructor of a base class is not allowed.

This FUNCTION declaration in a CLASS statement specifies a function
whose name is the same as the name of a base of this class. In other
words, you are trying to override the constructor function of a base
class. This action is not permitted. Review the names of members that
are inherited by this class, and choose unique names for its member
functions.


-4057	A class cannot be derived from a class with PRIVATE intrinsic functions.

This statement declares a new class with a DERIVED FROM clause.
However, the specified base class has one or more intrinsic functions
(class constructor, function such as !copy()) that are declared
PRIVATE. The intrinsic functions of a base class must be available for
calling from within the same functions of the derived class. Private
members cannot be called so; therefore, you cannot derive a class from
a base class with private intrinsic functions. Make sure that you
specified the correct base class, and review its declaration.


-4058	Symbol with constructor name is not a function.

A class name that is followed by the name of a member variable or
constant is not allowed in this context.


-4059	More actual arguments than formal arguments for function "name".

This statement invokes function name, but it specifies more argument
expressions than were called for in the declaration of function name.
Check the syntax of the argument list. Review the declaration of the
function for the expected number and type of arguments.


-4060	Fewer actual arguments than formal arguments without defaults for
function "name".

This statement invokes function name, but it specifies fewer argument
expressions than were called for in the declaration of function name.
Check the syntax of the argument list. Review the declaration of the
function for the expected number and type of arguments.


-4062	Warning: Informal function "name" returns (or is expected to return)
different number of results at different places.

The function name is called at more than one place in this source
module, and it is implied to return different numbers of arguments.
Possibly this correct; it is possible to write functions that return
different numbers of values in different circumstances. However, you
should check that this is the case and that the expected number of
values will be returned in each case.


-4063	Function "name" should not return any results.

This statement invokes the function "name" in a context that implies it
should return one or more values. However, that function has been
declared earlier in this module without a RETURNING clause or with
RETURNING VOID. Make sure that you have called the function you
intended; then review its declaration.


-4064	Type of returned value does not match the declared return type of
function "name".

The function "name" was not explicitly declared but has already been
called with one prototype, and the current call provides a different
prototype. Make sure that you have called the function you intended.
Then review its earlier call, or create an explicit declaration for
it.


-4065	Multiple exception handlers for the same exception class "name".

Two or more ON EXCEPTION statements exist for the same exception class
in this block. Only one can be invoked. Review the statements, make
sure that each specifies the correct exception class, and remove or
combine duplicate handlers.


-4066	RETURN statement not allowed in the body of intrinsic functions.

This statement is part of the definition of an intrinsic member
function (the class constructor, !copy, and so on). These functions do
not have explicit result values; or more precisely, code that the
compiler automatically generates produces their returned values. Delete
the RETURN statement.


-4067	This RETURN statement must provide a value.

This RETURN statement does not specify a value to return, but the
function was declared with a RETURNING clause that specified other than
VOID. If you want to terminate a function early without producing a
value, you could put a label on the END FUNCTION statement and use a
GOTO, or redesign the function logic to avoid the need for an early
exit.


-4068	Function "class::member" has not been declared as SHARED.

This statement uses the double-colon syntax to invoke a class-member
function. However, the specified member function was not declared as
SHARED. Only shared member functions can be called this way; normal
member functions must be called through a reference to an object
because they need the object reference as the value of their SELF
reference. Check that you have specified the class and member that you
intended; then review the declaration of that class.


-4069	The type of expression on which member function "name" is
called is not a class.

This statement attempts to invoke the specified function using either
the scope resolution (::) operator or the record membership (.)
operator. However, the name to the left of the scope resolution
operator is not the name of a class in which name is a member, or the
name to the left of the record membership operator is not the name of
an object reference of which name is a member. If you intended to call
name through a reference to an object, use object.name syntax.
Otherwise, make sure that you have specified the class and member names
that you intended, and review the declaration of the class.


-4070	Cannot assign to "SELF".

This statement would assign a new value to the implicit function
argument named SELF. Since the value of SELF is used implicitly in any
reference to a member of the self object, assignment to it is not
permitted.


-4071	Cannot assign to constant "name".

This statement would assign a new value to name, but name was declared
(in this scope) with a CONSTANT statement. Constants do not have memory
locations and cannot be assigned new values. Check that name is the
identifier you intended to use. Then review its declaration. Possibly
you want to assign into a module-level variable name, but it has been
declared as a local constant or a member constant that takes precedence
in this context.


-4072	Cannot expand structure with no members.

The statement attempted to perform an expansion, but it failed. The
expansion was of the form object.*, but the object that is named does
not have any public member variables, so the expansion set is empty.
Check that you are referring to the correct class and member.


-4073	Beginning or ending name in THRU specification is not a member
of the target record.

This statement makes a reference to some structure (table, record, or
object) with the qualification "first THRU (or THROUGH) last". However,
first or last does not appear as an element of that aggregate. Check
the spelling of the two names.


-4074	No more than two substring index expressions are allowed.

The substring qualifier consists of a pair of integer expressions,
separated by a comma and surrounded by brackets (example: name[1,23]).
The first value cannot be larger than the second. Both must be positive
and no larger than the string length (or the declared length of the
receiving data type).


-4075	Simple string expressions must have type CHAR or VARCHAR.

The compiler expected a string expression but found an expression that
was neither CHAR nor VARCHAR data type.


-4076	Class of CAST object must be a base of class specified as right
argument.

You cannot cast an object to any class; you can only cast it as being
of a class that is derived from its stated class. In the CAST
expression in this statement, the stated class of the object reference
on the left is not a base class of the class that is named as the right
argument. Review the expression to make sure that you have specified
the object that you intended (possibly you need to use parentheses
around the object reference) and the target class.


-4077	This operation is not valid on an operand of this type.

The operator cannot accept operands of this type. Correct any other
errors that might have been reported, and verify that this operator is
defined for operands of this type. Then compile the program again.


-4078	Operand is missing, or is of a type that is not supported.

The operator has been directed to operate on an invalid type. Perhaps a
function returns VOID, a blob (TEXT or BYTE), or FOREIGN result. IS
NULL and IS NOT NULL operators can operate upon TEXT or BYTE and FOREIGN
operands and can receive assignment from other operands of the same
type or NULL.


-4079	Operation is not allowed in index expressions.

An operation such as expansion (.*), COPY, NEW, or THRU was attempted
in an index expression.


-4080	Warning: Operation on NULL returns NULL.

While the compiler was optimizing expressions, it found an expression
composed of literal values, at least one of which was NULL.


-4081	Warning: A DATETIME expression cannot be negative.

A "-" operator occurred with a DATETIME operand. No negative points
exist in time. INTERVAL can be negative, but DATETIME cannot. Inspect
the syntax of the expression, and revise it to make it greater than or
equal to zero.


-4082	Operands of MATCH and LIKE operations must be of CHAR or VARCHAR type.

This statement uses the MATCH or LIKE operator with an argument
expression that is numeric or binary. No automatic conversion of data
types exists in this case. Examine the expression. If it is written as
you intended, revise it to assign the values to character variables
(thus forcing their conversion to character) before you use them with
MATCH or LIKE.


-4083	Warning: Initialization of external variables will be ignored.

This is only a warning. This statement declares a variable with both
the EXTERNAL keyword and an initialization expression. You can
initialize a variable only at the point where it is defined (that is,
where memory is allocated for it). This is a declaration, not a
definition, so the initialization is ignored.


-4085	Cannot output expression of this type.

The statement attempted to output an expression of a type that cannot
be output, such as FOREIGN, or an expression that includes an
invocation of a function that returns VOID.


-4091	Cannot assign to or refer to an array as a whole. Use
indexing to refer to individual elements.

The compiler attempted to convert the result of one expression to
conform with the type of another expression, and only one of them was
an ARRAY. Either both must be ARRAY type, or neither can be.


-4092	Type mismatch between CLASS and non-CLASS type.

The compiler attempted to convert the result of one expression to
conform with the type of another expression, and only one of them was a
CLASS. Either both must be CLASS type, or neither can be.


-4093	Type mismatch between RECORD and non-RECORD type.

The compiler attempted to convert the result of one expression to
conform with the type of another expression, and only one of them was a
RECORD. Either both must be RECORD type, or neither can be.


-4094	Length of compared CHAR or VARCHAR types is different.

The compiler was attempting to process a comparison between two string
types (such as comparing function signatures), and the two strings had
different bounds.


-4095	Records have different number of fields or fields of incompatible types.

In this multiple-field assignment the values that are being assigned do
not correctly match to the fields in the receiving record or object.
Examine the syntax of the value expression; then review the
declaration of the receiving variable.


-4096	Expression class must be equal to or derived from result class.

The statement attempted to assign a value of one class to an object of
a different class that is not derivable from the former class.


-4097	Multiple declarations for class "name".

This class has been declared previously in the source module (perhaps
in an included file). Only one declaration is allowed. Find all
declarations of the class, and reduce them to one.


-4098	Type of expression that is expanded must be class or record.

This statement refers to name.* (or uses THRU notation); however, the
name it refers to is not declared as a record or as an object of some
class. Check the spelling of the name, and review its declaration.


-4099	Type to CAST to must be a class.

The right argument to the CAST operator in this statement is not the
name of a class. Review the syntax and spelling of the statement. Make
sure that you have included all necessary header files to declare
classes.


-4100	Illegal definition of constant identifier "name".

A name already established as that of a constant identifier has
appeared as a declaration for a new identifier. Suppose, for example,
that maxval has already been declared to be a constant in class x, and
then a later declaration of VARIABLE x::maxval INT occurs.


-4103	The compiler detected an internal error in file "name" at line
number.

Consult your system administrator or contact IBM Technical Support to
report this error.

Note the specified file name and line number. Then report this internal
error.


-4104	The type of a column value does not match the type of a variable.

The INITIALIZE statement cannot establish a match between the type of
the column value and the type of the corresponding variable.


-4106	An expression of type DATETIME is expected.

In an EVENT statement, a function definition or declaration, an
EXTERNAL REPORT statement, a HANDLER statement, a function invocation,
or just an expression, the compiler found something other than a
DATETIME expression.


-4107	An expression of type INTEGER or SMALLINT is expected.

In an EVENT statement, a function definition or declaration, an
EXTERNAL REPORT statement, a HANDLER statement, a function invocation,
or just an expression, the compiler found something other than a
INTEGER or SMALLINT expression.


-4108	An expression of type DATE is expected.

In an EVENT statement, a function definition or declaration, an
EXTERNAL REPORT statement, a HANDLER statement, a function invocation,
or just an expression, the compiler found something other than a DATE
expression.


-4109	An expression of type DATE or DATETIME is expected.

In an EVENT statement, a function definition or declaration, an
EXTERNAL REPORT statement, a HANDLER statement, a function invocation,
or just an expression, the compiler found something other than a DATE
or DATETIME expression.


-4110	You cannot use more than one of the REPORT TO options in the
OUTPUT section of a REPORT routine.

In this OUTPUT section, the statement REPORT TO appears more than
once. Only one such specification is allowed. Remove all but one.


-4111	Warning: The function name is declared informally. For stronger
type checking, use a function defined formally.

The compiler detected that function name is an informal function.
Possibly the function returned a different number of arguments in
different circumstances, or the function has no prototype
declaration. Although nothing is wrong with defining a function this
way, informal functions are more prone to errors at runtime. It is
recommended that you use formal function declarations (along with
function prototypes) that are less error-prone and that the compiler
checks more rigorously.


-4117	A constant expression is expected here.

At least one of the values in one of the constant expressions in this
CONSTANT statement cannot be evaluated at compile time. See the information on
constant expressions in the IBM Informix 4GL Reference Manual for
information on what types of operations can be used in constant
expressions.


-4118	Expressions of this data type are not allowed in constant expressions.

The indicated expression cannot be evaluated to a constant. Correct any
other errors that might have been reported against this expression, and
recompile.


-4119	Time-dependent functions must be used with the function
CONSTANT() in constant expressions.

One of the constant expressions in this CONSTANT statement refers to
function such as CURRENT, whose value depends on the current time. Such
functions have to be written as arguments to the CONSTANT() function,
which returns their value as of the time of compilation. (You cannot
use the time of execution in a constant value.)


-4120	Declare variable "name" either external or local to module,
but not both.

The specified variable has been declared or defined more than once. At
least one of those times declared it with EXTERNAL, and another was a
definition as a module variable (lacking either EXTERNAL or GLOBAL).
Review the declarations and definitions of name, recalling that some of
them might be in included files. If you intend name as a variable
private to this module, give it a unique name. (You can declare a
variable as EXTERNAL more than once, and you can declare it as EXTERNAL
and then define it as GLOBAL. Both of these things can happen as a
result of including header files, and they have well-defined meanings.
But it is contradictory to have a variable that is both external and
local to the module.)


-4121	Reports cannot be invoked through the CALL statement or in function
call expressions.

This statement attempts to call a report as if it were a function.
Although a report has the general form of a function definition, it
cannot be used like one. Check the names of functions that are called
in this statement; one is a report. If you meant to send a row of data
to the report, use the OUTPUT TO REPORT statement.


-4122	Parser limitations have been exceeded. Try to reduce complexity or
size of module.

The parser has returned an error that is NOT a syntax error. This error
could be caused by a parser-stack overflow (too many levels of nesting
within IF statements, WHILE statements, or the like) or by the parser
running out of parser-stack space (the module is too large). Try to
reduce the complexity of the code by splitting complex functions into
multiple functions or splitting the module into multiple modules.


-4123	CALL to function "name" must have a RETURNING clause.

The function name is declared as returning a result, so the CALL
statement must provide a RETURNING clause to receive the result.


-4125	Not defined/declared as a member in the class hierarchy "name".

The element indicated is either not declared, or is declared but not
defined, as a member of the class hierarchy "name."


-4126	Handler expected.

The identifier in the WITH clause of the HANDLE statement does not
identify a handler. If the identifier of the handler specifies a class,
check to see that the handler is declared as belonging to that class;
otherwise, check to see that it is declared as belonging to the
declared class of the target object.


-4127	Event expected.

The identifier before the WITH clause of the HANDLE statement does not
identify an event. The event must be declared in or inherited by the
declared class of the target object (which can be the SELF object).


-4128	Handler should be a member of either the same class, or else
a base class, of the object.

The indicated handler is declared in the program but is not a member of
same class as the object or of a base class from which the object is
derived.


-4129	Object name expected.

In the HANDLE statement, the event was prefixed with a "name." qualifier,
but the name is not that of a known object.


-4130	Handler can't be invoked directly.

A handler cannot be the object of an explicit CALL statement. The only
way to invoke a handler is through calling or posting the event to
which the handler has been assigned by a HANDLE statement.


-4131	No implied object for this non-shared function call ("SELF" is
not defined in this context).

No object reference has been supplied for this member function call. If
the member function call was made inside a member function, "self"
would be the implied object reference. This call was made in a
nonmember function body, so there is no implied object reference.


-4132	Incorrect base class name in base clause.

The program has declared a base class and has declared another class as
DERIVED FROM that base class. In the definition of the constructor for
the derived class, a base constructor clause specifies a call to a
function that is NOT the base class constructor. Suppose a derived
class is called "bread" and its base class is called "food"; if the
constructor for loaf should have a definition that begins FUNCTION
bread::bread(args1):food(args1). If it begins FUNCTION
bread::bread(args1):beverage(args1), the error message appears.


-4133	Only events can be posted.

A POST statement specified something other than event. Member
functions, handlers, and reports cannot be posted.


-4134	Class qualification not allowed when invoking an event.

The program specified a class name followed by a scope resolution
operator (::) and the name of an event. Replace the class name with the
name of the appropriate object.


-4135	Only shared class variables can be defined outside class declaration.

A class variable described as SHARED cannot be defined outside the
class declaration. The variable definition indicated is completing the
definition of a variable already described without a SHARED qualifier
in a class declaration.


-4136	Intrinsic function name() has wrong signature.

The correct signature for a !copy() function is FUNCTION !copy (obj
this_class), having one parameter whose type is an object of the
containing class. The correct signature for a !derive() function has no
arguments, only a pair of parentheses.


-4137	Embedded C code is allowed in compiled-4GL programs only.

A BEGIN_C and END_C block can be included only in compiled NewEra
programs. It is not valid in a interpreted (p-code) NewEra program.


-4138	Arrays of CHAR(*) are not allowed.

ARRAY [ ] OF CHAR(*) is not a valid type.


-4139	The constant "name" cannot be used within its own definition.

A constant cannot be used until it is defined. Therefore, a constant
cannot be used in its own definition.


-4140	Compiler cannot continue.

This error is output if an unrecoverable error occurs in the compiler
(that is, SEG VIO, BUS ERROR). This situation could occur if the user
terminated the compilation explicitly. Otherwise, if the error recurs,
note all circumstances and contact IBM Technical Support.


-4141	Unknown 4GL compiler flag "name" will be ignored.

This error occurs when the user invokes components of the NewEra
product directly, instead of through standard interfaces. The
executable fglc or fglp has been passed a compiler switch that is not
understood.


-4142	Functions called in the WHENEVER statement cannot require parameters.

The WHENEVER statement in the program has the form WHENEVER condition
CALL function, and the function being called is declared to have
parameters. The function call in this context cannot even have
parentheses, let alone arguments. Note that main has implicit
parameters, so it cannot be used in this form of the WHENEVER
statement.


-4143	Functions called in the WHENEVER statement cannot return values.

The WHENEVER statement in the program has the form WHENEVER condition
CALL function, and the function that is being called is declared with a
RETURNING clause. The function call in this context cannot return any
values.


-4144	A grammatical error has been found in an INCLUDEd file.  The
construct is not understandable in its context.

This general message shows an inability to parse a NewEra statement
from a file summoned by an INCLUDE statement. Start at the point where
the error was issued, and work backward in the program looking for
other error messages, and for missing punctuation, missing END
statements, and other mistakes. Often, a missing END IF is the culprit.
If the cause for this error is not obvious, concentrate on eliminating
any other, more specific error messages, and this one will probably go
away also.


-4145	Too many errors, compiler will quit.

Too many compiler errors have been detected. The compiler reports the
errors it has found to this point and quits.


-4146	Too many input files specified.

The executables fglc and fglp allow only 1 input file.


-4147	A RETURN statement is required in this function.

The function was declared with a RETURNING clause that specified other
than VOID, but no RETURN statement occurs in the body of the function.


-4148	CHAR (*) type is not allowed in SQL statements.

The CHAR(*) type is not allowed as an SQL type. It cannot be used in
CREATE TABLE, ALTER TABLE, and so on.


-4149	Expressions of this type are not allowed in SQL statements.

An identifier that is mentioned in an SQL statement is of a type such
as FOREIGN, or it names an object (a member of a class) or a record.


-4150	First parameter must be an ixRow object.

For calls to the built-in functions packrow() and unpackrow(), the
first argument must be of type ixRow.


-4151	Constructor cannot be called directly.

A constructor cannot be called directly using the CALL statement or as
the function in a function call expression. The constructor should be
invoked indirectly using the NEW operator.


-4152	Invalid begin or end name for THROUGH expression.

Invalid expressions have been used in a THROUGH expression in an SQL
statement.


-4153	Warning: The constant expression with the USING clause has been
evaluated based on the values of the environment variables at compile time.

This warning is generated when a value for a CONSTANT contains a USING
clause. The settings for environment variables DBFORMAT and DBMONEY can
affect the result of the USING operation. This warning reminds the user
that the USING clause in the CONSTANT statement will be evaluated at
compile time and might not be consistent with other USING clauses that
are evaluated at runtime.


-4154	The maximum size allowed for a constant of type CHAR or VARCHAR
is 255.

In a CONSTANT declaration or definition, the size of a character type
constant (CHAR or VARCHAR) cannot exceed 255.


-4155	Warning: Only static cursor names are allowed in the WHERE CURRENT OF
clause. Cursor name will be processed as a static cursor name.

In the UPDATE and DELETE statements, the WHERE CURRENT OF cursor-name
clause cannot cite a cursor name that has been declared as dynamic.


-4156	Warning: The loop counter may overflow.

This warning can occur for a FOR statement when the upper limit of the
FOR loop is within the STEP value of the maximum value of that type. As
an example, suppose the FOR statement tried to run IX from 1 to 32760
with a step of 20, and IX was declared as SMALLINT; the compiler would
issue the warning because IX would overflow without satisfying the loop
termination condition.


-4157	The statement is too complex. Try to simplify it.

This error occurs if a stack overflow is detected during compilation.
Under Windows, the stack size is limited. Try to reduce the complexity
of your code. Complex expressions, such as many string concatenations
('||'), can consume a large portion of the stack.


-4158	IBM Informix FORM and WINDOW statements are not supported in this
product. Use the Visual Class Library for screen interaction.

The compiler encountered an OPEN FORM or OPEN WINDOW statement. In
NewEra, these functionalities are handled through Visual Class Library
objects. Consult the Graphical and Connectivity Reference Manual. Other
grammatical errors might be generated in addition to this one.
Replacing the offending statements with VCL calls and recompiling
should eliminate the additional messages.


-4159	Subscripting cannot be applied to the expression because it is
not a character or array reference.

The expression cannot be qualified by a subscript because the
expression is neither an ARRAY nor CHAR() type.


-4160	This expression cannot be used as the target of an assignment statement.

An illegal assignment was detected. For example, you declared abc to be
a constant, but here you attempted to assign a value to it. Some
statements that involve assignment: LET, SELECT...INTO, OPEN
CURSOR...INTO, FETCH INTO, FOREACH...INTO, FOR iterator (the iterator
is assigned values), INITIALIZE, and LOCATE. Only NewEra returns this
error.


-4161	This variable has not been defined as a record or object.

The variable indicated has been used with an asterisk or with the THRU
or THROUGH keywords. However, it has not been defined as a record or an
object. Check the spelling of the name. If it is as you intended,
locate the definition of the variable, and find out why it was not
defined as expected. Only NewEra returns this error.


-4162	Values cannot be RETURNed from within reports.

A report cannot include a RETURN statement because that would return
control to the routine that invoked the report.


-4163	Intrinsic function "name" of class "class" cannot be called directly.

Constructors of the form classname::classname() are invoked through the
NEW operator. The classname::!copy() is invoked through the COPY
operator. The classname::!derive() is invoked through the AS clause in
both the NEW and the COPY operator. Only NewEra returns this error.


-4164	The variable is too complex a type to be used in an assignment
statement.

The type of the variable cannot be used in an assignment.That is, you
cannot assign a value (except for the nonvalue NULL) to a BYTE or TEXT
variable. You cannot assign any value to an ARRAY variable.


-4167	The PRAGMA LOCATION statement should be the last statement on the line.

No other NewEra statement can follow PRAGMA LOCATION on the same line.
If your source file includes any other NewEra statement or compiler
directive after PRAGMA LOCATION, insert a linefeed character
immediately following the end of the PRAGMA LOCATION compiler
directive. (The last specification of PRAGMA LOCATION must be a line
number, a filename, or the keyword RESET.)


-4168	An unexpected character was detected in this NewEra name.

A multibyte character (or other non-ASCII character that supports the
locale) was found in the name of a NewEra identifier. For this release
of NewEra, multibyte characters and other locale-specific characters
are not valid in NewEra identifiers.


-4169	Error loading locale.

A failure occurred in trying to load the CLIENT_LOCALE locale file.
Verify that the specified files exist, that these files have
appropriate permissions set, and that sufficient space is available in
which to load them.


-4200	Write error -- out of disk space.

The compiler failed to write some information to the output file
because it ran out of disk space.


-4201	Write error. Check available disk space and ulimit.

The compiler failed to write some information to the output file, but
the cause of the error was not reliably determined. This usually means
that the ulimit was exceeded, but possibly the error was detected too
late for the auxiliary information to be accurate, or other errors have
occurred since.


-4202	The compilation was not successful. Errors found: n.  The file
filename was not written successfully either.

The compiler failed to produce the output file because of errors and it
also failed to produce the error file. Probably not enough disk space
was available.


-4203	The compilation was successful, with n warnings. The file filename
was not written successfully.

The compiler produced the output file. It also detected some warnings,
and it failed to produce the error file as well. Probably not enough
disk space was available.


-4300	This statement contains too many levels of function call nesting.

This statement has calls to functions that are nested within the
parameter lists of other function calls, to a level exceeding four. The
maximum level supported is four, as in the following expression:
Afun(2-Bfun(3+Cfun(4*Dfun(5)))).

Rewrite the expression to store the result of the innermost function
calls in a variable, and use the variable in the expression.


-4301	The program has too many levels of WHILE, FOR, MENU, and/or
CASE statements.

You can only nest CASE, FOR, MENU, and WHILE statements (in any combination)
to a depth of 25. Rearrange the program so that the nesting depth does not
exceed 25, for example, by moving some of the inner structures to a separate
module or isolating them in a function.


-4302	The record description is nested too deep.

Rewrite the record definition so that it does not exceed the limit of five nested levels of records.


-4303	A blob variable or cursor name expected.

The argument to the FREE statement must be the name of a cursor or
prepared statement or, in 4GL, the name of a variable with the BYTE
or TEXT data type.


-4304	A different database has already been declared. If your program
uses a global definition file, it must contain the same database name
as this one.

This module contains a non-procedural DATABASE statement and also uses the GLOBALS filename statement to
include a global definitions file. In that file there is a DATABASE statement that names a
different database. Change either the module or the global
definitions file so they name the same database.

-4305	The database "name" cannot be found or opened. If the database
exists, check the database permissions on the database. In addition,
check the system permissions on the database directory and its
ascendant directories.

Check the spelling of the database name. Check that the database
name exists in your current directory or in a directory included in
your DBPATH environment variable. If the database is in a different
directory, make sure that you have the ability to read that directory
(to test this, make it the current directory and list the names of files
in it). If these items are correct, make sure that you have at least
CONNECT privilege for the database.


-4306	The GLOBALS file "pathname" cannot be opened for reading.

The file specified in the GLOBALS statement cannot be opened.
Check that the file exists and that you can read it, for example, by
displaying it with an operating system command. If these items are
correct, double-check the spelling of the pathname. If the file is not in
the current directory, give the complete path.


-4307	The number of variables and/or constants in the display list does
not match the number of form fields in the display destination.

There must be exactly as many items in the list of values to display
as there are fields listed following the TO keyword.


-4308	The number of input variables does not match the number of form
fields in the screen input list.

Your INPUT statement must specify the same number of variables as
it does fields. When checking this, keep in mind that when you refer
to a record using an asterisk or THRU, it is the same as listing
each record component individually.


-4309	Printing cannot be done within a loop or CASE statement contained
in report headers or trailers.

4GL needs to know how many lines of space will be devoted to page
headers and trailers; otherwise, it does not know how many detail rows
to allow on a page. Since it cannot predict how many times a loop will
be executed, or which branch of a CASE will be execute, it forbids the
use of PRINT in these contexts within FIRST PAGE HEADER, PAGE HEADER,
and PAGE TRAILER sections. You have to rearrange the code to place the
PRINT statement where it will always be executed.


-4310	Files cannot be printed within report headers or trailers.

4GL needs to know how many lines of space will be devoted to page
headers and trailers; otherwise, it does not know how many detail rows
to allow on a page. Since it cannot predict how many lines are in a
file, it forbids printing a file in a header or trailer. You can write
PRINT statements in the control blocks for FIRST PAGE HEADER, PAGE
HEADER, and PAGE TRAILER. However, you cannot write PRINT FILE
statements in these control blocks.


-4311	The variable "variable-name" was not defined as a record. 
        It cannot be used in this fashion.

The variable name that is shown is being used with THRU (or THROUGH)
notation or with .* notation, but is not defined as a record. 
Check that the variable name is the one that you intended. If it is,
find the place where it is defined (which may be in a global
definition file included with the GLOBALS statement) and find out
why it is no longer defined as a record.


-4312	The NEED statement is allowed only within reports.

The NEED n LINES statement is used in a report to cause a conditional
page skip. This is only relevant in the context of the FORMAT section
of a report. Check to see if a REPORT statement has been omitted.


-4313	The NEED statement cannot be used within report headers or trailers.

The NEED n LINES statement is used in a a report to cause a conditional
page skip. In the context of a FIRST PAGE HEADER, PAGE HEADER, and PAGE
TRAILER section, however, it is irrelevant. If it did cause a page
skip, an endless loop could ensue.


-4314	The program cannot continue or exit a menu at this point because
it is  not within a MENU statement.

This CONTINUE or EXIT statement uses the MENU keyword, but it is not
located within a COMMAND section of a MENU statement. Either the
statement is in error, or some other error has prevented 4GL from
recognizing the MENU statement.


-4315	The program cannot exit a FOREACH statement at this point because
it is not within a FOREACH statement.

This CONTINUE or EXIT statement uses the FOREACH keyword, but it is not
located within a FOREACH loop. Either the statement is in error, or
some other error has prevented 4GL from recognizing the FOREACH
statement.


-4316	The program cannot exit a WHILE statement at this point because
it is not within a WHILE statement.

This CONTINUE or EXIT statement uses the WHILE keyword, but it is not
located within a WHILE loop. Either the statement is in error, or some
other error has prevented 4GL from recognizing the WHILE statement.


-4317	The program cannot exit a FOR statement at this point because
it is not within a FOR statement.

This CONTINUE or EXIT statement uses the FOR keyword, but it is not
located within a FOR loop. Either the statement is in error, or some
other error has prevented 4GL from recognizing the FOR statement.


-4318	The program cannot exit a CASE statement at this point because
it is not within a CASE statement.

This CONTINUE or EXIT statement uses the CASE keyword, but it is not
located within a CASE statement. Either the statement is in error, or
some other error has prevented 4GL from recognizing the CASE
statement.


-4319	The symbol variable-name has been defined more than once.

The variable that is shown has appeared in at least one other DEFINE
statement before this one. If this DEFINE is within a function or the
MAIN section, the prior one is also. If this DEFINE is outside any
function, the prior one is also outside any function; however, it might
be within the file included by the GLOBALS statement.


-4320	The symbol table-name is not the name of a table in the specified
database.

The named table does not appear in the database that is named in the
latest DATABASE statement. It may be spelled wrong in the program, or
the table might have been dropped or renamed since the last time the
program was compiled.


-4321	An array may have the maximum of three dimensions.

You have written more than three subscripts following the name of an
array. However, 4GL only supports arrays of three dimensions or fewer.
Check the syntax of the subscript; an extra comma might have been
entered in error.


-4322	The symbol column-name is not the name of a column in the specified
database.

The preceding statement suggests that the named column is part of a
certain table in the database that is in the last DATABASE statement.
The table exists, but the column does not appear in it. Check the
spelling of the column name. If it is spelled as you intended, then
either the table has been altered, or the column renamed, or you are
not accessing the database you expected.


-4323	The variable variable-name is too complex a type to be used in an
assignment statement.

The named variable is a record or an array. 4GL does not support the
assignment of whole records or arrays. In the case of a record, you
must assign the individual record components, or you can assign groups
of components to groups of components using asterisk notation. In the
case of an array, you must use a subscript to designate a single array
element. This error is not produced by any version of 4GL later than
Version 4.1.


-4324	The variable variable-name is not a character type, and cannot
be used to contain the result of concatenation.

This statement attempts to concatenate two or more character strings
(using the comma as the concatenation operator) and assign the result
to the named variable. Unfortunately, it is not a character variable.
4GL will not perform automatic conversion from characters in this case.
Assign the concatenated string to a character variable; then, if you
want to treat the result as numeric, assign the string as a whole to a
numeric variable.


-4325	The source and destination records in this record assignment
statement are not compatible in types and/or lengths.

This statement uses asterisk notation to assign all components of one
record to the corresponding components of another. However, the
components do not correspond. Note that 4GL matches record components
strictly by position, the first to the first, second to second, and so
on; it does not match them by name. If the source and destination
records do not have the same number and type of components, you will
have to write a simple assignment statement for each component.


-4326	A NULL value may not be applied to substrings.

The value NULL is a whole value that is relevant to complete variables
only. You can assign NULL to the name of this variable (omitting the
substring notation) to make the entire variable contain the null
string. Alternatively, you can assign spaces to a substring to make it
blank. The only way to delete a portion of a string is to write an
expression that extracts the leading and trailing substrings that are
to be retained and concatenates them.


-4327	The variable variable-name is not of type INTEGER or SMALLINT. It
cannot be used as a loop index.

The index variable in a FOR loop must be an integer type. Specify a
different variable, or redefine the one named.


-4328	The variable variable-name has too complex a type to be used
as the destination of a return from a function.

The named variable is a record or an array. Only simple variables can
be returned by a function, although the function can return a list of
simple variables. In the case of a record, you can use the asterisk or
THRU notation as shorthand to specify a list of components.


-4329	The variable variable-name is not a record. Only record variables
may be expanded using the .* or THROUGH shorthand.

You have used the displayed name with either dot-asterisk (.*) or the
word THRU (or THROUGH), which is shorthand notation to specify a list
of the components of a record. Unfortunately, the variable is not
defined as a record. Make sure that you specified the right variable
and that it is defined as a record.


-4330	Values cannot be RETURNed from the MAIN program.

Although RETURN is equivalent to EXIT PROGRAM in a MAIN program, it
cannot include a value to be returned. NewEra programs return this
error.


-4331	Only variables of type INTEGER or SMALLINT may be used to
index display fields

This statement uses a subscript to refer to one element of a screen
array. However, the subscript variable is not an integer type. Make
sure that the subscripting variable is the one you intended to use,
and make sure it is defined as INTEGER or SMALLINT.


-4332	The LET statement must have at least one source expression.

This LET statement has no valid expression to the right of the equals
sign. Check the punctuation; perhaps part of the statement was
deleted in error, or perhaps a comment delimiter has been inserted
in the wrong place.


-4333	The name has already been called with a different number of parameters.

Earlier in the program, there is a call to this same function or event
with a different number of parameters in the parameter list. At least
one of these calls must be in error. Examine the FUNCTION or EVENT
statement for name to find out the correct number of parameters. Then
examine all calls to it, and make sure that they are written correctly.
When this error appears near the top of a function in conjunction with
error -4336, fix error -4336 first, and -4333 will usually disappear.
NewEra programs return this error.


-4334	The variable variable-name in its current form is too complex
to be used in this statement.

By "too complex" 4GL means "has too many component parts." In this
statement, only simple variables (those that have a single component)
can be used. If variable-name is an array, you must provide a subscript
to select just one element. If it is a record, you must choose just one
of its components. (However, if this statement permits a list of
variables, as in the INITIALIZE statement, you can use asterisk or THRU
notation to convert a record name into a list of components.)


-4335	The symbol field is not an element of the record record.

This statement refers to record.field. Although the variable record is
indeed a record, field is not the name of one of its component fields.
Find the definition of record (it may be in the GLOBALS file), verify
the names of its fields, and correct the spelling of field.


-4336	The parameter variable-name has not been defined within the
function or report.

The name variable-name appears in the parameter list of the FUNCTION
statement for this function. However, it does not appear in a DEFINE
statement within the function. All parameters must be defined in their
function before use. Possibly you wrote a DEFINE statement but did not
spell variable-name the same way in both places.


-4338	The symbol variable-name has already been defined once as a parameter.

The name that is shown appears in the parameter list of the FUNCTION
statement and in at least two DEFINE statements within the function
body. Only one appearance in a DEFINE statement is permitted.


-4339	4GL has run out of data space memory.

Your 4GL program requires more memory than is available.
If your program was executing sucessfully prior to this 
message, examine your code to see if FREE, CLOSE FORM, 
CLOSE WINDOW, or other 4GL statements can release memory 
used by 4GL program objects that are no longer needed.

If your program was using a shared memory connection, try 
setting INFORMIXSHMBASE to a larger value.  Alternatively, 
use a streams (olipcstr) or network (oltlitcp) connection.  
 
If you receive this message during compilation, a .4gl 
source module might be too large to compile. Divide it 
into smaller modules, and compile them separately. If the 
error persists, divide the 4GL program into smaller programs.


-4340	The variable variable-name is too complex a type to be used in an
expression.

By "too complex," NewEra means "has too many component parts." In an
expression, only simple variables (those that have a single component)
can be used. If the variable indicated is an array, you must provide a
subscript to select just one element. If it is a record or object, you
must choose just one of its components. NewEra programs return this
error.


-4341	Aggregate functions are only allowed in reports and SELECT statements.

Aggregate functions such as SUM, AVG, and MAX can only appear in SQL
statements and within certain statements you use in the context of a
report body. They are not supported in ordinary expressions in program
statements. You might be able to write an application-specific
function to form this aggregate function on your data; however, you
must name it something else because names such as SUM, AVG, and MAX are
reserved words.


-4342	PAGENO and LINENO are allowed only in reports.

These functions are only relevant in the body of a report function (one
following a REPORT statement). Only within the report-generating code
is the idea of a current page or line meaningful. You can make these
values available outside a report through global variables. For
example, you could put a statement such as this one in the PAGE HEADER
control block:

LET CURR_PAGE = PAGENO

This would assign the current page to a global variable (called
CURR_PAGE in the example) that could be tested by code outside the
report function.


-4343	Subscripting cannot be applied to the expression because it
is not a character or array reference.

You can write subscript expressions (integer-valued expressions
separated by commas and enclosed in square brackets) following an
expression that evaluates to an array. You can specify a substring (two
integer expressions in square brackets) following a character
expression. However, in this statement, expressions in square brackets
follow something that is neither character nor an array. Review the
punctuation of the statement and the declaration of the variables in
it. Error -4343 with this text is produced by 4GL through Version 4.1.


-4343	Subscripting cannot be applied to the variable
variable-name because it is not a character or array variable.

You can write a subscript expression (one, two, or three numbers in
square brackets) following the name of an array variable. You can write
a substring expression (two numbers in square brackets) following the
name of a variable of data type CHAR or VARCHAR. However, variable-name
is none of those things. Either it is not the variable you intended, or
it is not correctly defined. Error -4343 with this text is produced by
4GL through Version 4.1.


-4344	The variable variable-name cannot be used with substrings
because it is not a character variable.

This statement contains what appears to be a substring expression (two
numbers in square brackets) following the identifier shown. However,
that variable is not of data type CHAR or VARCHAR. If you intended this
variable as a substring, then you either named the wrong variable, or
the variable is not correctly defined. If you meant this as an array
subscript, the same is true.


-4345	The variable variable-name has already had substrings applied to it.

The name that is shown is followed by one substring expression (two
numbers in square brackets) and then by another. This is not valid.
Perhaps some punctuation was deleted accidentally in editing the name
of another variable. Or if you meant this to be a subscript of a
two-dimensional array of character items followed by a substring of the
chosen element, the problem is that variable-name has not been defined
as an array.


-4346	Subscripts can contain only INTEGER or SMALLINT expressions.

Array subscripts are integer values, and only integer variables can be
used to form them. This statement contains a subscript in which a
FLOAT, CHAR or some other type of variable is used. No automatic
conversion of data types is performed in a subscript expression. Review
the subscript expressions in the statement; perhaps you simply entered
the wrong variable name. If not, you will have to revise the program to
store array subscripts in integer variables only (you might expect that
a DECIMAL value with a scale factor of zero would be permitted also,
but this is not the case.)


-4347	The variable variable-name is not a record. It cannot
reference record elements.

In this statement variable-name appears followed by a dot, followed by
another name. This is the way you would refer to a component of a
record variable; however, variable-name is not defined as a record.
Either you have written the name of the wrong variable, or else
variable-name is not defined the way you intended.


-4348	This type of aggregate must be applied to an expression,
not '*'. Only PERCENT and COUNT aggregates use '*'.

An aggregate function in this statement is one of those, such as MIN
and SUM, that must be applied to a specific column or to an expression
involving specific columns. The asterisk notation in an SQL statement
means "the whole row." With an aggregate function, it is useful only
when counting entire rows.


-4349	The PERCENT and COUNT report aggregates cannot be used with an
expression.

These aggregate functions simply count entire rows, without regard for
the contents of the rows. COUNT returns a count of the rows, and
PERCENT returns the count of rows as a percentage of the entire table.
The only permitted parameters of these functions '*' mean "the entire
row." They cannot be applied to specific columns or to expressions that
involve specific columns.


-4350	The program cannot continue a FOR loop at this time because
it is not within a FOR loop.

A CONTINUE FOR statement is not between a FOR statement and its
matching END FOR statement. Perhaps the FOR statement has been
accidentally deleted, or perhaps you changed to another type of loop
such as FOREACH or WHILE.


-4351	The program cannot continue a WHILE loop at this time because
it is not within a WHILE loop.

A CONTINUE WHILE statement is not between a WHILE statement and its
matching END WHILE statement. Perhaps the WHILE statement has been
accidentally deleted, or perhaps you changed to another type of loop
such as FOREACH or FOR.


-4352	The program cannot continue a FOREACH loop at this time because
it is not within a FOREACH loop.

A CONTINUE FOREACH statement is not between a FOREACH statement and its
matching END FOREACH statement. Perhaps the FOREACH statement has been
accidentally deleted, or perhaps you changed to another type of loop
such as WHILE or FOR.


-4353	The type of this ORDER BY or GROUP item specified for the
report is not valid for sorting.

The database server does not support comparison functions on columns of
such types as TEXT or BYTE. As a result, columns with such types cannot
be used to order or group rows. Use other columns (usually the primary
key of the table) for ordering and grouping.


-4354	Aggregate functions cannot be performed with TEXT or BYTE variables.

This statement applies an aggregate function such as SUM to a variable
that is defined as BYTE or TEXT. Such variables are not in the domain
of the aggregate functions. Review the use of functions in the
statement, and make sure that they are applied to the variables you
intended.


-4356	A page header has already been specified within this report.

Only one PAGE HEADER control block is allowed in a report. The
statements in this control block must be suitable for all pages of the
report (except the very first page, for which you may write a FIRST
PAGE HEADER block). Find the other PAGE HEADER control blocks, and
combine all their statements into one control block.


-4357	A page trailer has already been specified within this report.

Only one PAGE TRAILER control block is allowed in a report. The
statements in this control block must be suitable for all pages of the
report. Find the other PAGE TRAILER control blocks, and combine all
their statements into one control block.


-4358	A first page header has already been specified within this report.

Only one FIRST PAGE HEADER control block is allowed in a report. (After
all, only one first page exists.) Find the other FIRST PAGE HEADER
control blocks, and combine all their statements into one control
block.


-4359	An ON EVERY ROW clause has already been specified within
this report.

Only one ON EVERY ROW control block is permitted in a report. Find the
other ON EVERY ROW control blocks, and combine their statements into
one block.


-4360	An ON LAST ROW clause has already been specified within
this report.

Only one ON LAST ROW control block is permitted in a report. Find the
other ON LAST ROW control blocks, and combine their statements into
one block.


-4361	Group aggregates can occur only in AFTER GROUP clauses.

The aggregate functions that apply to a group of rows (GROUP COUNT,
GROUP PERCENT, GROUP SUM, GROUP AVG, GROUP MIN, and GROUP MAX) can only
be used at the point in the report when a complete group has been
processed, namely, in the AFTER GROUP control block. Make sure that the
AFTER GROUP statement exists and was recognized. If you need the value
of a group aggregate at another time (for instance, in a PAGE TRAILER
control block), you can save it in a global variable with a LET
statement in the AFTER GROUP control block.


-4362	The report cannot skip to the top of page while in a header or trailer.

When SKIP TO TOP OF PAGE is executed, the page trailer clause must be
executed (so as to display fixed page-end material) followed by the
page header clause. If the statement was allowed in a header or trailer
clause, an infinite loop could ensue.


-4363	The report cannot skip lines while in a loop within a header or trailer.

4GL needs to know how many lines of space will be devoted to the page
header and trailer (otherwise it does not know how many detail rows to
allow on the page). It cannot predict how many times a loop will be
executed, so it has to forbid the use of SKIP statements in loops in
the PAGE HEADER, PAGE TRAILER, and FIRST PAGE HEADER sections.


-4364	Type of initialization/default expression does not match
declared type of the variable/parameter.

The initialization expression for the specified variable does not
evaluate to a data type that is compatible with the declared type.
Review the expression, and make it and the declared type agree.


-4365	Deferments of interrupt or quit may be executed only in the main
program.

The statements DEFER INTERRUPT and DEFER QUIT can only appear in the
MAIN section of the program. They can appear only once each in a
program.


-4366	The number of variables does not match the number of database
columns in this statement.

There must be a program variable to receive data from or supply data to
each column named in the statement. Possibly there is an ambiguity
between column names and variable names. When a program variable has
the same name as a database column, you can force 4GL to use the
database column by prefixing it with the at-sign (@) character or with
its tablename.


-4367	Interrupt has already been deferred once in the main program.
Each main program may defer interrupts only once.

The statements DEFER INTERRUPT and DEFER QUIT can only appear in the
MAIN section of the program. They can appear only once each in a
program.


-4368	Quit has already been deferred once in the main program. Each main
program may defer quit only once.

The statements DEFER INTERRUPT and DEFER QUIT can only appear in the
MAIN section of the program. They can appear only once each in a
program.


-4369	The symbol variable-name does not represent a defined variable.

The name shown appears where a variable would be expected, but it does
not match any variable name in a DEFINE statement that applies to this
context. Check the spelling of the name. If it is the name you
intended, look back and find out why it has not yet been defined.
Possibly the GLOBALS statement has been omitted from this source
module, or it names an incorrect file. Possibly this code has been
copied from another module or another function, but the DEFINE
statement was not copied also.


-4370	The variable variable-name cannot be used in validation.

The VALIDATE statement operates on only simple variables; it cannot
accept records or arrays. If you have named a record, you can use
asterisk notation or THRU notation as shorthand for a list of the
component fields of the record. However, if a record component is
itself a record, you must list its components individually as well.


-4371	Cursors must be uniquely declared within one program module.

In the statement DECLARE cname CURSOR, the identifier cname can be used
in only one DECLARE statement in the source file. This is true even
when the DECLARE statement appears inside a function. Although a
program variable made with the DEFINE statement is local to the
function, a cursor within a function is still global to the whole
module.


-4372	The cursor cursor-name has not yet been declared in this program
module. It must be declared before it can be used.

The name shown appears where the name of a declared cursor or a
prepared statement is expected; however, no cursor (or statement) of
that name has been declared (or prepared) to this point in the program.
Check the spelling of the name. If it is the name you intended, look
back in the program to see why it has not been declared. Possibly the
DECLARE statement appears in a GLOBALS file that was not included.


-4373	A grammatical error has been found on line line-number, character
char-number. The construct is not understandable in its context.

This general message shows an inability to parse a 4GL statement. The
line and character numbers show the point at which the parser detected
a problem. However, this is almost never the point at which the error
exists. Start there, and work backward in the program looking for
other error messages and for missing punctuation, missing END
statements, and other mistakes. If the statement at line-number is END
FUNCTION, END MAIN, or END REPORT, one probable cause is the absence of
another END, possibly many lines earlier. Usually a missing END IF is
the culprit. If the cause for this error is not obvious, concentrate on
eliminating any other, more specific error messages, and this one will
probably go away also.


-4374	This type of statement can only be used within a MENU statement.

This statement, for example a SHOW OPTION statement, only makes sense
within the context of a MENU statement. Review the program in this
vicinity to see if an END MENU statement has been misplaced. If you
intended to set up the appearance of a menu before displaying it, use a
BEFORE MENU block within the scope of the MENU.


-4375	The page length is too short to cover the specified page
header and trailer lengths.

Examine the statements in the OUTPUT section and in any HEADER and
TRAILER clauses. The total of lines used by these statements must be
sufficiently less than the specified page length that some detail rows
can be printed.


-4376	The temporary file filename cannot be created for writing.

Check that your account, on UNIX systems, has permission to create
files in the /tmp directory or in the directory named in the DBTEMP
environment variable if that is different. Look for other, more
explicit, error messages from the operating system. Possibly the disk
is full, or you have reached a limit on the number of open files.


-4377	The output file filename cannot be created or opened.

On UNIX systems, check that your account has permission to create files
in the directory where filename would be created. Look for other, more
explicit, error messages from the operating system. Possibly the disk
is full, or you have reached a limit on the number of open files.


-4378	No input file was specified.

You invoked the C-code or the p-code compiler from the command line but
did not specify the name of a source file to be edited. Repeat the
command, specifying a source file.


-4379	The input filename filename cannot be opened.

Either the file does not exist, or, on UNIX, your account does not have
permission to read it. Possibly the filename is misspelled, or the
directory path leading to the file was specified incorrectly.


-4380	The listing file filename cannot be created.

Check that the directory path leading to the file is specified
correctly and, on UNIX systems, that your account has permission to
create a file in that directory. Look for other, more explicit, error
messages from the operating system. Possibly the disk is full, or you
have reached a limit on the number of open files.


-4381	The input file filename has an invalid extension. The file
name must have .4gl as the extension.

You do not need to enter the file extension or suffix of .4gl when you
type the name of a program source file. However, if you do type a file
suffix it must be .4gl; no other is allowed. If you type the suffix
incorrectly, enter the command again omitting the suffix. If the file
really has a different suffix, you will have to change it.


-4382	Cannot expand a structure with an array member.

The ".*" and THROUGH notation cannot be used to expand a record with an
array member, except in the LET statement. Error -4382 with this
meaning is issued by NewEra.


-4382	Record variables that contain array type elements may not
be referenced by the ".*" or THROUGH shorthand, or used as a function
parameter.

You can define a record that contains an array as one of its
components. However, you must always list that component by its full
designation of record.part[n]. The asterisk or THRU notation is only
shorthand for a list of the names of the components of the record. It
cannot produce the bracketed subscript after the name of the array
component.

A record that contains an array component cannot be used as a parameter
to a function. However, you can use the array component itself as a
function parameter if you spell out its name as record.part. Error -4382
with this meaning is issued by NewEra.


-4383	The elements name-1 and name-2 do not belong to the same parent record.

The two names shown are used where two components of one record are
required; however, they are not components of the same record. Check
the spelling of both names. If they are spelled as you intended, go
back to the definition of the record and see why it does not include
both names as component fields.


-4384	The symbol name does not represent the element of any record.

The name shown is used where 4GL expects the name of a record
component. Check the spelling of the name. If it is spelled as you
intended, go back to the definition of the record variable and see why
it does not include name as a component field.


-4385	Report aggregates cannot be nested.

Aggregate functions cannot be nested, primarily because the value of
the inner aggregate is not known at the time the outer aggregate is
being accumulated. Rewrite aggregate expressions to refer only to
columns and simple expressions on columns. In an AFTER GROUP OF clause,
you can save the aggregate value from one group of rows in a program
variable, so as to use it in computing an aggregate over a subsequent
group.


-4386	There are too many ORDER BY fields in this report. The maximum
number is number.

A limit exists on the number of ordering fields. You will have to
redesign the report so that it requires ordering by no more than number
columns. Alternatively you can order the data before passing it to the
report, and specify the EXTERNAL keyword on the ORDER BY statement in
the report body. It is generally more efficient to have the database
server produce the rows in the correct order (using SELECT...ORDER BY
in the cursor that produces the rows).


-4387	The right margin must be greater than the left margin.

If the right margin of a report were no greater than the left margin,
there would be no room on each line for data. Check both MARGIN
statements in the OUTPUT section for reasonable values.


-4388	There is one BEFORE GROUP OF clause and one AFTER GROUP OF clause
allowed for each report input parameter.

The report is attempting to define a second BEFORE GROUP OF or AFTER
GROUP OF block for a single report parameter. Only one such control
block is allowed. Find all the blocks for this parameter, and combine
their statements into one.


-4389	There are too many levels of nesting of IF statements in this report.

You have exceeded the maximum of five levels of nesting of IF
statements. Possibly an END IF statement has been omitted. If not, you
will have to revise the logic of the report so that decisions are
nested less deeply.


-4390	Only one BEFORE MENU clause is allowed for each MENU statement.

There can be only one BEFORE block of statements in a MENU. Make sure
that the scope of your MENU statements are correctly marked with an END
MENU. Then combine all the preparation code for this menu into a
single BEFORE MENU block. This error is returned only by 4GL at Version
4.1.


-4391	When doing INPUT BY NAME or INPUT ARRAY, the BEFORE/AFTER field
names can be specified only by the field name suffix. Screen array and
screen record elements are not allowed.

Only names of single form fields can be used with a BEFORE or AFTER
clause. The name of a field is defined in the ATTRIBUTES section of
the form definition; it is often the same as the name of a database
column. Here are example lines from an ATTRIBUTES section:

atag = customer.customer_num,noentry;
tag2 = formonly.total,format="#######.##";

The names of these fields are customer_num and total, respectively.

In the 4GL statement in question, you have written a name prefixed with
another name and a dot. That syntax is used for specifying components
of screen records or screen arrays, or database columns of the same
name in different tables, but it is not appropriate here.


-4392	The 4GL compiler has run out of data space memory to contain
the 4GL program symbols. If the program module is very large, dividing it
into separate modules may alleviate the situation.

Reorganize your program source as a group of modules that can be
compiled separately. Alternatively, revise the program so that fewer
unique symbols are required, for instance by replacing many similar
variables with an array. This error might also be related to the
CONSTRUCT statement. If there is a CONSTRUCT over a large number of
fields, moving that statement to a function and putting the function in
a different source module might alleviate the problem with no other
changes.


-4393	The MENU statement has exceeded the maximum number of selections.

There is a maximum of 25 selections in a menu. Make sure that you have
not omitted an END MENU statement, thus combining two menus. If the
menu is as you intended it, you will have to revise the program so as
not to exceed the limit, for example by creating a hierarchy of menus.


-4394	Warning: Formal parameters in informal function headers cannot have
initial values. The initial value of this parameter is ignored. If this value
is intended as the default parameter, then use formal function headers to
specify defaults.

Although parameters in formal (function-prototype-style) definitions
can have initial values, those in the informal function definitions
cannot. The initial value of this parameter is ignored. If this value
is intended as the default parameter, then use the formal definition
format that uses function prototypes to specify defaults. Only NewEra
returns this error.


-4395	There are too many subscripts specified with a database column name.

In this statement the name of a database column is followed by square
brackets with several numbers between them. The only valid use for
square brackets with a database column is to select a substring from a
character column. However, for that use you must write exactly two
numbers, the subscripts of the first and last letters of the substring.
Here more than two numbers are used. Check and correct the
punctuation.


-4396	The MENU declaration at line line-number is not terminated.

4GL could not identify an END MENU statement to match the MENU
statement on the line number shown. Start at that line and work down
until you find where the terminating statement should have been, and
insert it.


-4397	The IF statement at line line-number is not terminated.

4GL could not identify an END IF statement to match the IF statement on
the line number shown. Start at that line and work down until you find
where the terminating statement should have been, and insert it.


-4398	The CASE statement at line line-number is not terminated.

4GL could not identify an END CASE statement to match the CASE
statement on the line number shown. Start at that line and work down
until you find where the terminating statement should have been, and
insert it.


-4399	The WHILE statement at line line-number is not terminated.

4GL could not identify an END WHILE statement to match the WHILE
statement on the line number shown. Start at that line and work down
until you find where the terminating statement should have been, and
insert it.

-4400	The FOR statement at line line-number is not terminated.

4GL could not identify an END FOR statement to match the FOR statement
on the line number shown. Start at that line and work down until you
find where the terminating statement should have been, and insert it.


-4401	A concatenation operation has created a string too long to
fit in the destination string variable.

This statement concatenates two or more character strings and stores
the result in another variable of type CHAR or VARCHAR. However, the
result of concatenation was longer than the receiving variable. If the
excess length is due to trailing spaces, you can use the CLIPPED
function to prevent them from being included in the combined result.
Otherwise you will have to define the length of the receiving variable
as at least the sum of the lengths of the input variables.


-4402	In this type of statement, subscripting may be applied only
to array variables to select individual array elements.

The statement contains a name followed by square brackets, but the name
is not that of an array variable. Check the punctuation of the
statement and the spelling of all names. Names that are subscripted
must be arrays. If you intended to use a character substring in this
statement, you will have to revise the program.


-4403	The number of dimensions for the variable variable-name does
not match the number of subscripts.

In this statement, the array whose name is shown is subscripted by a
different number of dimensions than it was defined to have. Check the
punctuation of the subscript. If it is as you intended, then review the
DEFINE statement where variable-name is defined.


-4405	The function has exceeded the maximum number of allowed parameters.

This message is not returned by any current IBM Informix product. If the
error recurs, note all circumstances and contact
IBM Technical Support.


-4406	There is an unmatched quote in the above line.

The source line contains an odd number of quote symbols. Inspect it
from left to right and make sure that all literal character strings
begin and end with a quote. All literal strings must begin and end on
the same logical line. However, you can write long literal strings in
two ways. First, you can escape the end of line by making the final
character in the line a backslash (however, there is a fixed maximum of 256
characters on the total length of a single quoted string). Second,
in the DISPLAY and LET statements, you can concatenate shorter literal
strings using the comma. Here are two examples.

DISPLAY "abcdefghijkl\

mnopqrstuvwxyz"

DISPLAY "abcdefghijkl",

"mnopqrstuvwxyz"

Both display the alphabet with no embedded white space.


-4407	There is an unprintable character in the above line.

This source line contains an unusual character. 4GL suggests that the
source file might be corrupt. Edit the file and remove the bad
character. If you cannot see or select it with your editor, you may
have to delete and retype the line.


-4408	There is a quoted string that is too long in the above line.

The limit on the length of a literal character string is 256 characters.
However, in the DISPLAY and LET statements you can concatenate shorter
literal strings using the comma. See message -4406 for an example.


-4409	There is an invalid character in the above line.

This source line contains some character other than printable text and
normal white space. Remove the invalid characters (which may be
invisible under normal editing). If you cannot see or select the
invalid characters with your editor program, you might have to delete
the line and retype it.


-4410	There is a numeric constant in the previous line that
is too large or too small.

A numeric constant in this line cannot be processed. Check the digits
and punctuation of all literal numbers; for example, make sure that you
have not typed a letter for a digit. No number can have more than 50
digits. Depending on the context, numbers might be restricted to one
of three ranges.

SMALLINT:

absolute value not exceeding 32,767

INTEGER:

absolute value not exceeding 2,147,483,647

DECIMAL:

absolute value from 10 to the 130th power through 10 to the 124th power

BIGINT/INT8/SERIAL8 :

absolute value from -9,223,372,036,854,775,807  to  +9,223,372,036,854,775,807 

-4411	There is an alphanumeric identifier that is too long in the above line.

No identifier can exceed 50 characters. Check the spelling and
punctuation of all identifiers (perhaps two names have run together).


-4412	Values from the RUN command can be returned only
to INTEGER or SMALLINT variables.

The RUN command only returns the integer return code from the program
that was executed. No automatic conversion of data occurs in this case;
its result must be assigned to an integer variable.


-4413	The label label-name has already been defined within this
function/report.

The name shown appears in two or more LABEL statements. Check the
spelling of the name; if it is as you intended, then look back through
this function, report, handler, or main program for other LABEL
statements and find the one that uses this same name. Change one of
them to use a different name. Only NewEra returns this error.


-4413	The label label-name has already been defined within this
main program or function.

The name shown appears in two or more LABEL statements. Check the
spelling of the name; if it is as you intended, then look back through
this function or main program for other LABEL statements and find the
one that uses this same name. Change one of them to use a different
name. Only 4GL returns this error.


-4414	The label label-name has been used but has never been defined
within this function/report.

A GOTO or WHENEVER statement refers to the label shown, but there is no
corresponding LABEL statement in the current function, report, handler,
or main program. Check the spelling of the label. If it is as you
intended it, find and inspect the LABEL statement that should define
it. You cannot transfer out of a program block with GOTO; labels must
be defined in the same function body where they are used. Only NewEra
returns this error.


-4414	The label label-name has been used but has never been defined within
the above main program or function.

A GOTO or WHENEVER statement refers to the label shown, but there is no
corresponding LABEL statement in the current function, report, handler,
or main program. Check the spelling of the label. If it is as you
intended it, find and inspect the LABEL statement that should define
it. You cannot transfer out of a function with GOTO; labels must be
defined in the same function body where they are used. Only 4GL returns
this error.


-4415	An ORDER BY or GROUP item specified within a report must be
one of the report parameters.

The names used in a ORDER BY, AFTER GROUP OF, or BEFORE GROUP OF
statement must also appear in the parameter list of the REPORT
statement. It is not possible to order or group based on a global
variable or other expression. Check the spelling of the names in the
statement and compare them to the REPORT statement.


-4416	There is an error in the validation string: "%s".

Change the appropriate DEFAULT or INCLUDE value in the syscolval
table.


-4417	This type of statement can be used only in a report.

Statements such as PRINT, SKIP, or NEED are meaningful only within the
body of a report function, where there is an implicit report listing to
receive output.


-4418	The variable used in the INPUT ARRAY or DISPLAY ARRAY statement
must be an array.

The name following the words DISPLAY ARRAY or INPUT ARRAY must be that
of an array of records. Check the spelling of the name. If it is as you
intended, find and inspect the DEFINE statement to see why it is not an
array. (If you want to display or input a simple variable or a single
element of an array, use the DISPLAY or INPUT statement.)


-4419	The variable used in the CONSTRUCT statement must be a character
variable.

The name following the word CONSTRUCT must be that of a variable
defined as CHARACTER or VARCHAR. It ought to be a long variable, since
the string it receives may be long. Check the spelling of the name. If
it is as you intended, find and inspect the DEFINE statement to see why
it is not a character type.


-4420	The number of lines printed in the IF part of an IF-THEN-ELSE statement
of a header or trailer clause must equal the number of lines printed in the
ELSE part.

4GL needs to know how many lines will be filled in header and trailer
sections (otherwise it could not know how many detail rows to put on
the page). Because it cannot tell which part of an IF statement will be
executed, it requires that both produce the same number of lines of
output.


-4421	You may not use an INPUT statement within another INPUT statement or
PROMPT statement, even if it is enclosed within a conditional or looping
statement.

You can execute an INPUT statement from within another one, or from a
PROMPT statement, but in order to do so you must place the INPUT
statement in a function and call the function. You cannot embed the
text of an INPUT statement within another.


-4422	You may not use a CONSTRUCT statement within another INPUT statement.
This includes situations when CONSTRUCT is enclosed within a conditional or
looping statement. You must call a function that executes the CONSTRUCT
statement.

You can execute a CONSTRUCT statement from within an INPUT statement,
but in order to do so you must place the CONSTRUCT statement in a
function and call the function. You cannot embed the text of a
CONSTRUCT statement in an INPUT statement.


-4423	The CLIPPED and USING options for the DISPLAY statement may not be used
when displaying to a form field.

The CLIPPED and USING keywords cannot be used in the DISPLAY TO and
DISPLAY BY NAME statements. The display format of a form field is
controlled by the attributes of that field, as specified in the form
file. Trailing spaces are not displayed in a field. To get the effect
of USING, edit the form file and add a USING attribute to the field or
fields.


-4424	The variable variable-name has not been defined as a record.

The variable shown has been used with an asterisk, or with the THRU or
THROUGH keywords. However, it has not been defined as a record. Check
the spelling of the name. If it is as you intended, locate the
definition of the variable and find out why it was not defined as a
record. Only 4GL returns this error.


-4425	The variable variable-name has not been defined LIKE the table
table-name.

The named variable has been used in the SET clause of an UPDATE
statement. However, it was not defined to be LIKE the table being
updated. As a result, 4GL cannot associate record components with table
columns. You can change the definition of the variable, or you can
rewrite the UPDATE statement to show the explicit relationship between
column names and record components.


-4426	The PRINT statement can be used only within reports. If you wish to
print without screen positioning, use the DISPLAY statement without any field
or screen destination.

The keyword PRINT is used specifically to produce lines of output to a
report. The keyword DISPLAY introduces output to the screen. Possibly
this statement was accidentally copied from a report body; more likely
it was a hasty attempt to display casual output on the screen. In the
latter case, simply changing PRINT to DISPLAY is usually enough.


-4427	The COLUMN feature for the DISPLAY statement may be used only when
displaying without screen or field destination.

The COLUMN function returns a string of spaces long enough to reach a
certain column in the display output. You may use it with unqualified
DISPLAY and with DISPLAY AT, but it is not appropriate with DISPLAY TO
or DISPLAY BY NAME.


-4428	You may not use a PROMPT statement within an INPUT or PROMPT statement,
even if it is enclosed within a conditional or looping statement.

You can execute a PROMPT statement from within another one or from
within an INPUT statement, but in order to do so you must place the
PROMPT statement in a function and call the function. You cannot embed
the text of a PROMPT statement within an INPUT statement or another
PROMPT.


-4429	Report and function parameters cannot be arrays.

You cannot pass a whole array as a parameter of a function. You can
pass an individual element of the array by using a subscript. Possibly
the array that is causing this error is one component of a record
variable that is being passed using asterisk notation. Only 4GL returns
this error.


-4429	Parameters cannot be arrays, records with array members, or constants.

You cannot pass a whole array or a constant as a parameter of a
function. You can pass an individual element of an array by using a
subscript. Possibly the array that is causing this error is one
component of a record variable that is being passed using asterisk
notation. Only NewEra returns this error.


-4430	Values cannot be RETURNed from within reports.

A report cannot include a RETURN statement because that would return
control to the routine that invoked the report. Only NewEra returns
this error.


-4430	Record parameters for a report cannot contain elements that are arrays.

You cannot pass a whole array as a parameter of a function. You can
pass an individual element of the array by using a subscript. In this
case, a record variable is specified as a parameter using asterisk
notation, but one of the components of the record is an array.


-4431	The number of expanded report parameters has exceeded the maximum
allowed.

This message is not returned by any current IBM Informix product. If the
error recurs, note all circumstances and contact
IBM Technical Support.


-4432	An element in a GROUP clause must be a member of the ORDER BY clause.

In order to perform grouping, the set of selected rows must be ordered
on the same columns. This is the only way to force all the equal values
to be found together, as a group. Rewrite the statement so that each
selected value that you want to group also appears in an ORDER BY
clause. Note that both these clauses allow you to refer to selected
values by their position number, as in the following example:

SELECT customer_num, month(order_date), avg(ship_weight) FROM orders
	ORDER BY 1, 2 GROUP BY 1,2


-4433	A variable used in the above statement must be of type CHAR or VARCHAR.

The filename in the REPORT TO statement must be given as a character
value; and the program name in the REPORT TO PIPE statement must also
be given as a character value. In either case, this can be a constant,
a variable of either of the types mentioned, or an expression. However,
it cannot be a number or other data type; no automatic type conversion
occurs in these statements.


-4434	The limits of the IBM Infomix 4GL Demo Version have been exceeded.
Call IBM for licensing information.

A program compiled using the demonstration version of IBM Informix 4GL can
contain only one module with no more than 150 statements. This program
either has too many statements, or it refers to a function in another
module. Contact your IBM sales representative for information on
full development licenses.


-4435	An acceptable hyphenated key format is CONTROL-X, where X is any letter
except A, D, H, L, R, or X.

When a key is trapped by an ON KEY clause, it loses other special
functions; for example, if you trap the Escape key, you must use the
OPTIONS statement to set up a different Accept key. You are not allowed
to use one of the control keys A, D, H, L, R, or X because these keys
have editing functions, and there is no method of assigning alternate
keys to those functions.


-4436	There are too many variables to VALIDATE or INITIALIZE in one statement.

There is a limit of 250 names (through Version 4.0) in the VALIDATE and
INITIALIZE statements. Simply divide this statement into multiple
statements so as not to exceed the limit.


-4437	All table names in the SELECT list must be the same as the table name
in the FROM clause.

One of the table names used in the list of columns to select does not
appear in the FROM clause. Possibly you simply misspelled the name in
one of the two places. Or you might have used a table alias in the
select-list but forgot to define it in the FROM clause.


-4438	You cannot SELECT into a substring of a character variable.

Substring notation is not allowed in the INTO clause. You can specify a
substring of a column in the list of columns to select and in the WHERE
clause. But you have to select into an entire variable. Define a
variable to select into, and move the data into the destination
substring using a LET statement.


-4439	You cannot SELECT into record record because element name is a record
or an array.

The INTO clause can name only simple variables. The use of asterisk or
THRU notation is a shorthand for listing all the component fields of a
record. The resulting list of fields must consist of simple variables.
In this case, the field name is not simple. Perhaps you have referred
to the wrong record. If not, you will have to list the name component
separately, specifying one or more of its component parts.


-4440	name1 precedes name2 in the record/object and must also precede it when
 used with the THROUGH shorthand.

The THROUGH or THRU shorthand requires you to give the starting and
ending fields as they appear in physical sequence in the record. Check
the spelling of the names; if they are as you intended, then refer to
the VARIABLE statement where the record was defined to see why they are
not in the sequence you expected. Only NewEra returns this error.


-4440	The field name1 precedes name2 in the record record-name and must also
precede it when used with the THROUGH shorthand.

The THROUGH or THRU shorthand requires you to give the starting and
ending fields as they appear in physical sequence in the record. Check
the spelling of the names; if they are as you intended, then refer to
the DEFINE statement where the record was defined to see why they are
not in the sequence you expected. Only 4GL returns this error.


-4448	Cannot open the file filename for reading or writing.

Verify that the filename is correctly spelled and that your account 
has permission to read or write to it.


-4451	The size of the pcode generated from this function/report has exceeded
the 32K per function limit.

The function or report will have to be simplified. Extract some portion
of its code to a separate function or report, and call that one. Only
NewEra returns this error.


-4452	The function (or report) name has already been defined.

No two functions can have the same name. No two reports can have the
same name. Change one of the two occurrences of name to a different
name. Only NewEra returns this error.


-4452	The function (or report) name has already been defined.  Function and
report cannot both have the same name.

Each function (or report, which is similar to a function) must have a
unique name within the program. Change the function or report name.


-4453	Too many global identifiers and literal strings in your program.

A table 256K bytes long holds literal strings and identifiers used in
the main function and at the global and module levels. The table also
holds the identifiers of forms, windows, and cursors. To avoid this
error, move some code that uses many literal strings into a separate
module or into a function. Alternatively, find a way to initialize
character variables without assigning literal strings, for example by
reading the initial values from a database or file. Reducing the number
of global and module variables will also help.


-4453	The size of the global string table has exceeded the limit of 32767.

The table is used to hold literal strings and identifiers used in the
main function and at the global and module levels. The table also holds
the identifiers of forms, windows, and cursors. To avoid this error,
move some code that uses many literal strings into a separate module or
into a function. Alternatively, find a way to initialize character
variables without assigning literal strings, for example by reading the
initial values from a database or file. Reducing the number of global
and module variables will also help. Only 4GL returns this error.


-4454	The size of the local string table has exceeded the limit of 32767.

The table is used to hold literal strings and identifiers used in the
current function. To avoid this error, split the function into two or
more sub-functions. Alternatively, find a way to initialize character
variables without assigning literal strings, for example by reading the
initial values from a database or file. Only 4GL returns this error.


-4458	Each dimension for an array must be between 1 and 32767, inclusive.

Array dimensions cannot be less than one or greater than 32,767. If you
need a larger array, you must either split the array into multiple
arrays, or use multiple dimensions.


-4475	"name" cannot be used as both a function (or report) name and an
identifier name.

The name shown has been defined at least two ways. Names at the global
or module level must be unique. Locate all the definitions and
declarations of this name and change all but one of them. Only NewEra
returns this error.


-4475	"name" may not be used as both a function (or report) name and a
variable name.

The name shown has been defined at least two ways. Names at the global
or module level (function names, report names, and names of global or
module variables) must be unique. Locate all the definitions of this
name and change all but one of them. Error -4475 is issued with this
meaning from 4GL at versions after 4.1.


-4475	"name" may not be used as both a function (or report) name and an
identifier.

The name shown has been defined at least two ways. Names at the global
or module level must be unique. Locate all the definitions and
declarations of this name and change all but one of them. Error -4475
is issued with this meaning from 4GL at versions after 4.1.


-4476	Record members may not be used with database column substring. Possible
misspelling or usage of undefined host variables.

This statement has a reference of the form name1.name2[...]. This is
the form in which you would refer to a substring of a column:
table.column[...]. However, the names are not a table and column in
the database, so 4GL presumes they refer to a field of a record.
Inspect the statement and determine what was intended: a reference to a
column or to a record. If it is a column reference, verify the names of
the table and column in the database. If it is a record reference,
verify that the record and component are properly defined. If the
record has the same name as a table, prefix the name of the table with
@ to make it clear you mean the table, not the record.


-4479	Warning: non-ANSI comment indicator. Use "--" for ANSI compatibility.

If you want your SQL statements to comply with ANSI standards, you must
use the two-dash comment delimiter (- -). The comment delimiters of the
number sign (#) and the braces ({ }) are not portable to ANSI-compliant
systems. This message is seen because you specified that you wanted
warnings issued for constructs that are not ANSI compliant, by means of
the -ansi command-line parameter, the DBANSIWARN environment variable,
or the DBANSIWARN setting in the informix.ini file. Only NewEra returns
this error.


-4479	Warning: non-ANSI comment indicator. Use "--" for ANSI compatibility.

If you want your SQL statements to comply with ANSI standards, you must
use the two-dash comment delimiter (- -). The comment delimiters of the
number sign (#) and the braces ({ }) are not portable to ANSI-compliant
systems. This message is seen because you specified that you wanted
warnings issued for constructs that are not ANSI compliant, by means of
the -ansi command-line parameter, or the DBANSIWARN environment
variable. Only 4GL returns this error.


-4486	TEXT or BYTE variables and wordwrap fields cannot be printed in report
headers or trailers.

4GL has to be able to predict how many lines will be used in a report
header or trailer. Because the size of a TEXT variable is
unpredictable, you cannot display one in these contexts.


-4487	It is not possible to mix parameter and local record definitions where
the record contains variables of type TEXT or BYTE.  Make a second
definition for the local record variable.

In this report body, use separate DEFINE statements for parameters of
the report and for local variables of any type.


-4488	The program cannot CONTINUE or EXIT statement-type at this point
because it is not immediately within statement-type statement.

This CONTINUE or EXIT statement is not appropriate in its context.
Possibly the statement is misplaced, or possibly the statement type was
specified incorrectly.


-4489	The statement above does not allow the use of local variables or
report parameters in its expressions.

This statement cannot refer to an argument of the function or to a
variable defined in the function. It can use only variables defined at
the module level (before the MAIN section) or in the GLOBALS section.
In the case of OUTPUT REPORT TO, the statement takes effect during the
execution of a START REPORT statement. At this time, no arguments are
passed into the report description, and no report description
statements are executed that could initialize a local variable. Change
the statement to refer to a variable that can be initialized before the
report is started.


-4490	You cannot have multiple BEFORE clauses for the same field.

You cannot specify more than one BEFORE clause for the same field.


-4491	The parameter name has been changed.

More than one copy of the function prototype has occurred in the
current scope, and the one indicated by this message has specified a
different name for a formal parameter than that specified by any
prototypes already encountered.


-4492	Warning: The parameter is assigned a new default value.

More than one copy of the function prototype has occurred in the
current scope, and the one indicated by this message has specified a
different default value for a formal parameter than that specified by
any prototypes already encountered.


-4493	Named parameters are allowed only for formal functions/reports.

The indicated function reference uses named parameters, but the
declaration of the function or report used the informal style of
parameter declaration, in which only the names are specified in the
parameter list and the types are specified in subsequent, subsidiary
declarations.


-4494	Missing named parameter "name" does not have default value.

The indicated function invocation does not list a value for a
parameter, and the declaration for the function does not provide a
default value for it. Either add a default value in the declaration, or
add a name/value pair here in the invocation.


-4495	Duplicate or invalid parameter name.

The name of a parameter specified in the invocation of the function
does not match any of the names in the declaration of that function, or
it is not a valid NewEra identifier. Check its spelling.


-4496	CHAR (*) type is not allowed within records or classes.

The CHAR(*) type is allowed only in function prototypes, as a
parameter, not as an element of a record or class.


-4497	Event "name" is already declared in the class.

Two events in the same class cannot have the same name.


-4498	Event/Handler name must be different from intrinsic member function
name.

You cannot declare an event or a handler with the same name as an
intrinsic member function (!copy(), !derive(), or the name of the
class). Change the name of the event or handler.


-4499	Member "name" is already declared in the class or in its base class.

Either a member called "name" already exists in the current class, and
you have attempted to declare another member with that name, or you are
attempting to override an event or a variable. Only member functions
can be overridden.


-4500	A numeric conversion error has occurred due to incompatibility between
a calling program and its function parameters or between a variable and its
assigned expression.

See error -1317, which has replaced this error.


-4501	A parameter count mismatch has occurred between the calling function
and the called function.

See error -1318, which has replaced this error.


-4502	The 4GL program has run out of runtime data space memory.

See error -1319, which has replaced this error.


-4503	A function has not returned the correct number of values expected by
the calling function.

See error -1320, which has replaced this error.


-4504	A validation error has occurred as a result of the VALIDATE command.

The type of a VALIDATE variable cannot be converted to the type of the
validation values. Only NewEra returns this error.


-4504	A validation error has occurred as a result of the VALIDATE command.

See error -1321, which has replaced this error for products other than
NewEra.


-4505	A report output file cannot be opened.

See error -1322, which has replaced this error.


-4506	A report output pipe cannot be opened.

See error -1323, which has replaced this error.


-4507	A report output file cannot be written to.

See error -1324, which has replaced this error.


-4508	PRINT FILE error - cannot open file filename for reading.

See error -1325, which has replaced this error.


-4509	An array variable has been referenced outside of its specified
dimensions.

An array bound has been exceeded, and array-bounds checking has been
turned on. Array-bounds checking can be turned on through the compiler
switch "-a" or the PRAGMA ARRAY BOUNDS statement. Only NewEra returns
this error.


-4509	An array variable has been referenced outside of its specified
dimensions.

See error -1326, which has replaced this error for products other than
NewEra.


-4511	A temporary table needed for a report could not be created in the
selected database. The user must have permission to create tables in the
selected database.

See error -1328, which has replaced this error.


-4512	A database index could not be created for a temporary database table
needed for a report.

See error -1329, which has replaced this error.


-4513	Incorrectly formed hexadecimal value.

The hexadecimal digits are a to f and 0 to 9. Possibly you included an
illegal character where NewEra expected a hexadecimal value or its
sign.


-4513	A number used as a DISPLAY AT location or SCROLL count must be
positive.

For a DISPLAY AT statement, see error -1135, which has replaced this
error. Since Version 4.0, the SCROLL statement accepts negative
numbers.


-4514	A row could not be inserted into a temporary report table.

See error -1330, which has replaced this error.


-4515	A row could not be fetched from a temporary report table.

See error -1331, which has replaced this error.


-4516	A character variable has referenced subscripts that are out of range.

See error -1332, which has replaced this error.


-4517	Strings of length > 512 cannot be returned from function calls.

See error -1333, which has replaced this error.


-4518	The 4GL program cannot allocate any more space for temporary string
storage.

Either the program is attempting to return more than 32,768 bytes of
CHAR, VARCHAR, or CHAR(*) values from a function, or the number of
bytes of temporary CHAR(*) variables that the program creates
implicitly has exceeded 32,768. Only NewEra returns this error.


-4518	The 4GL program cannot allocate any more space for temporary string
storage.

For products other than NewEra, see error -1334, which has replaced
this error.


-4527	Undefined opcode in function name.

The p-code file for the program (whose file suffix is .4go) has become
corrupted. Recompile at least the module that contains the named
function (preferably the whole program) and run it again. If the same
error occurs, make sure that you are running both fglpc and fglgo at
the identical version level. If you are, refer to the Administrator's
Guide or Reference for your database server, for additional diagnostics.
Contact IBM Technical Support with the
diagnostic information.


-4535	Bad store include table syntax "file1" "file2".

An internal error has occurred.

The code that generates the INCLUDE statement, the Application Builder
front-end code that generated the INCLUDE statement is out of
synchronization with the Application Builder back-end code that handles
the insertion and removal of data from the database.

An extraordinarily large save in which the filenames exceed 64
kilobytes could also cause this error.


-4536	Database open failed.

The Application Builder could not open the database. A network failure,
IBM Informix NET failure, or an incorrect value in the DBPATH environment
variable could cause this error. Check the DBPATH setting, and run
SETNET. Also verify that the UNIX host is functioning correctly.


-4538	No database name has been given.

The Application Builder attempted to execute an OPEN DATABASE command
without specifying the name of the database. Check the "database=..."
line in your informix.ini file. If you want to use the default
database, set the line to "database=syspg4gl".


-4542	Attempt to upgrade the design database failed.

The Application Builder attempted to upgrade an older style database
from IBM Informix 4GL to a new style that uses NewEra failed. This process
involves creating a series of new tables and modifying and moving the
data.

The error might occur because of lack of permissions. The owner of the database
should perform the upgrade.

The error could be due to a full disk. The upgrade does not erase old
information until it has been written and verified, and then only if
requested. The amount of free space that an upgrade requires is
approximately equal to the amount that the older database uses.


-4543	Invalid delimiter. Do not use '\\', hex digits (0-9, A-F, a-f), or
space.

Use a delimiter other than any of the 22 forbidden symbols that are
listed here.


-4555	Variable size cannot exceed 65535 bytes.

You have attempted to create a variable whose total size exceeds 65535.
Arrays can consume space more quickly than you might notice. A
simple array A[100,100] of CHAR(6) would consume 10,000 x 7 - 70,000
bytes.


-4556	Object size cannot exceed 65535 bytes.

You have attempted to create an object whose total size exceeds 65535.
Arrays can consume space more quickly than you might notice. A simple
array A[100,100] of CHAR(6) would consume 10,000 x 7 - 70,000 bytes.


-4600	No form by specified name found.

The form specified cannot be found as a file named formname.frm.
The system looks in the current directory, and in each directory
named in the DBPATH environment variable. Possibly the form
name was misspelled, or the form file might have been renamed, or
possibly the DBPATH variable is not set correctly.


-4601	No 4GL module by specified name found.

The source module specified cannot be found as a file module.4gl.
The system looks in the current directory and in directories named
in the DBPATH environment variable. Possibly the module name
was misspelled, or the file might have been renamed, or possibly the
DBPATH variable is not set correctly.


-4602	No 4GL program by specified name found.

The multi-module program specified cannot be found in the
program database. Possibly the module name was misspelled.
Possibly, if the DBPATH environment variable has been changed
since the program was defined, you are now using a different
program database than before.


-4603	No executable 4GL program by specified name found.

The executable program specified cannot be found as a file
module.4go. The system looks in the current directory and in
directories named in the DBPATH environment variable. Possibly
the name was misspelled, or the file might have been renamed, or
possibly the DBPATH variable is not set correctly.


-4604	Errors found in 4GL module.

Select the Correct menu choice. You will be shown the module
source with error messages included.


-4607	The following errors were discovered during compilation.

Errors were found that are not related to specific lines of source code,
for example, undefined functions. There may be .err files as well
that you can display to see more error messages. Modify the
program definition and the source modules as required and
recompile.


-4608	The compilation of the program was not successful.

There should be other error messages visible, or in a file with a suffix
of .err, to explain the lack of success.


-4609	Insufficient memory is available to complete program compilation.

The only practical recourse is to divide the source files into smaller
units.


-4610	Warnings found in 4GL module.

You have compiled with the -ansi command line option, which asks
that you be warned about any use of SQL that does not comply with
ANSI standard SQL. The compiler did find one or more uses of
Informix extensions to standard SQL. Edit the module.err file to see
the warning messages.


-4611	There is no 4GL source available for this program.

You have requested that a program be compiled, but the system
cannot locate one of the module source files. It is looking for files
with the suffix .4gl and having the names shown in the program
source list. It looks in the current directory and in directories named
in the DBPATH environment variable. Check that the program is
correctly defined, and locate the source modules. Make sure that the
DBPATH environment variable is correctly set.


-4612	Data validation table does not currently exist for this database.

The program uses a statement such as VALIDATE or INITIALIZE
that requires input from the syscolval table; however that table
does not exist in the current database. Possibly it has not been
created (using the Column Attributes Dictionary utility in Windows
or the upscol utility in DOS and UNIX); possibly it was inadvertently
dropped from the database; or possibly the database now being
used is not the one you expected, owing to a change in the value of
the DBPATH environment variable.


-4613	Screen display attribute table does not currently exist for this
database.

The program uses a statement that requires input from the syscolatt
table; however that table does not exist in the current database.
Possibly it has not been created (using the Column Attributes
Dictionary utility in Windows or the upscol utility in DOS and
UNIX); possibly it was inadvertently dropped from the database; or
possibly the database now being used is not the one you expected,
owing to a change in the value of the DBPATH environment variable.


-4614	A program already exists by this name.

You have specified as a new program one that already
appears in the program database. Programs must have unique
names. Choose a different name.


-4615	Invalid program name.

You have specified an unacceptable name for a new program. The
name may be too long (at most 10 characters in some operating
systems, at most 8 in others). If not, make sure that it starts with a
letter and contains only letters, digits, and underscore characters.


-4616	The 4GL program database does not exist. Create via
PROGRAM section.

In UNIX, the program database, named syspgm4gl, is not accessible.
If you select the Program menu option you will be asked if you want
to create it. If you think that this database ought to exist already (for
instance, if you have previously defined multi-module programs),
then exit the Programmer's Environment and check the value of the
DBPATH environment variable. It determines which databases are
visible (if you are using the IBM Informix SE). If it is
correct, or if you are using an OnLine database server, then the
program database either never existed or has been dropped.


-4617	You may not edit a program located on a different device.
You cannot specify a pathname to a source file in a directory that is
not on the device that holds your current directory. Use a system
utility to copy the source file to your current directory (or to a
directory on the current device).


-4618	An error has occurred in accessing the requested file.

Something prevented the program from reading the file you
specified. Look for other messages including operating system
messages that might give more details.


-4620	IBM Informix ESQL/C is not installed on the system.

In order to use ESQL/C modules (source files with a .ec suffix) in a
program definition, you must have IBM Informix ESQL/C installed in your
system. If you believe it has been installed, review
the installation procedure, because the product is not visible in the
directory named in the INFORMIXDIR environment variable.


-4621	Error occurred while writing to output file filename.
While writing to the named file the operating system reported an
error. The problem may be a full disk or a hardware failure. Look for
operating system error messages that give more information.


-4622	No runable 4GL program by specified name found.

The program you asked to run is not accessible as a file named
program.4go. 4GL looks in the current directory and in directories
named in the DBPATH environment variable. Check the spelling of
the program name. If it is as you intended, check the existence of the
file and the setting of DBPATH. Possibly you need to compile the
program before running it.


-4623	memory allocation error.

It has proven impossible to allocate memory for a small work area of
fixed size needed by a print function such as USING or ASCII. The
amount of memory needed is small; almost any reduction in
program size should avoid the error.


-4624	Owner name identifier has exceeded 8 characters in length.

The name shown appears in this statement where an owner name is
expected, for example preceding the name of a table: identifier.table.
However, the name exceeds eight characters, and the database
server only allows eight-character owner names. Review the
punctuation of the statement and the spelling of the identifier.


-4625	FIXTIME FAILED.

This is an internal error. If the error recurs, note all
circumstances and contact the IBM Technical Support.


-4626	Could not open file filename.

Either the file does not exist, or your account does not have
permission to access it, or some hardware failure occurred while it
was being opened. Verify that the file exists; if it does, look for
operating system error messages for more information.


-4627	The program cannot exit an INPUT statement at this point because it
is not within an INPUT statement.

The current statement is EXIT INPUT but it is not in the context of an
INPUT statement. Inspect the source module backward from this
point to determine what happened to the INPUT statement. Perhaps
the current statement was misplaced, or perhaps an END INPUT
statement was inserted at an earlier point.


-4628	The program cannot exit a DISPLAY ARRAY statement at this point
because it is not within a DISPLAY ARRAY statement.

The current statement is EXIT DISPLAY but it is not in the context of
an DISPLAY statement. Inspect the source module backward from
this point to determine what happened to the DISPLAY statement.
Perhaps the current statement was misplaced, or perhaps an END
DISPLAY statement was inserted at an earlier point.


-4629	Load from file filename failed.

The LOAD statement failed, either because of an error reading the
named file, or because of an error converting data from one form to
another. Look for other messages from 4GL or the operating system
for more information.


-4630	Unload to file filename failed.

The UNLOAD statement failed, either because of a problem with the
SELECT statement or because of an error producing the output file.
Look for other messages from 4GL or the operating system for more
information.

-4631	Startfield of DATETIME or INTERVAL qualifiers must come earlier in
the time-list than its endfield.

The qualifier for a DATETIME or INTERVAL consists of start TO end,
where the start and end are chosen from this list:

YEAR MONTH DAY HOUR MINUTE SECOND FRACTION

The keyword for the start field must come earlier in the list than, or
be the same as, the keyword for the end field. For example, qualifiers
of DAY TO FRACTION and MONTH TO MONTH are valid but one of
MINUTE TO HOUR is not.


-4632	Parenthetical precision of FRACTION must be between 1 and 5. No
precision can be specified for other time units.

In a DATETIME qualifier only the FRACTION field may have a
precision in parentheses, and it must be a single digit from 1 to 5.
Check the DATETIME qualifiers in the current statement; one of them
violates these rules. The first field of an INTERVAL qualifier may also
have a parenthesized precision from 1 to 5. Consult the SQL
reference material for the distinction between DATETIME and
INTERVAL.


-4633	DATETIME units can only be YEAR, MONTH, DAY, HOUR, MINUTE,
SECOND, and FRACTION.

In the current statement there is an error of some sort either in the
qualifier of a DATETIME or INTERVAL value, or in the argument of
the UNITS function. The only valid precision keywords for these
uses are listed in the message. Possibly a keyword has been
misspelled, or possibly some other syntax error has prevented 4GL
from recognizing the keywords.

-4634	Symbol name must be a SQL database item name -- either a database
name, a tablename or a column name.

The name shown is used in a context that suggests you intend to
name a database or an item in a database. However, there is nothing
of that name in the current database. Check the spelling of name. If it
is as you intended, then make sure that the current database is the
one you meant to use.

-4635	Cannot create temporary file filename to contain a blob variable.

A TEXT or BYTE variable has been located in a temporary file using
the LOCATE statement. The current statement assigns a value into
that variable, so 4GL attempted to create the temporary file, but an
error occurred. Possibly there is no disk space, or possibly your
account does not have permission to create a temporary file. 4GL
creates a temporary file in the directory specified by the DBTEMP
environment variable. Look for operating system error messages

that might give more information. Check the value of DBTEMP.

-4638	The maximum size for varchar must be between 1 and 255.

To store strings longer than 255 characters you must use the CHAR
data type.

-4639	Real column name cannot be specified here. The symbol "*" is
expected instead.

When defining a RECORD LIKE a table you may not write the name
of a single column. Use an asterisk to mean all columns.

-4640	Table name is expected here.

When defining a variable or record LIKE a table you must specify a
table that exists in the current database (the database selected by the
first DATABASE statement in the source file). Only tables in that
database can be named in a LIKE definition. Review the spelling of
the name and the choice of databases.

-4641	Column name is expected here.

When defining a variable LIKE a column you must specify a table
and column. The name here is not a column that appears in the
current database (the database selected by the first DATABASE
statement in the source file). Review the spelling of the name and the
choice of databases.

-4642	Subscripting is NOT allowed here.

This message is not returned by any current Informix product. If the
error recurs, note all circumstances and contact the Informix
Technical Support Department.

-4643	A field in the INTERVAL qualifier is out of range. The acceptable
ranges are from YEAR to MONTH and from DAY TO FRACTION.

An INTERVAL may specify a period of years and/or months, or a
period of days and/or parts of days. However, an interval value
may not mix months and days. The qualifier for an INTERVAL may
use fields from YEAR and MONTH, or fields from DAY through
FRACTION, but it may not have fields from both sets.

-4644	The HELP and ATTRIBUTE clauses each can be specified only once.

Within the scope of an INPUT or DISPLAY ARRAY statement, only
one of each of these clauses may be given. Search backward in the
source module from this statement; locate all the statements of this
type, and reconcile them into one.

-4645	4GL does not support returning a blob variable.

The RETURN statement may not name either a BYTE or a TEXT value.
The only way to return such a value from a function is through a
global variable.


-4646	The specified WORDWRAP RIGHT MARGIN value is out of range. It
must be greater than or equal to the current column and less than or
equal to the report's right margin.

Modify this PRINT statement to specify a right margin for the
WORDWRAP function that does not exceed the report right margin.
The report right margin is set in the OUTPUT section of the report.

-4647	Cannot open file filename to read a TEXT variable value.

This PRINT statement refers to a file or to a TEXT variable has been
located in a file using the LOCATE statement. When 4GL attempted
to open the file to fetch the value an error occurred. Possibly the file
does not exist; possibly your account does not have permission to
access it; possibly there was a hardware error. Verify that the file
exists and is spelled as shown; then look for operating system
messages giving more details.

-4648	I/O error while running the 4GL C or p-code compiler.

The compiler received an unexpected operating system error code
while opening an input or an output file (a source file, a listing file,
an error file etc.) Look for operating system errors that may give
more information.

-4649	I/O error while running fglc: %s.

This messages is not returned by any current IBM Informix product. If it
appears, see the discussion of error -4648. If the error recurs,
note all circumstances and contact the IBM Technical Support.

-4650	Cannot find Runner runner.

Either the normal program runner or the debugger could not be
found in the directory named by the INFORMIXDIR environment
variable. Check the setting of the environment variable.

-4651	The p-code compiler is not contained in your path.

The source module or program cannot be compiled because the
compiler cannot be executed. It should be located in the bin
directory pointed to by the INFORMIXDIR environment variable;
however, that directory also must be listed in the PATH environment
variable before the program can be called.

-4652	The function function name can only be used within an INPUT or
CONSTRUCT statement.

The function shown is being used outside of an INPUT or
CONSTRUCT statement. However, it returns a result that is only
meaningful in the context of INPUT or CONSTRUCT. Review the code
to make sure that an END INPUT or END CONSTRUCT statement has
not been misplaced. Review the operation and use of the function to
make sure you understand it.

-4653	No more than one BEFORE or AFTER INPUT/CONSTRUCT/MENU
clause can appear in an INPUT/CONSTRUCT/MENU statement.

There may be only one BEFORE block of statements to initialized
each of these statement types. Make sure that the scope of all your
INPUT, CONSTRUCT and MENU statements is correctly marked with
END statements. Then combine all the preparation code into a single
BEFORE block for each one.

Note: Error -4653 with this meaning is issued by 4GL after Version 4.1.


-4654	CHAR size should be in the range of 1 to 32766.

The program has declared a variable of type CHAR with a size that is
out of the acceptable range.


-4655	Invalid range specified for VARCHAR.

The declaration of the fort VARCHAR (maximum, reserved) has incorrectly
specified a value for reserved that is not between 0 and maximum,
inclusive.


-4656	CANCEL INSERT can only be used in the BEFORE INSERT
clause of an INPUT ARRAY statement.

The CANCEL INSERT statement is being used outside of
BEFORE INSERT clause of an INPUT ARRAY. Review the code
to make sure that CANCEL INSERT has not been used
anywhere else except in the BEFORE INSERT clause.


-4657	CANCEL DELETE can only be used in the BEFORE DELETE
clause of an INPUT ARRAY statement.

The CANCEL DELETE statement is being used outside of
BEFORE DELETE clause of an INPUT ARRAY. Review the code
to make sure that CANCEL DELETE has not been used
anywhere else except in the BEFORE DELETE clause.


-4658	Constants are not allowed as cursor names.

Identifiers that are used for dynamic cursor names must be variables.


-4659	The CHAR (*) type is not allowed for report parameters.

A formal argument cannot accept a character data type of unspecified
length, such as CHAR(*).


-4660	Report parameters cannot take object references.

A formal argument cannot specify a class name (or FOREIGN) as its data
type.


-4661	Access control restrictions are not allowed for this intrinsic member
function.

The intrinsic member functions !copy() and !derive() must have PUBLIC
access control, which is the default access control for member
functions.


-4663	ODBC error from engine - "text".

The -useccl compiler switch has been used. An ODBC error, shown here as
"text", has been detected.


-4664	CCL class declarations are required with the "-useccl" switch. Add
INCLUDE SYSTEM "ixstmt.4gh" to your module.

To compile a REPORT or the MAIN program block with the -useccl switch,
the user needs to include ixstmt.4gh.

This statement has calls to functions nested within the parameter lists
of other function calls, to a level exceeding four. A maximum level of
four is supported, as in the following expression:
Afun(2-Bfun(3+Cfun(4*Dfun(5))))

Rewrite the expression to store the result of the innermost function
calls in a variable, and use the variable in the expression.


-4665	Warning: Report page header or trailer output must end with a newline,
so a newline will be automatically appended.

A report header or trailer contained a semicolon (;) at the end of the
line. In the body of the report, a trailing semicolon suppresses the
creation of a new line. The header and trailer must end with a new-line
character to perform properly. The compiler has ignored the semicolon.
To prevent this warning message from appearing, remove the semicolon
from the source code.


-4666	Problem encountered in populating the repository.

For a detailed description of the problem, see the repold.log file in
either $INFORMIXDIR\temp or the current directory.


-4667	Class name is only forward declared in this file.

Updating the repository with a forward-declared class is discouraged.


-4668	The report output, specified by a START REPORT
statement, is not any of file, pipe, screen, printer,
pipe in line mode, or pipe in form mode.

The output of a report can be sent only to any of file,
pipe (in form or line modes), screen, or printer.


-4669	The function fgl_setcurrline can only be used in
INPUT/DISPLAY ARRAY block.

The function is being used outside of an INPUT/DISPLAY
ARRAY block. Review the code to make sure that
fgl_setcurrline has not been used anywhere else except
in the INPUT/DISPLAY ARRAY block.


-4670	Multiple INTO clauses cannot be used inside SQL...END
SQL block.

Only one INTO clause can be used inside the SQL...
END SQL block. Review the code to make sure that more
than one INTO clause has not been used.


-4671	Missing END SQL after semicolon(;) in SQL...END
SQL block.

A optional semicolon(;) can be used to mark the end of
an SQL statement inside the SQL...END SQL block. The
program has encountered a semicolon(;) but could not
find END SQL immediately after that. Review the code to
make sure that the END SQL directive appears immediately
after the semicolon(;).


-4701	The -V option must be used on its own with no other arguments.

The -V option requests that the program display the version number and
then terminate. No other options are allowed with this option. To
display the version number, repeat the command, but with only the -V
option.


-4702	No program was specified.

The command cannot be executed because you did not specify the program
name. Repeat the command with the name of a NewEra program as an
argument.


-4703	Invalid option name.

You specified an option that the program does not recognize. For the
valid options of this command, refer to your documentation. Repeat the
command, using only valid options.


-4704	Option name requires an argument.

You specified an option that the program does not recognize. For the
valid options of this command, refer to your documentation. Repeat the
command, using only valid options.



-4801	Only 1, 2 or 3 can be used with WITH DIMENSIONS.

The syntax for declaring a dynamic array is
DEFINE arrname DYNAMIC ARRAY [with n dimensions] OF TYPE.
The value of n can be 1,2, or 3. If not specified, a 
default of 1 is assumed.

-4802	Dynamic array of a record with BLOB as one of the members 
is not allowed.

A dynamic array of records cannot have a BLOB or TEXT data type as one
of its members. 

-4803	The variable used in ALLOCATE/DEALLOCATE/RESIZE ARRAY
statement can only be a variable of the DYNAMIC ARRAY type.

The subject of an ALLOCATE, DEALLOCATE, or RESIZE statement
must be a variable of type DYNAMIC ARRAY. The variable can
be a dynamic array of any simple type or a 4GL RECORD type.


-4804	Subscripting cannot be applied to the variable "%s"
because it is not an array variable.

Only variables of the type ARRAY or DYNAMIC ARRAY can have
subscripts applied to them. If the compiler encounters a subscript
operation on a variable of some other type, it generates this error.


-4805	The variable on which ALLOCATE/DEALLOCATE/RESIZE ARRAY
statement is to act must be a dynamic array.

A variable of the type DYNAMIC ARRAY can be the subject of 
ALLOCATE, DEALLOCATE, or RESIZE statements. The variable can
be a dynamic array of any simple type or a 4GL RECORD type.


-4806	The dynamic array has been allocated already.

The array has been allocated using an ALLOCATE statement. 
Use DEALLOCATE before trying to ALLOCATE it again, or use RESIZE
to change the extent sizes.


-4807	Accessing elements of a dynamic array that has not been allocated is 
not allowed.

The dynamic array has not been allocated. Allocate a dynamic array
with the ALLOCATE DYNAMIC ARRAY statement. The syntax is ALLOCATE ARRAY <arrayname>[extent information]
See the 4GL Reference Manual for more details.


-4808	RECORD nesting is not allowed when DYNAMIC ARRAY OF RECORD is involved.

You cannot define a RECORD element where the top level record is
a DYNAMIC ARRAY type. Replace the top level DYNAMIC
ARRAY OF RECORD with an ARRAY type.


-4809	DEALLOCATE ARRAY statement can only have the array name. It cannot 
have subscripts.

You deallocate a dynamic array only by using the array name
without subscripts. You cannot use a statement like the one below, with a subscript:
DEALLOCATE ARRAY dynarr[10] 
Instead, use the statement as follows:
DEALLOCATE ARRAY dynarr


-4810	Subscript was missing on the dynamic array variable "%s" for ALLOCATE/RESIZE.

The ALLOCATE and RESIZE statements need the (new)size. If the subscripts
are missing, then this error is generated.
Example:
ALLOCATE ARRAY dynarr[10]


-4811	DYNAMIC ARRAY in a DYNAMIC ARRAY OF RECORD is not allowed.

You cannot have a DYNAMIC ARRAY inside a DYNAMIC ARRAY of RECORD.
Replace it with an ARRAY type.


-4813	Dynamic array ALLOCATE/RESIZE parameters must be positive and
non zero.

Check your RESIZE or ALLOCATE statement. Subscript values
must be positive and non zero.


-4814	Dynamic arrays passed/returned should be of similar
characteristics.

A dynamic array passed to functions or returned from a function:
a. Must be of the same type as the function passed/returned
b. Must have the same number of extents for both functions
c. If it is a dynamic array of record, must have both records the same size


-4815	Only dynamic arrays can be used for fgl_isdynarr_allocated or
fgl_dynarr_extentsize.

Use a DYNAMIC ARRAY only as an argument for the fgl_isdynarr_allocated function and as the first argument for
the fgl_dynarr_extentsize function.
The dynamic array name should be used without any subscripts.


-4816	Dynamic array used in fgl_dynarr_extentsize function should
be in ALLOCATEd state. 

The function can be used only with a dynamic array that 
has been allocated. Use the ALLOCATE ARRAY statement before
the fgl_dynarr_extentsize function is called.


-4817	The dynamic array for which fgl_dynarr_extentsize(dynarr, n)
is being used does not have the 'n'th dimension.

The array for which fgl_dynarr_extentsize function has been called 
does not have the nth dimension. Look at the array definition 
in the DEFINE DYNAMIC ARRAY statement and find out how many dimensions 
it has. 


-4818	Delimiter should be comma, when format is CSV. It should be a 
newline when format is TEXT.

When the format specified is CSV (Comma Separated Values), the delimiter must be 
Comma. Similarly if the format specified is text, the delimiter must be new-line.
Change the Delimiter accordingly.

-4819	Only LOAD, CSV and TEXT formats are supported.

The formats that can be specified are LOAD, CSV(Comma Separated values) and TEXT.
Specify the format of the file as either LOAD, CSV or TEXT.

-4820	Delimiter should be set only when format is specified.

The delimiter must be set only when format of the file is specified.
Specify the format of the file to either LOAD, CSV or TEXT and then 
specify the delimiter. 

-4821	The file file_name cannot be created or opened.
Accompanying OS message : OS_Message. 

Check that your username, has permission to create files in the specified directory. Look 
for the accompanying error messages from the operating system. Possibly the disk is full, 
or you have reached a limit on the number of open files. 

-4822	The file file_name cannot be closed. 
Accompanying OS message : OS_Message. 

The file cannot be closed. Look for the accompanying error messages from the operating 
system. Possibly the file is not opened, or the file descriptor specified may not be correct.

-4823	The file associated with the file descriptor may not be opened. 

The file descriptor specified may not be associated with a file. Possibly the file may already 
be closed or the file descriptor may be changed in the program. Revisit the program logic.

-4824	The file "%s" cannot be read.
Accompanying OS message : "%s". 

The file cannot be read. Check that your username, has permission to read the file. Look for the 
accompanying error messages from the operating system.  Possibly, the file is already closed, 
or the disk is full, or a hardware failure occurred. 

-4825	Seek on file file_name cannot be done.
Accompanying OS message : OS_Message.

Seek on the file cannot be done. Look for the accompanying error messages from the operating 
system. Possibly the file may already be closed or the file descriptor may be changed in the program.

-4826	The file file_name cannot be written.
Accompanying OS message : OS_Message.

The file cannot be written. Check that your username, has permission to write to the file. Look for 
the accompanying error messages from the operating system.  Possibly, the file is already closed, or 
the disk is full, or a hardware failure occurred.

-4827	The string in the file file_name is too long to fit in the variable.

The length of the variable is less than the length of the string read from the file. The String cannot be 
stored in the variable. Increase the size of the variable.

-4828	The field to be read from the file file_name should not be greater than 4096 bytes.

The length of the string read from the file exceeds 4096 bytes. Check the field in the file. Possibly, the 
file delimiter is misplaced.

-4829	Memory allocation error.

It has proven impossible to allocate memory for a small fixed size structure needed by a File IO function 
such as Open or Close. The amount of memory needed is small; almost any reduction in program size should 
avoid the error.

-4830	The variable var_name is not of type INTEGER or SMALLINT.  It cannot be 
used as a file descriptor. 

The variable used as a file descriptor must be an integer type. Specify a 
different variable, or redefine the one named.

-4831	The variable var_name is not of type INTEGER or SMALLINT.  It cannot be 
used to store offset bytes returned from the seek operation.

The variable used to store the offset bytes returned from the seek operation 
must be an integer type. Specify a different variable, or redefine the one named.

-4850	Insufficient space for formatted INTERVAL value.

The INTERVAL value could not be accommodated within the allocated buffer.

-4851	Invalid INTERVAL value.

The INTERVAL value has an invalid character.
The syntax of an INTERVAL value must begin with the character 'P'.

-4852	Invalid INTERVAL value.

The INTERVAL value has an invalid character.
Any hours, minutes, or seconds in the durationmust begin with 'T''.

-4853	Extra (non-blank) characters at the end of a interval value.

Only spaces can follow an INTERVAL literal. Inspect the INTERVAL values.

-4854	Invalid INTERVAL value.

An Invalid character is used as a marker in an INTERVAL value.  Valid markers are YMDTHMS.

-4855	Invalid INTERVAL value.

A Valid marker is used incorrectly in an INTERVAL value. Review the markers used for INTERVAL qualifiers like 
YMDTHMS to ensure they are used at the right place in the value.

-4856	No digits where digits required in INTERVAL value.

Review the INTERVAL value to ensure it is not missing a field.
In an INTERVAL literal, the first field is a count and can have as many digits as the qualifier specifies.

-4857	Too many digits in field of INTERVAL value.

The first field of an INTERVAL literal must contain either 1 or 2 digits 
(if it is not a YEAR) or 2 or 4 digits (if it is a YEAR).
Review the INTERVAL literals in this statement and correct them as necessary.

-4858	Invalid INTERVAL value.

The INTERVAL value has repeated mark letters. An INTERVAL value can specify 
either a period of years and/or months, or a period of days and/or parts of days. 
It cannot specify both years and/or months and days and/or parts of days.
The INTERVAL value must follow the first to last format and cannot have the same units repeated.

-4859	Invalid INTERVAL value.

The INTERVAL value has an invalid sequence of mark letters. 
An INTERVAL value can contain either a year-month interval or a day-time interval.
An INTERVAL value must follow the  first to last format l. The qualifier for an
 INTERVAL can specify fields from YEAR and MONTH, or fields from DAY through 
FRACTION, but it  can not specify fields from both sets.

-4860	Invalid INTERVAL value.

Fraction only allowed in seconds in INTERVAL value and 
decimal point should be between second and fraction.
Review the literal qualifier for missing or misplaced punctuation.

-4861	Output buffer not big enough to hold the DATETIME value.

This error is returned when the function is called and the address 
space for the output buffer is null or smaller than the format-string length.

-4862	Invalid DATETIME format.

The XSD format of a DATETIME value is not supported.

-4863	Invalid DATETIME format.

The DATETIME value does not match the required format.

The DATETIME value is missing at least one field, or repeating a field value, or has a 
missing, misplaced, or repeated delimiter, or has improper Markers
in the xsd DATETIME value.

-4864	Invalid character in DATETIME value.

The form of a DATETIME literal is very limited and can
contain only decimal digits and the following delimiters: the hyphen
between year, month, and day numbers; the space between day and hour;
the colon between hour, minute, and second; and the decimal point
between second and fraction.

Any error is returned if Any other characters or any of the allowed characters are used
in the wrong order.

-4865	Field value out of acceptable range in DATETIME value.

The DATETIME value contains at least one incorrect field or is missing at least one field.

Possible errors include: Using zero for the year; using numbers other than 
1 to 12 for the month, 1 to 31 for the day, 0 to 23 for the hour, or 0 to 59 for the minute or second; 
using an inappropriate number for the month; and using a fraction with too many digits for the specified precision.

-4866	Invalid DATETIME format .

The Field value is too wide for an xsd DATETIME value. 

-4986	Communication between fgld daemon and application server was closed.

Connection between fgld daemon and application server was interrupted, check
if application server is able to send request to fgld daemon running.

-4987	The supplied argument does not match with a function definition

Match the supplied argument with the function definition described in the WSDL file 
and correct the argument either in the configuration file or in the 4GL client application.

-4988	The number of environment values received is different from the number expected

The client has not provided the sufficient number of environment values. 
Ensure that the client application correctly processes the 
INFORMIXSERVER, CLIENT_LOCALE, and DB_LOCALE in the code.

-4989	A client is attempting to invoke a web service that does not exist

Match the SERVICENAME in the subscriber configuration file with the web service name in the WSDL file.

-4990	Unrecoverable error in application server

The application server encountered an unrecoverable error. 
Note the scenario and contact IBM Technical Support.

-4991	Operation failed while converting data from the XSD format to the SQL format

Ensure that input values match the input parameter types in WSDL file.

-4992	Message protocol error

Note the scenario and contact IBM Technical Support.

-4993	Supplied service name or operation name  (%s) cannot be found

The given web-service name or the operation cannot not be found. 
Match the SERVICENAME in the subscriber configuration file with the web service name in the WSDL file. 
Or, match the [FUNCTION]...NAME that follows the SOAP_NAME tag in the subscriber configuration file 
with the operation name in the WSDL file.

-4994	The number of inputs received does not match the number of inputs defined in the web service

Match the supplied input argument(s) with the input argument(s) function definition 
described in the WSDL file and correct the argument either in the configuration file or 
in the 4GL client application.

-4995	The number of outputs received does not match the number of outputs defined in the web service

Match the supplied output argument(s) with the output argument(s) function definition 
described in the WSDL file and correct the argument either in the configuration file or 
in the 4GL client application.

-4996	Unknown host name or port number

Ensure that the web service publisher has:
	1) Set the environment variables FGLD_HOSTNAME and FGLD_PORTNUMBER 
	2) Run the fgld on the FGLD_PORTNUMBER specified
	3) Run Axis2C on the same terminal where fgld is running

-4997	Port number  (%s) must be in the range 1024 - 65535

The port number set in the FGLD_PORTNUMBER environment variable is not in the valid range 1024 - 65535.

-4998	Operation failed while converting data from the SQL format to the XSD format

Ensure that output values match the output parameter types in WSDL file.


-5000	CSM error: <text>

A CSM (Communications Support Module), in the database server or in the
client, detected an error.

This error code is a general CSM error code. It can be used by individual
CSMs to reflect different error conditions. The text provides clues about
the possible cause of the error.

If the confidentiality option is enabled for a particular CSM, you might
see the following example of this error code: "CSM error: CSM: received
message of unexpected type." This implies that the CSM on the user's side
(either database server side or client application side) cannot interpret
the messages it receives. Make sure that the confidentiality option is
set for both the database server and the client application.

Check your sqlhosts file and CSS configuration file. Check the error
message on the other side (either database server side or client
application side) for more clues about the possible cause of the error.

Also make sure that the CSM you are using is supported by the database
server or the client SDK. If the problem persists, contact
IBM Technical Support or the CSM vendor. Have the following information
available: CSS configuration files and sqlhosts information for both
the client and the database server.


-5001	CSM: memory allocation error.

A CSM (Communications Support Module), in the database server or in the
client, could not acquire memory for processing.

Make sure that the system configuration makes sufficient memory available
for dynamic allocation. If that fails, contact IBM Technical Support
or the CSM vendor and have the following information available: CSS
configuration files and sqlhosts information for both the client and the
database server.


-5002	CSM: memory de-allocation error.

A CSM (Communications Support Module), in the database server or in the
client, could not deallocate memory. This error message arises only when
some form of memory corruption has occurred.

Contact IBM Technical Support or the CSM vendor and have the
following information available: CSS configuration files and sqlhosts
information for both the client and the database server.


-5003	CSM: file I/O error.

A CSM (Communications Support Module), in the database server or in the
client, could not complete a file read or write operation successfully.
This error can occur only during use of a CSM.

Validate that all files that the CSM requires for operation are available
for read and write access by the user in the client or by user informix
in the database server. If that fails, contact IBM Technical Support
or the  CSM vendor and have the following information available: CSS
configuration files and sqlhosts information for both the client and the
database server.


-5004	CSM: invalid context.

A CSM (Communications Support Module), in the database server or in the
client, detected a context that contains invalid data or that is
inconsistent with the current operation or CSM state. This error normally
occurs during input or output message processing (as opposed to context
establishment).

Contact IBM Technical Support or the CSM vendor and have the
following information available: CSS configuration files and sqlhosts
information for both the client and the database server.


-5005	CSM: unsupported feature.

A CSM (Communications Support Module), in the database server or in the
client, found either a global or connection parameter specification that
the current version of the CSM does not support. The CSM could also find
that the peer CSM, through the internal CSM-to-CSM protocol, indicated
the use of an option that this CSM instance does not support.

Remove any option that the CSM does not support or upgrade the CSM to one
that supports the option. Install and activate matching versions of the
CSMs in the client and database server. If the problem recurs, contact 
IBM Technical Support or the CSM vendor and have the following
Information available: CSS configuration files and sqlhosts information
for both the client and the database server.


-5006	CSM: invalid global options.

A CSM (Communications Support Module) found a global option that the
current version of the CSM does not support. The global option string is
specified in the CSS configuration file. 

Remove any options that the CSM does not support from the global option
specification or upgrade the CSM to one that supports the options. If the problem recurs,
contact IBM Technical Support or the CSM vendor and have
the following information available: CSS configuration files and sqlhosts
information for both the client and the database server.


-5007	CSM: invalid context options: <text>

A CSM (Communications Support Module), in the database server or in the
client, found a CSM connection option specification that the current
version of the CSM does not support. The connection options string is
specified in the CSS configuration file, and the csm option field in the
sqlhosts file. The text in the error message shows any options that the
CSM does not support.

Remove any options that the CSM does not support from the CSM connection
option specification or upgrade the CSM to one that supports the options.
If the problem recurs, contact IBM Technical Support or the CSM vendor and
have the following information available: CSS configuration files and
sqlhosts information for both the client and the database server.




-5008	CSM: peer disconnected.

A CSM (Communications Support Module), in the database server or in the


client, received a message from the peer CSM (using their private 
CSM-to-CSM protocol) to initiate an orderly tear-down of their respective
CSM contexts. This CSM responded by returning to the caller (CSS and its
caller) with this message. This message might not be an error, but might
actually be part of the protocol. A typical event that might trigger this
disconnection is the expiration of a credential (such as an old Kerberos
ticket, an association that is too long if the CSM functionality includes
placing limits on the duration of SQL sessions, or an expired X.509 
certificate). This error can occur only during use of a CSM.

If the disconnection seems unexpected and the problem persists, contact
IBM Technical Support or the CSM vendor and have the following
information available: CSS configuration files and sqlhosts information
for both the client and the database server.


-5009	CSM: authentication error.

A CSM (Communications Support Module) that performs principal 
authentication either in the database server or in the client failed to
authenticate the principal. 

If this error occurs during session establishment, the connection
establishment fails. Otherwise, the connection is dropped.

A common cause for this error is that an invalid password is given or the
desired database server does not consider the client computer or your
user ID trusted.

Provide a correct password as required by the authentication. Or ask the
system administrator to include the client computer as a trusted host
and/or your user ID as a trusted user in the /etc/hosts.equiv file on the
database server computer or in the .rhosts file in your home directory on
the database server computer. For more information, see the UNIX manual
pages on HOSTS.EQUIV(5).

If the problem recurs, contact IBM Technical Support and have the following
information available: CSS configuration files and sqlhosts information
for both the client and the database server.


-5010	CSM: internal processing error.

A CSM (Communications Support Module), in the database server or in the
client, detected an internal processing error and is incapable of
self-diagnosing it to provide additional information. This error can
occur only during use of a CSM and normally represents an internal
processing error, but could be caused by an undetected protocol error.

If this error occurs during context setup (that is, at connection time),
the connection establishment fails. If this error occurs after
establishment of the connection, the connection is dropped.

Contact IBM Technical Support or the CSM vendor and have the
following information available: CSS configuration files and sqlhosts
information for both the client and the database server.


-5011	CSM: protocol error.

A CSM (Communications Support Module), in the database server or in the
client, received a message that is not consistent with the CSM's protocol
formats, with its internal state, or with both. The usual cause of this
error is an internal message inconsistency, which indicates the receipt
of a protocol data unit with an unknown format. This error can occur only
during use of a CSM, and the cause can be a communications error, the use
of incompatible versions of the CSM in the client and the database
server, or inconsistent configurations of the client and database server
CSMs.

If this error occurs during context setup (that is, at connection time),
the connection establishment fails. If this error occurs after
establishment of the connection, the connection is dropped.

Make sure that the release levels of the CSMs types match, and the
configurations of client and database server CSMs match. If the problem recurs,
contact IBM Technical Support or the CSM vendor and have the
following information available: CSS configuration files and sqlhosts
information for both the client and the database server.


-5012	CSM: received message of unexpected type.

A CSM (Communications Support Module), in the database server or in the
client, received a message with a type that is inconsistent with the
protocol formats and/or internal state. This message is more specific
than message -5011 because in this case the protocol data unit that is
internally consistent might be carrying a message type that the receiver
cannot handle. This error can occur only if a CSM is used. It can be
caused by a communications error, by the use of incompatible versions of
the CSM in the client and the database server, or by inconsistent
configurations of the client and database server CSMs.

If this error occurs during context setup (that is, at connection time),
The connection establishment fails. If this error occurs after
Establishment of the connection, the connection is dropped.

Make sure that the release versions of the CSMs types match, and the
configurations of client and database server CSMs match. If the problem recurs,
contact IBM Technical Support or the CSM vendor and have the
following information available: CSS configuration files and sqlhosts
information for both the client and the database server.


-5013	CSM: cannot obtain credential: authentication error.

A CSM (Communications Support Module), in the database server or in the
client, cannot obtain a credential to proceed in an authentication
exchange. For example, a user did not provide a password, or a credential
request to an external authentication service returned an error. This
error can only occur during context setup (that is, at connection time).

The connection establishment fails.

When a CSM is configured to require a password for authentication, a
valid password must be provided. Do not configure the database server to
use CSM in such a way that password input is required when you first
bring up the database server. Bring the database server up and let it
build system tables. Bring the database server down, and reconfigure it
to use the CSM as you desire.

Provide the password credential, or perform the operations that the
external authentication service provider requires in advance (for
example, Kerberos klogin).


-5030	CSM: crypto library error: <text>.

A CSM (Communications Support Module), in the database server or in the
client, received an error indication from its cryptographic service
provider (or crypto library). This error can occur only during use of a
CSM and normally represents an internal processing error, but an
undetected protocol error could cause this error as well. Additional
text, crypto-library return codes, or both might follow the error
message.

If this error occurs during context setup (that is, at connection time),
the connection establishment fails. If this error occurs after
establishment of the connection, the connection is dropped.

Contact IBM Technical Support or the CSM vendor and have the
following information available: CSS configuration files and sqlhosts
information for both the client and the database server.

-5848	A row with constraint violations exists

.PROBLEM
The transaction mode setting for constraints cannot be changed because
there is a row with constraint violations, possibly due to deferred
constraints.

-5849	The sub-query flattening settings for the query plan and the current 
value of NO_SUBQF environment variable do not match.

.PROBLEM
The query plan was created with a different value of the NO_SUBQF environment 
variable than the current value of the NO_SUBQF environment variable.
.ACTION
Change the value of the NO_SUBQF environment variable or run UPDATE STATISTICS
to recreate the routine query plan.

-5851	Invalid value specified to SUBSTRING function.

The length argument specified to the SUBSTRING function cannot have a
negative value


-5852	Invalid date.

One of the arguments specified to the function must be a DATETIME type. 
Check the values of the arguments that you are passing to the function.


-5853	The format element: (element_name) does not have an equivalent
in Informix.

The format specified is not supported and therefore cannot be converted 
to an Informix format.


-5854	Unrecognized format element: (element_name).

The format element specified is unrecognized. It is probably not a legal 
Oracle format element.


-5855	The target string is not long enough to contain the converted format.

The target string is not long enough to contain the converted format. You 
need to allocate more space for the target string.


-5856	You specified invalid precision for FLOAT.

Maximum precision value for FLOAT data type must be between 1 and 16.
Note: SQL ignores any specified precision.


-5857	Using NULL in the RANGE or STEP expression is not possible.

A RANGE or STEP expression included NULL.

Replace NULL with another value in the RANGE or STEP expression and
retry the statement.


-7000	Error error-number from the optical subsystem. Consult your appropriate
subsystem manual.

Check the error number in the documentation for the subsystem that you
are using.

-7202	Database was created without NLS functionality.

You attempted to create an NCHAR (or NVARCHAR) column or declare an
NCHAR (or NVARCHAR) variable, in a non-NLS database.


-7203	DBNLS is not set or LC_COLLATE must be category-value.

You might receive this message when you try to access an external
database that has a different locale than the current database. In
order to use this NLS database, you must set the DBNLS environment
variable to 1 or 2 and the LC_COLLATE environment variable to the
specified category-value.


-7204	LANG or LC_COLLATE environment variable is invalid.

Either the LANG or the LC_COLLATE environment variable setting is
invalid. Set either or both variables to the values that your system
supports.


-7205	DBNLS is not set or LC_CTYPE must be set to category-value.

You might receive this message when you try to access an external
database that has a different locale than the current database. In
order to access this NLS database, you must set the DBNLS environment
variable to 1 or 2 and the LC_CTYPE environment variable to the
specified category-value.


-7206	LANG or LC_CTYPE environment variable is invalid.

Either the LANG or the LC_CTYPE environment variable setting is
invalid. Set either or both variables to the values that your system
supports.


-7207	LANG or LC_MONETARY environment variable is invalid.

Either the LANG or the LC_MONETARY environment variable setting is
invalid. Set either or both variables to the values that your system
supports.


-7208	LANG or LC_NUMERIC environment variable is invalid.

Either the LANG or the LC_NUMERIC environment variable setting is
invalid. Set either or both variables to the values that your system
supports.


-7209	LANG or LC_TIME environment variable is invalid.

Either the LANG or the LC_TIME environment variable setting is invalid.
Set either or both variables to the values that your system supports.


-7210	This server does not have NLS capability.

You tried to access an NLS database from a non-NLS-ready database
server. This database server does not support NLS. Contact IBM
for a version that does support NLS.


-7211	Cannot reference an external NLS database.

If your current database is not an NLS database, you cannot access an
NLS database on another database server or on the same database
server. However, if the NLS environment variables are set correctly,
you can drop an external NLS database even if your current database is
not an NLS database.

-7350	Attempt to update a stale version of a row

An attempt was made to update a stale copy of a row.  This caused an
optimistic concurrancy failure.

This error can occur when using updatable secondary and the current
version of the row has not yet been replicated to the secondary on which
the client application is connected.

This error code is also returned when table schema at secondary server
doesn't match with the table schema at primary server.

-7351	Connection between secondary and primary has been lost

The connection between the secondary and the primary has been lost.  This
will prevent the updates on secondary until connectivity has been
reestablished.


-7352	Operation can not be run on secondary node

There was an attempt to run an operation on a secondary node which can
only be successfully run on the primary.  You will need to perform
the operation on the current primary node


-7353	The transaction cannot continue on the new primary server.

The transaction was started at a secondary server.  While processing the
transaction, the original primary server to which the secondary server was
connected went off-line and another server became the new primary server.
There was an error recreating the transaction state at the new primary
server.


-7400	Invalid API argument <argument-name>.

Verify the arguments to the DataBlade API calls.


-7401	Invalid API usage <API-call>.

A DataBlade API call used an invalid argument or was made in an incorrect
context. The value of one or more arguments might be invalid, the sequence
of DataBlade API calls might be incorrect, or the call might have been made
from within a callback function where the call is invalid.

Check that the values of individual arguments are valid in the API call and
that the combination of all argument values is correct. Also check the
sequence of your DataBlade API calls. If the API call named in the
error message is made from within a callback function, move the call or
remove it.


-7402	Internal error.

If this error occurs, note all circumstances and contact IBM Technical
Support.


-7403	File protocol error. Expected message_packet_name.

This is an internal error. If it recurs, note all circumstances
and contact IBM Technical Support.


-7404	File protocol error. Reported by client.


If this error recurs, note all circumstances and contact
IBM Technical Support.


-7406	Operation operation_name not supported outside execution.

This is an internal database server error. If it recurs, note
all circumstances and contact IBM Technical Support.


-7411	Error loading locale object for client locale.

Probably an error occurred either while reading a registry or reading a
conversion object file. Locale file details are missing from the
registry file. Make sure the locale you are trying to load is
compatible with the locale that was specified when the database was
created.


-7412	Error loading code-set conversion object for converting to client
codeset.

Probably an error occurred either while reading a registry or reading a
conversion object file. Locale file details are missing from the
registry file. Make sure the locale you are trying to load is
compatible with the locale that was specified when the database was
created.


-7413	Error loading locale object for server processing locale.

Probably an error occurred either while reading a registry or reading a
conversion object file. Locale file details are missing from the
registry file. Make sure the locale you are trying to load is
compatible with the locale that was specified when the database was
created.


-7420	Argument argument_name is invalid.

Verify the arguments to the DataBlade API calls.


-7421	The specified column position is invalid.

Check the arguments to the DataBlade API calls that require column
numbers. DataBlade API calls use column numbers 0 to number of columns
minus one.


-7422	Cannot issue SAPI function <function-name> in a secondary PDQ
thread. You need to define the user-defined routine as non-parallelizable.

A user-defined routine that was defined as parallelizable has issued a SAPI
function that is not PDQ thread-safe. Only nonparallelizable user-defined
routines can call such a SAPI function.

Drop the routine and redefine it as nonparallelizable. To define a routine
as nonparallelizable, reissue the CREATE FUNCTION, CREATE PROCEDURE, or
CREATE ROUTINE statement without the WITH (PARALLELIZABLE) class. Or you can
use the following statement to make a routine nonparallelizable:

    ALTER ROUTINE routine-name WITH (DROP PARALLELIZABLE)


-7423	An invalid argument is specified. Either the return type buffer is
empty or the length of the buffer is not valid.

Verify arguments to DataBlade API calls.


-7424	A Cursor can only be defined for a prepared SELECT statement.

Prepare your SELECT statement before you define the cursor.


-7425	Invalid statement handle.

Verify arguments to DataBlade API calls. The statement handle used was
invalid or improperly modified.


-7426	There is no active query on this connection.

Verify the logic in the user-defined routine. You cannot retrieve or
query results without an active query.


-7427	Argument is not a valid argument_name.

An argument to a DataBlade API is invalid. Verify the arguments used in
each call to the DataBlade API.


-7428	Saveset is corrupted.

If this error recurs, note all circumstances and contact
IBM Technical Support.


-7429	Out of memory allocating save set.

Check with your system administrator or database administrator.


-7430	Out of memory allocating save set element.

Check with your system administrator or database administrator.


-7431	Invalid save set type type_name.

Verify that your type name is spelled correctly. If it is a
user-defined type, ensure that it has been defined correctly in your
database.


-7432	Command is not yet complete.

Feature is not yet implemented. Review your release notes.


-7433	Command not a DML.

A SELECT, INSERT, UPDATE or DELETE statement was expected. Review the
SQL statement in the user-defined routine.


-7434	Parameter information not supported for SELECTS.

Feature is not implemented.


-7435	This statement references a table that is used in the parent queries.

Subqueries or queries invoked by nested user-defined routines cannot
reference tables used by parent queries or calling user-defined
routines. Restructure your query to avoid this situation.


-7436	Inappropriate statement for parameter information.

You requested parameter information calls for a non-DML statement.
Parameter information can be obtained only for DML statements.


-7438	Unsupported data type.

The data type you are using is not supported. Verify the type
definition.


-7442	The statement must be opened before this operation can be performed.

An attempt was made to fetch or close a prepared statement that is not
open. Ensure that a mi_open_prepared_statement call was successfully
completed prior to calling mi_fetch_statement or mi_close_statement.


-7443	The statement must be closed before it can be reopened or executed.

An attempt was made to open or execute a prepared statement that is
already open. A statement must be closed before it can be reopened with a
mi_open_prepared_statement call or executed with a mi_exec_prepare_statement
call.

-7469	Calling %s is not supported from compare function.

Compare() functions cannot call strings.


-7470	Invalid connection connection_handle.

Verify arguments to DataBlade API calls. The connection handle used was
NULL, not opened, invalid, or improperly modified.


-7471	Internal error: Invalid user-defined routine context/state (state)

If this error recurs, note all circumstances and contact IBM Technical
Support.


-7472	Out of memory allocating internal user-defined routine connection state.

Check disk space on your computer. For more help, call your system
administrator or database administrator. If these checks do not
resolve the problem, and this error recurs, note all
circumstances and contact IBM Technical Support.


-7473	Internal error: Bad install of user-defined routine-language manager
callback.

If this error recurs, note all circumstances and contact
IBM Technical Support.


-7474	Out of memory allocating server user-defined routine connection.

Check disk space on your computer. For more help call your system
administrator or database administrator. If this error recurs,
note all circumstances and contact IBM Technical Support.


-7475	Cannot close a connection from outside of its own parent statement.

Check the logic in your user-defined routine. You must open and close
connections within the scope of the user-defined routine.


-7476	Cannot close a session-duration connection within an UDR.

A session-duration connection has the scope of the session to which it is
associated. Such a connection cannot be closed within an UDR. See the IBM
Informix DataBlade API Programmer's Guide and the IBM Informix DataBlade
API Function Reference for further details.


-7490	Cannot open trace output file file_name.

Check permissions on the file and its directory. For more help, call
your system administrator or database administrator.


-7491	Cannot read trace system table table_name.

If this error recurs, note all circumstances and contact
IBM Technical Support.


-7492	Write to trace output file failed.

Check permissions on the file and its directory. Check disk space on
your computer. For more help, call your system administrator or
database administrator. If this error recurs, note all
circumstances and contact IBM Technical Support.


-7493	Cannot create internal map to trace classes.

Check disk space on your computer. For more help call your system
administrator or database administrator. If this error recurs,
note all circumstances and contact IBM Technical Support.


-7494	Cannot create internal trace message list.

Check disk space on your computer. For more help call your system
administrator or database administrator. If this error recurs,
note all circumstances and contact IBM Technical Support.


-7500	Invalid multibyte character in syserrors catalog table for sqlstate
SQLSTATE_value.

An invalid multibyte character has entered the syserrors catalog
table. Possibly, the syserrors.locale is not the actual locale used
for syserrors.message. This table is normally populated with DataBlade
messages or possibly messages from user-defined routines.


-7503	The BLOB or CLOB data size provided differs from the client file size.

The size of the BLOB or CLOB data that was provided in a load command is not 
the same as the actual size of the smart large object client file. 
Verify that the data size provided in the load command is correct or check if 
the smart large object client file is incomplete or corrupted.


-7510	API use not valid in callback (<routine>).

You cannot call this routine in the callback.

For information on the use of callbacks, see the "DataBlade
API Programmer's Manual."


-7514	MI_EVENT_END_XACT callback can only be registered inside a transaction.

Move the end-of-transaction callback inside your transaction.


-7520	Argument argument_name is NULL.

Verify arguments to DataBlade API calls. NULL was passed but not
expected.


-7521	GLS internal error encountered within API: error_code.

Verify your CLIENT_LOCALE. If this error recurs, note all
circumstances and contact IBM Technical Support.


-7522	Incomplete locale information for conversion between client and server
formats

Verify your CLIENT_LOCALE. If this error recurs, note all
circumstances and contact IBM Technical Support.


-7530	Missing parenthesis in the signature specified for user-defined routine
lookup.

Verify signature for routine specified for fastpath execution.


-7531	Invalid user defined routine type: must be function or procedure.

Specified user-defined routine must be a function or a procedure.
Verify name and definition of routine to be called.


-7532	Error converting type in string format to id format

Verify spelling and definition of types used in the routine signature.


-7533	Error in user-defined-routine lookup: Specified user-defined routine
not found.

Verify spelling and definition of user-defined routine.


-7534	Error initializing user-defined-routine sequence for execution.

If this error recurs, note all circumstances and contact
IBM Technical Support.


-7535	Invalid MI_FPARAM pointer returned.

If this error recurs, note all circumstances and contact
IBM Technical Support.


-7536	Error unlinking function descriptor from connection, not previously
linked.

Verify arguments to Blade API calls. The connection handle used was
NULL, not opened, invalid or improperly modified.


-7537	Error setting default arguments for execution of user-defined routine.

Review arguments to user-defined routine.


-7538	Error converting default arguments to C style values.

If this error recurs, note all circumstances and contact
IBM Technical Support.


-7539	Error performing fastpath execution of UDR from API.

If this error recurs, note all circumstances and contact
IBM Technical Support.


-7540	Routine's return value ID is out of range.

If this error recurs, note all circumstances and contact
IBM Technical Support.


-7542	Cast user-defined-routine lookup failed.

Verify spelling and definition of types used in the routine signature.
If this error recurs, note all circumstances and contact
IBM Technical Support.

-7546	Unknown routine type <text>, routine type must be one of 'f'
or 'p'.

You used an invalid routine type when using mi_create_signature() to 
create a function or procedure.

Specify either 'f' or 'p' as the routine type.


-7547	Routine name is missing in call to mi_create_signature.

Verify that you included all required parameters in your call to the
mi_create_signature() function. For the complete syntax of
mi_create_signature(), refer to the DataBlade API Function Reference.


-7549	Cannot use mi_funcmap_get on remote routines.

This routine must be used with functions that are in the local database.

Remove references to routines on remote databases from mi_funcmap_get().


-7580	Invalid attempt to call routine: this routine may only be called
from an am_check routine.
 
You tried to call the specified routine from a UDR other than 
a VTI/VII am_check routine. Outside of am_check routines, use 
mi_db_error_raise to report messages and errors. 


-7590	Cannot read past the end of stream marker.

After a call to mi_stream_eof() would have returned MI_TRUE, indicating
the end of the file or stream, another read operation was attempted. You
cannot read past the end-of-stream marker.

Once the mi_stream_eof() function returns MI_TRUE, terminate read
operations to avoid this error.


-7591	This is a generic mi_stream failure.

An unspecified mi_stream error occurred. The cause is not clearly
known.

Check the stream-type documentation for any details.


-7592	The mi_stream function being called is not implemented.

An attempt was made to execute an unimplemented mi_stream
operation, such as mi_stream_read(), mi_stream_write(), or
mi_stream_seek(). Not all mi_stream types support all mi_stream
functions.

Check the functional definition for the stream being used to ensure
that the function that returns this status has been implemented.


-7593	During an mi_stream operation a Send side failure has occurred.

During an mi_stream operation, the send side of a data transfer
encountered problems, and the data transfer failed. This status is
usually associated with Enterprise Replication (ER) operations.

Check the log files for any additional information.


-7594	During an mi_stream operation a Receive side failure has occurred.

During an mi_stream operation, the receive side of a data transfer
encountered problems, and the data transfer failed. This status is
usually associated with Enterprise Replication (ER) operations.


-7595	An error has occurred during the conversion or manipulation of
the ifx_int8 involved with an mi_stream operation.

A conversion operation for ifx_int8 values failed.

Check the values being used to verify that they match the types required
and are set with valid data.


-7596	An mi_stream seek has occurred using a bad whence value.

A call to mi_stream_seek() received a seek parameter that is in
error.

Use one of the following values:

   MI_LO_SEEK_SET or SEEK_SET
   MI_LO_SEEK_CUR or SEEK_CUR
   MI_LO_SEEK_END or SEEK_END


-7597	An attempt to determine the shared library module ID for an
mi_stream operation has failed.

An mi_stream function address lookup failed. The shared-library
module handle is set to NULL to indicate that no shared library is
currently loaded.

Check the log files for any errors that might have occurred when
an attempt was made to load the library. Common load problems
include an incorrect library path and a library that does not
exist at the designated location.


-7598	The mi_stream function symbol lookup in a shared library failed.

An mi_stream function symbol name was not found in the given
shared-library module.

Check that the spelling of the function symbol name is correct.


-7599	The mi_stream function address lookup in a shared library failed.

An mi_stream function address could not be resolved using the function
name provided. The function handle could not be mapped to a real
executable address.

Check the log files for any errors that might have occurred when
an attempt was made to load the library. Check the spelling of
the function name.


-7601	Bad cursor action: Subquery collections only support cursor
action MI_CURSOR_NEXT.

A cursor action other than MI_CURSOR_NEXT was used on a subquery collection.

Remove any invalid cursor actions. For subquery collections, use only the
MI_CURSOR_NEXT cursor action or open the subquery collection without the
flags MI_COLL_NOSCROLL and MI_COLL_READONLY.


-7602	Internal error: Invalid field count for a row.

This is an internal error.

If it recurs, note all circumstances and contact
IBM Technical Support.


-7607	Invalid row literal value.

A row literal should be well-formed with respect to its syntax and the type
of objects contained in the literal. For a description of the syntax and
semantics of Literal Row, refer to the IBM Informix Guide to SQL: Syntax.


-7610	Invalid collection literal value.

Your collection value is not well-formed.

See the documentation for a description of the construction of collection
literal values.


-8001	The number of newlines specified for TOP MARGIN, FIRST PAGE HEADER
(PAGE HEADER), PAGE TRAILER, and BOTTOM MARGIN must leave enough room on the
page for the printing of the ON EVERY RECORD clause.

The total number of lines that are defined for all the above statements
exceeds the page length. Check that you entered the desired number of
lines in each statement in the OUTPUT section and in the header and
trailer specifications of the FORMAT section.


-8002	The ACE report specification is too complex or large to be properly
compiled. The number of instructions needed to implement this specification is
greater than the space that is allocated in the instruction tables for the
compiler.

Reduce the size of the report. Because you cannot divide a report into
parts to compile separately, you must find a way to simplify the
report.


-8003	A SMALLINTEGER constant may not be larger than 32767.

The allowable range of values for a SMALLINT constant is -32,767
through 32,767. Only whole numbers are allowed, with only digit
characters.


-8004	Illegal FLOAT constant.

The FLOAT constant is not written correctly. The exponent might be too
small or too large (the allowable range of exponents depends on your
computer and operating system but is the same as your C compiler allows
for the DOUBLE data type), or incorrect punctuation or a nondigit
character other than e might be present.


-8005	Too many user variables, parameters, or functions have been defined.
You cannot define any more than number in an ACE specification.

The total number of identifiers that are defined for ASCII fields,
parameters, and variables cannot exceed the number that is shown. You
must simplify the report.


-8006	A quoted string may not exceed 80 characters in length.

You must reduce the quoted string to a maximum of 80 characters. In a
PRINT statement, simply divide the string into shorter parts, and
separate the parts with commas.


-8007	There is an unmatched quote in a quoted string.

This line of the report specification contains an odd number of quote
(") symbols. A quoted string cannot include a new-line character; all
quoted strings must be complete in one line. In order to print a longer
string, store its parts in variables and list them all in a PRINT
statement.


-8008	The file filename could not be opened. The operating system was asked
to open it for reading.

Check the spelling of the filename. Make sure that the file exists and
that your account name has read access to it. If the file is in a
directory other than the current directory, you might have to enter a
complete pathname.


-8009	A memory allocation error has occurred. The ACE report specification
is probably too large.

The ACE compiler could not allocate memory that it needed. Try reducing
the size of the report specification.


-8010	The file filename could not be opened. The operating system was asked
to open it for writing. It is possible that a file by the same name already
exists, but the user has no permission to write over it, or, if -o is used,
the  destination directory does not exist.

Ensure that filename is spelled correctly and that your account name
has write access to the directory where it will be stored. (That
directory might be the one that the environment variable DBTEMP names.)
If a file of that name already exists, either erase it or make sure
that your account has write access to it.


-8011	The user function called name has not yet been defined by the user.

A call was made to a function with the name shown. ACE assumes that it
is an external C function. However, external functions must be defined
in the DEFINE section of the report using FUNCTION funcname statements,
and this name is not defined. If name was intended as the name of an
external function, insert a FUNCTION statement for it.


-8013	An error occurred when an attempt was made to open the listing file
filename.  Be certain that the user has write permissions in the current
directory.

Ensure that your account has write access to the current directory. If
a file filename already exists, check that your account has write
access to it.


-8014	Usage: SACEPREP [-q][-o output_directory] input_filename (etc.)

Something in the command line that you entered was not acceptable to
saceprep. Read the message to remind yourself of the syntax of the
various options and then retype the command line.


-8015	An open comment symbol, {, was found inside an already open comment
on line line-number, character char-number. This could be due to a failure
to closethe previously opened comment, which was begun on line lnum,
character cnum.

You cannot nest comments. Insert a close-comment symbol where
appropriate in the report specification.


-8016	A comment has been opened but not closed. The last comment begun was
opened on line line-number, character char-number.

Insert a close-comment symbol where appropriate in the report
specification.


-8017	An illegal (invisible, control) character has been found on line
line-number, character char-number. It has been replaced by a blank in the
listing, but it is still in the source (input) file, and should be removed
before attempting to compile again.

Using a word-processing editor in document mode instead of text mode,
striking nonprinting keys while you are editing the file, or data
corruption can introduce illegal characters into files.


-8018	A grammatical error has been found on line line-number, character
char-number. The construct is not understandable in its context.

A syntax error exists in the source file. A keyword might be misspelled
or misplaced in the file. Check the spelling of the keyword or the
sequence of control blocks within the report-specification file.


-8019	Cannot open temporary file filename for reading of a TEXT column.

For each TEXT column that is selected for the report, ACEGO prepares a
temporary file in the directory that the DBTEMP environment variable
names. This message indicates that the file was created and loaded
with a copy of a TEXT value, but now it cannot be read. Look for
operating-system error messages that might give more details. If the
error recurs, note all circumstances and contact
IBM Technical Support.


-8021	The source file filename cannot be opened. This is probably because
the file does not exist.

Check the spelling of filename. Check that the report-specification
file exists in your current directory, or if it is in another
directory, check that you provided the correct pathname. If this 
information is correct, verify that your account has read permission on the
file.


-8022	This identifier exceeds the maximum length for identifiers, which is 50.

You must devise a shorter identifier.


-8025	The comment close symbol, }, has been found on line line-number,
character char-number, even though no comment has been opened.

Unless comment symbols are enclosed in quotes, they must be balanced.
Probably the open-comment symbol was accidentally deleted during
editing. Change the file so that comments are properly delimited.


-8030	A typographical error has been found on line line-number, character
char-number.

The single character at the location that is shown is not syntactically
correct; it cannot be interpreted as part of a report specification.


-8033	The source file name filename exceeds the maximum length of 10.

The form compiler imposes a limit on the length of source-file
identifiers. You must rename the file before you use it. In DOS
systems, filenames can be a maximum of 8 characters plus a 3-character
extension.


-8034	An unknown option option was found on the command line.

ACEPREP supports the following command-line options:

    *   -s to suppress messages

    *   -o to name an output destination

    *   -ansi to test for ANSI compliance

ACEGO supports the following command-line options:

    *   -s to suppress messages

    *   -d to name a database


-8051	The LEFT MARGIN must be no less than zero and no greater than the RIGHT
MARGIN.

Revise the left and right MARGIN statements in the OUTPUT section to
reasonable margin values.


-8052	There is insufficient space in the compiler string table for the
storage of CHAR variables.

Reduce the length or number of character variables in the report
specification.


-8053	Neither the PAGE LENGTH, TOP MARGIN, nor BOTTOM MARGIN is allowed
to be less than zero.

Revise the statements in the OUTPUT section to have reasonable values.


-8054	The string string does not fit into remaining space in the compiler's
string table.

Reduce the length or number of strings in the report specification.
Identical strings are stored only once.


-8055	This constant causes the constant table in ACEPREP to overflow.

Reduce the number of numeric constants that the report-specification
file uses.


-8056	Skipping lines inside of WHILE or FOR loops is not allowed within PAGE
HEADER or TRAILER.

ACEPREP needs to determine how many lines of space to devote to the
page header and trailer (otherwise, it does not know how many detail
rows to allow on the page). It cannot predict how many times a loop
will be executed, so it has to forbid the use of SKIP statements in
loops in these sections.


-8057	Only user variables of type CHARACTER may be subscripted or have lists
in the LET statement.

You can use a subscript (two numbers in square brackets, used to
extract a substring of characters) with names of character variables
only. In a LET statement, you can assign multiple strings, separated by
commas, to a character variable only. Variables of other types can
receive only single values.


-8058	The ASCII field field-name has already been defined.

A field name can be defined only once. Field names must be unique in
the DEFINE section, that is, a name cannot be used for both a PARAM and
a field.


-8059	The limit for IF statement nesting has been exceeded. There are too
many IF statements within IF statements for ACE to properly compile this
specification.

You have exceeded the maximum levels of nested IF statements. You must
simplify the logic of the report.


-8060	An end-of-file has been prematurely found in the report specification.

ACEPREP encountered the end of the report-specification file while it
still expected input. Possibly you omitted an END statement. A minimal
FORMAT section that contains at least an EVERY ROW statement is
required, and any control block must contain at least one statement.


-8061	This report contains a READ statement but no ASCII record definition
has been specified.

In order to use the READ statement, you must use the ASCII statement in
the DEFINE section to define the expected fields of the ASCII file.


-8062	This report contains a SELECT statement, but a READ statement should
be used instead because an ASCII record definition has be specified.

You can base a report on an ASCII file or on database rows, but not on
both. The ASCII statement in the DEFINE section means that file input
will be used, and a READ statement is used to read the file. If you
want to base the report on database rows, retain the SELECT statement
and delete the ASCII statement.


-8102	There may be only one AFTER or BEFORE GROUP OF clause for any single
column specified in the ORDER BY command.

The report contains more than one AFTER GROUP OF clause for a certain
column or more than one BEFORE GROUP OF clause. Only one of each can
name a given column. However, you can combine the statements from the
multiple clauses into a single clause.


-8103	In order for the BEFORE or AFTER GROUP OF clause to function properly,
the column specified in the clause must also have been specified as a sort
column in the ORDER BY command. If the sort column is subscripted, the column
in the BEFORE or AFTER GROUP OF clause must be also.

Make sure that the control columns are specified identically in both
the ORDER BY statement and the GROUP OF clauses.


-8104	Group aggregates can only be used in an AFTER GROUP OF clause.

Aggregate values over a group are accumulated while the rows of the
group are being processed, so they are not available until the end of
the group is seen. Therefore, the report cannot refer to them except in
an AFTER GROUP OF clause.


-8105	Aggregates may not be used within another aggregate.  Nor may
aggregates be used within the WHERE clause of another aggregate.

Aggregate functions cannot be nested, primarily because the value of
the inner aggregate is not known while the outer aggregate is being
accumulated. Rewrite aggregate expressions to refer only to columns and
simple expressions on columns. In an AFTER GROUP OF clause, you can
save the aggregate value from one group of rows in a variable in order
to use it to compute an aggregate over a subsequent group.


-8107	A user variable or parameter has been defined by the user more than
once.

You can define a name only once in a DEFINE section. You used a name
more than once in the ASCII, PARAM, or VARIABLE statements.


-8108	A user variable or parameter must have a length which is greater than
zero.

Make sure that every CHAR and VARCHAR field in the DEFINE section has a
nonzero length specification.


-8109	Wordwrap may not be used within PAGE HEADERS or TRAILERS.

ACEPREP needs to know how many lines will be filled in header and
trailer sections (otherwise, it does not know how many detail rows to
put on the page). However, printing with the WORDWRAP function can fill
a variable number of lines, depending on the words. Therefore, it is
not allowed in page header or trailer sections.


-8110	The user variable called name has not yet been defined.

The variable, parameter, or field name was not defined in the DEFINE
section. If name is spelled correctly, it must be defined.


-8111	User variables and run-time parameters may not be used in an ORDER BY
statement.

Only names of columns can be used in an ORDER BY clause. Check the
spelling of the column names or display labels in the clause. You
cannot request ordering by the contents of defined variables,
parameters, or ASCII fields.


-8112	Within an IF-THEN-ELSE statement of a header or trailer clause, the
number of lines printed in the IF part must equal the number of lines printed
in the ELSE part.

ACEPREP needs to know how many lines will be filled in header and
trailer sections (otherwise, it does not know how many detail rows to
put on the page). Because it cannot tell which part of an IF statement
will be executed, it requires that both produce the same number of
lines of output.


-8113	SKIP TO TOP OF PAGE is not allowed in any header or trailer clause.

When SKIP TO TOP OF PAGE is executed, the page-trailer clause must be
executed (to display fixed page-end material), followed by the
page-header clause. If the statement was allowed in a header or trailer
clause, an infinite loop could ensue.


-8114	The number of lines to be printed in the top and bottom margins plus
the lines to be printed in the page header and trailer clauses exceeds or
equals the page length.

Examine the statements in the OUTPUT section and in any HEADER and
TRAILER clauses. The total of lines that these statements use must be
sufficiently less than the specified page length that some detail rows
can be printed.


-8115	There may be no more than 8 sort columns specified in the ORDER BY
command.

ACEGO limits the number of columns that can be ordered. You must reduce
the number of columns that are listed following ORDER BY.


-8116	Illegal subscripting in ORDER BY command.

You can only subscript a character field. Check the subscripts. No
negative numbers are allowed; the numbers must fall within the length
of the character column; and the first number must be less than or
equal to the second number.


-8121	The specified WORDWRAP RIGHT MARGIN value is out of range. It must be
greater than or equal to the current column and less than or equal to the
report's right.

The right margin of a WORDWRAP clause is used to set a narrower right
margin than the one that applies to the report as a whole. The
effective left margin of a WORDWRAP display is the current column when
WORDWRAP is processed. The right margin must fall between the current
column and the report margin.


-8122	NEED n LINES may not be used in PAGE HEADER or PAGE TRAILER clauses.

The PRINT statements in a page header or trailer establishes its size.
To set a larger size, use PRINT statements with no parameters.


-8123	The PRINT FILE command is not allowed within the FIRST PAGE HEADER,
PAGE HEADER, or PAGE TRAILER clauses.

ACEPREP needs to know how many lines will be filled in header and
trailer sections (otherwise, it does not know how many detail rows to
put on the page). Because the size of a file cannot be predicted when
the report is compiled, the PRINT FILE command is not allowed. You must
use PRINT statements to produce the data.


-8124	A user variable used in the above query has not been defined in the
DEFINE section.

A variable that is named in the SELECT statement is not defined in the
DEFINE section of the report. Check that all names in the SELECT
statement are the ones that you intended and that you have not
misspelled any column or variable names.


-8125	The keyword END was found more than once inside the SELECT section.
Within the SELECT section, use semicolons to separate SQL statements. Use the
keyword END only after the final SELECT.

Review the contents of the SELECT section to make sure that each SELECT
statement except the last one ends in a semicolon and that the last one
is followed by an END statement. Perhaps you omitted the FORMAT
statement at the beginning of that section.


-8126	PARAM[0] may not be defined.

The first parameter that you can define in the PARAMETER statement is
number 1. In some host-operating systems, the zeroth parameter is
preset to the program name, but this value is not available within a
report.


-8127	You cannot use more than one REPORT TO statement in a report
specification.

The entire report is directed to one destination, which is chosen with
the REPORT TO statement in the OUTPUT section. The report cannot be
divided between multiple destinations, so remove all REPORT TO
statements after the first. If you want to produce separate report
files for different sets of data, perform one of the following steps:

    *   Write a separate report for each set of data (the
	specifications should differ only in their SELECT statements).

    *   Produce a full report, but with sets of data on separate pages,
	and use operating-system utilities and tools to separate the
	files afterward.

    *   Use parameter variables in the SELECT statements so that you
	can choose a subset of data dynamically, when you run the
	report, and use REPORT TO PRINT so that you can set the DBPRINT
	variable to control the output destination before you start the
	report.


-8128	Minimum length of a VARCHAR variable must be smaller than the maximum
size.

A VARCHAR variable is defined with the two numbers name(n,r), where n
is the maximum length of the variable and r is the reserved length. The
reserved length is meaningful only in the context of a database table
definition, although it is allowed when you define a report variable.
If you specify it, you must write a number for r that is less than or
equal to the size, n.


-8129	Specified page length length is too short for default report.

A report page cannot fit in the number of lines that are specified.
Allow more lines per page or revise the report specification to use
fewer lines (for instance, by changing the top or bottom margins).


-8130	An INTEGER constant may not be larger than 2147483647.

This statement specifies a value that cannot be contained in an
integer. Either use a smaller value or a different data type (for
example, DECIMAL).


-8200	User <user-name> does not have DBSECADM authority.

User does not have the necessary permission to perform the operation;
only DBSECADM has the authority to perform this operation. Contact the
DBSECADM to perform this operation.


-8201	The security label component <component-name> already exists.

The security label component to be created is already defined in the
database. For RENAME SECURITY LABEL COMPONENT, a security label
component with the specified new name already exists. Verify that you
have specified the correct component name and that you are in the
correct database.


-8202	The security label component element <element-name> is
already defined.

The security label component element was specified more than once
in the list of security label component elements. For TREE security
label component, the security label component element is already
defined as ROOT or UNDER some other element. Specifying the
element more than once on the left side of UNDER clause is not
allowed. Verify that you have specified the correct component
element name.


-8203	The security label component element <element-name> exceeds 32 bytes.

The security label component element specified exceeds its limit
length of 32 bytes. Specify a shorter name.


-8204	The security label component <component-name> has too many elements.

A security label component can have no more than 64 elements.
Your statement exceeded this limit. Specify a smaller number of
elements within the limit.


-8205	The security label component element <element-name> is not
yet defined.

This error can have any of the following causes:

    *  The element <element-name> is used on the right side of the
       UNDER clause in CREATE or ALTER SECURITY LABEL COMPONENT
       statement but has not yet been defined as being ROOT or
       being UNDER some other element. Define the object as ROOT
       or as being UNDER some defined element.

    *  The element <element-name> is used on the right side of
       BEFORE or AFTER clause of ALTER SECURITY LABEL COMPONENT
       has not yet been defined. Specify a defined or existing
       element name.


-8206	The security policy <policy-name> already exists.

The security policy to be created is already defined in the database.
For RENAME SECURITY POLICY, a security policy with the specified new
name already exists. Verify that you have specified the correct policy
name and that you are in the correct database.


-8207	The security label component <component-name> was specified
more than once.

The security label component was duplicated in the list of components
of a security policy or a security label. Verify that you have specified
the security label component name correctly. Remove any duplicates
from the list of security label components.


-8208	The security label component <component-name> does not exist.

The specified security label component does not exist in the database.
Verify that you have specified the correct security label component
name, and that you are in the correct database.


-8209	The maximum number of components in security policy <policy-name>
has been exceeded.

A security policy can have a maximum of 16 components. You have exceeded
the number of component allowed to make up a security policy.


-8210	The security policy <policy-name> does not exist.

The specified security policy does not exist in the database. Verify
that you have specified the correct security policy name, and that
you are in the correct database.


-8211	The security label <label-name> already exists.

The security label to be created is already defined in the database.
For RENAME SECURITY LABEL, a security label with the specified new
name already exists. Verify that you have specified the correct
label name and that you are in the correct database.


-8212	The security label component <component-name> is not defined
in the security policy.

Security labels can only contain values for those components that are
defined in the security policy of which the label is a part. The specified
security label component is not part of the security policy, so the
component cannot be used in that security label. Verify that you have
specified the correct component name and that you are in the correct
database.


-8213	The element <element-name> is not defined in the security label
component.

The component element does not exist in the definition of the security
label component. If you get this error when executing the scalar
function SECLABEL_BY_COMP(), then check the security label string
to make sure that the values are listed in the same order that the
components are listed in the security policy.


-8214	Two or more elements are specified for the security label
component <component-name>.

A security label cannot have multiple elements for a component of
type ARRAY. Specify only one element for the security label component.


-8215	The security label component element <element-name> was
specified more than once.

The security label component element was duplicated in the list of
elements of a security label component. Verify that you have specified
the security label component element name correctly.  Remove any
duplicates from the list of security label component elements.


-8216	The access rule <rule-name> does not exist in the rule set
used by the security policy.

The access rule specified in the GRANT EXEMPTION or REVOKE EXEMPTION
statement is not part of the LBAC rule set that is used by the
security policy. Specify an access rule that is part of the rule set
used by the specified security policy.


-8217	Cannot specify PUBLIC or a role name.

GRANT or REVOKE SECURITY LABEL or EXEMPTIONS to or from PUBLIC or a
role is not allowed. Specify an individual user name.


-8218	A DBSECADM cannot grant a privilege, security label or
exemption to self.

DBSECADM is not allowed to grant a privilege, security label, or
exemption to self. Ask another DBSECADM to perform this operation.


-8219	A DBSECADM cannot revoke a privilege, security label or
exemptions from self.

DBSECADM is not allowed to revoke a privilege, security label, or
exemption from self. Ask another DBSECADM to perform this operation.


-8220	User <user-name> does not hold this privilege, security label, 
or exemption.

The specified user does not hold this privilege, security label, or
exemption, so the revoke operation failed.


-8221	The security label <label-name> does not exist for the
security policy.

The specified security label does not exist for the security policy.
Verify that you have specified the correct security label name and
security policy name and that you are in the correct database.


-8222	User already has a security label <label-name> for READ access.

Each user can have at most one security label for READ access and at
most one for WRITE access. A security label has already been granted
to the user for READ access. If you want to change the user's security
label for READ access, you must first use the REVOKE SECURITY LABEL
statement to revoke the security label from the user.


-8223	User already has a security label <label-name> for WRITE access.

Each user can have at most one security label for READ access and at
most one for WRITE access. A security label has already been granted
to the user for WRITE access. If you want to change the user's security
label for WRITE access, you must first use the REVOKE SECURITY LABEL
statement to revoke the security label from the user.


-8224	The security label <label-name> conflicts with the existing
granted security label.

If the user is granted two distinct labels, one for READ access and
another for WRITE access, they must satisfy the following rules:

    *  For security label components of type ARRAY, the value must be
       the same in both security labels.

    *  For security label components of type SET, the values given in
       the security label used for WRITE access must be a subset of
       the values given in the security label used for READ access.

    *  For security label components of type TREE, either the values
       must be the same, or the values given in the security label
       used for WRITE access must be one of the sub tree values of
       the security label used for READ access.


-8225	The security label component <component-name> is currently in use.

The security label component cannot be dropped because one or
more security policies refer to it. The following query can be used
find all the security policies that refer to this security label
component:

         SELECT SECPOLICYNAME  FROM SYSSECPOLICIES
             WHERE SECPOLICYID = (SELECT  SECPOLICYID FROM
                                  SYSSECPOLICYCOMPONENTS
             WHERE COMPID = (SELECT COMPID FROM SYSSECLABELCOMPONENTS
             WHERE COMPNAME = "<component-name>"))


-8226	The security label <policy-name.label-name> is currently in use.

The security label could not be dropped because:

    *  It is granted to one or more users. Revoke this security label from
       all users who have been granted this security label for this
       security policy. The following query can be used to find all
       the users who have been granted with this security label.

         SELECT GRANTEE FROM SYSSECLABELAUTH
             WHERE READSECLABELID = (SELECT SECLABELID FROM SYSSECLABELNAMES
             WHERE SECLABELNAME = "<label-name>"    AND
                   SECPOLICYID = (SELECT SECPOLICYID FROM SYSSECPOLICIES
             WHERE SECPOLICYNAME = "<policy-name>")) OR
                   WRITESECLABELID = (SELECT SECLABELID FROM SYSSECLABELNAMES
             WHERE SECLABELNAME = "<label-name>"    AND
                   SECPOLICYID = (SELECT SECPOLICYID FROM SYSSECPOLICIES
             WHERE SECPOLICYNAME = "<policy-name>"))

    *  It is being used to protect one or more columns. For all the
       tables that use this security label to protect a column, either
       alter the table to drop this column protection or drop the table.
       The following query can be used to find all protected tables and
       all the columns that are protected with this security label.

         SELECT TABNAME, COLNAME FROM SYSCOLUMNS, SYSTABLES
             WHERE SYSCOLUMNS.TABID = SYSTABLES.TABID   AND
                   SECLABELID = (SELECT SECLABELID FROM SYSSECLABELNAMES
             WHERE SECLABELNAME = "<label-name>"        AND
                   SECPOLICYID = (SELECT SECPOLICYID FROM SYSSECPOLICIES
             WHERE SECPOLICYNAME = "<policy-name>"))


-8227	The security policy <policy-name> is currently in use.

The security policy could not be dropped because:

    *  It is being used to protect one or more tables. For all the
       tables that use this security policy, either alter the table to
       drop this table protection or drop the table. The following
       query can be used to find all the tables protected by this policy:

         SELECT TABNAME FROM SYSTABLES
             WHERE SECPOLICYID= (SELECT SECPOLICYID FROM SYSSECPOLICIES
             WHERE SECPOLICYNAME = "<policy-name>" )

    *  There are one or more security labels that use it. Drop all the
       security labels that are part of this security policy. The
       following query can be used find all security labels that belong
       to this security policy:

         SELECT SECLABELNAME FROM SYSSECLABELS
             WHERE SECPOLICYID=(SELECT  SECPOLICYID FROM SYSSECPOLICIES
             WHERE SECPOLICYNAME = "<policy-name>" )

    *  There are one or more exemptions granted on one or more of its
       rules. Revoke all exemptions granted for this security policy from
       all users. The following query can be used to find all users that
       have been granted exemptions for this policy:

        SELECT GRANTEE, EXEMPTION FROM SYSSECPOLICYEXEMPTIONS
            WHERE SECPOLICYID=(SELECT  SECPOLICYID FROM SYSSECPOLICIES
            WHERE SECPOLICYNAME = "<policy-name>")


-8228	Cannot GRANT or REVOKE SETSESSIONAUTH privilege to or from PUBLIC.

To grant or revoke SETSESSIONAUTH privilege to or from PUBLIC is not
allowed. Specify an individual user or role name.


-8229	User <user-name> does not have SETSESSIONAUTH privilege.

Only users holding SETSESSIONAUTH privilege can perform SET SESSION
AUTHORIZATION operation. Ask the DBSECADM to grant the privilege.


-8230	User <user-name> does not have the authority to grant or
revoke DBSECADM.

Only the DBSA has the authority to grant or revoke DBSECADM privilege.
Contact the DBSA to perform this operation.


-8231	DBSECADM cannot be granted to user <user-name>.

The GRANT statement attempted to grant DBSECADM to an authorization name that
is not allowed to receive that authority. The DBSECADM authority can only be
granted to an individual user.


-8232	The element <element-name> already exists in the security
label component.

During ALTER SECURITY LABEL COMPONENT, the security label component
element to be added to an existing component is already defined in that
security label component.


-8233	Cannot secure columns or rows in a table without a security policy.

A table cannot be protected with row or column level granularity
without associating a security policy with the table. The user should
add a security policy to the table using the SECURITY POLICY clause
of the CREATE TABLE statement or the ADD SECURITY POLICY clause of the
ALTER TABLE statement.


-8234	Invalid specification of a column <column-name> of type
IDSSECURITYLABEL.

For a column of type IDSSECURITYLABEL, the specification of an attribute
for the column is invalid because a column of type IDSSECURITYLABEL
cannot be encrypted or altered to a different data type. The column of
type IDSSECURITYLABEL also cannot have attributes like column protection,
single column contraints or be part of multiple column referential or
check contraints. The DEFAULT clause cannot be specified for the 
IDSSECURITYLABEL column in a CREATE TABLE statement. The DEFAULT clause
can be specified for the IDSSECURITYLABEL column only in an ALTER TABLE 
statement. The default value provided will only be applied to existing rows 
in the table.


-8235	A security policy cannot be added to a temporary, typed or 
external table.

Adding a security policy to a temporary, typed or external table is not
supported. Do not associate a security policy with a temporary or
external table.


-8236	Only one security label column is allowed in a table.

An attempt was made to create or alter a table with more than one
security label column. For a CREATE TABLE statement, declare only
one column to have the IDSSECURITYLABEL type. For an ALTER
TABLE statement, a column of type IDSSECURITYLABEL already exists.


-8237	Cannot modify column <column-name> to type IDSSECURITYLABEL.

An existing column cannot be modified to IDSSECURITYLABEL data type;
this data type is used only for the security label column to protect
data rows. To protect table with row-level granularity, add a new column
of type IDSSECURITYLABEL.


-8238	Source table must have the same security protection as target table.

The security protection on the tables is not identical. The tables are
protected by different security policies or the set of security labels
protecting columns in the source table is not identical to that of target
table. The two tables must have the same secuirty policy, same protection
granularity, have the same set of protected columns, and each
pair of corresponding columns must be protected with same security label.


-8239	The table <table-name> already has a security policy.

A table can have at most one security policy attached to it. Do not try
to associate another security policy with the table before you have
dropped the association of the table with its current security policy.


-8240	The table <table-name> is not protected with a security policy.

A security policy cannot be dropped from a table that is not protected
with a security policy.


-8241	The column <column-name> has already been protected by a
security label.

The specified column is already protected by a security label. Do not
add another security label for protecting the column.


-8242	The column <column-name> is not protected by a security label.

Column security cannot be dropped from a column that is not protected by
a secuirty label.


-8243	User <user-name> does not hold a security label for READ access.

To execute the built-in function SECLABEL_TO_CHAR, the user must have a
security label for READ access of the security policy. Ask the DBSECADM
to grant a security label for READ access.


-8244	The value <column-value> provided for row security label column
is invalid.

An INSERT or UPDATE statement specified a value for a column of type
IDSSECURITYLABEL. The value corresponds to a null label or cannot be
converted to a valid security label for the security policy that is
protecting the table. Check the INSERT or UPDATE statement and make
sure that the value being set in the security label column is valid
for the security policy protecting the table.  Sometimes an invalid
value can be generated as a result of a SELECT statement done from a
table that is not protected with the same security policy as the target
table. You should only copy security labels between tables protected by
the same security policy.


-8245	User cannot perform READ access to the protected column
<column-name>.

While accessing the table protected by a security policy, the user
is attempting SELECT, DELETE, or UPDATE access on the column. The user
does not have the LBAC credentials necessary to read the column.
Ask the DBSECADM to grant the user the LBAC credentials that allow
READ access to the column.


-8246	User cannot perform WRITE access to the protected column
<column-name>.

While accessing the table protected by a security policy, the user
is attempting INSERT, DELETE, or UPDATE access on column. The user
does not have the LBAC credentials necessary to update the column.
Ask the DBSECADM to grant the user the LBAC credentials that allow
WRITE access to the column.


-8247	User does not have the LBAC credentials to perform INSERT
on table <table-name>.

The user is not allowed to perform INSERT on the table. A user is
not allowed to insert a row into a protected table if the user does
not have appropriate security label or exemption credentials. Ask the
DBSECADM to grant the user the proper security label or exemptions
required to perform insert operation.


-8248	User does not have the LBAC credentials to perform SELECT
on table <table-name>.

The user is not allowed to perform SELECT on the table. A user is
not allowed to select rows in a protected table if the user does
not have appropriate security label or exemption credentials. Ask the
DBSECADM to grant the user the proper security label or exemptions
required to perform select operation.


-8249	User does not have the LBAC credentials to perform UPDATE
on table <table-name>.

The user is not allowed to perform UPDATE on the table. A user is
not allowed to update a row in a protected table if the user does
not have appropriate security label or exemption credentials. Ask the
DBSECADM to grant the user the proper security label or exemptions
required to perform update operation.


-8250	User does not have the LBAC credentials to perform DELETE
on table <table-name>.

The user is not allowed to perform DELETE on the table. A user is
not allowed to delete a row from a protected table if the user does
not have appropriate security label or exemption credentials. Ask the
DBSECADM to grant the user the proper security label or exemptions
required to perform delete operation.


-8251	Update, delete, or insert into a UNION ALL view is not allowed.

Updates, deletes, and inserts are not allowed into a UNION ALL view
if that view is created on one or more protected tables. If you have
sufficient credentials, perform the DML operation on the base table,
rather than on the UNION ALL view.


-8252	Cannot set role to DBSECADM.

DBSECADM is a system defined role. SET ROLE statement can only be
used with user created roles.


-8253	Cannot open database <database-name>.

The database server cannot find the specified database. To find the names of
all databases, query sysmaster:sysdatabases.


-8254	Database <database-name> is currently opened by another user.

Another user has opened the specified database in exclusive mode. Repeat
the statement after a short delay or when the database is known to be idle.


-8255	User <user-name> does not have DBSA authority.

User does not have the necessary permission to perform the operation;
only DBSA has the authority to perform this operation. Contact the
DBSA to perform this operation.


-8256	Invalid character in element <element-name>.

The security label component element has an invalid character. The element
name cannot include parentheses, comma, or colon characters: ( ), :


-8257	The security label component element <element-name> cannot be null.

The security label component element specified is null. The element name
should be a non-null quoted character string.


-8258	The rule specified is not consistent with the security policy
<policy-name>.

The rule specified is not consistent with the security policy.


-8259	Cannot GRANT or REVOKE SETSESSIONAUTH privilege for role.

To grant or revoke SETSESSIONAUTH privilege for role is not allowed.
Specify an individual user or PUBLIC.


-8260	Multiple security policy clauses.

The security policy clause has been specified more than once. Either
ADD or DROP SECURITY POLICY was specified more than once or a combination
of ADD and DROP SECUIRTY POLICY was specified. Change the statement to
so that it has only one ADD or DROP SECURITY POLICY clause.


-8261	Cannot secure rows in a table without a default value for the
IDSSECURITYLABEL column.

A non-empty table cannot be protected with row-level granularity
without specifying a default value for the IDSSECURITYLABEL column.
Change the ALTER TABLE statement to specify the DEFAULT clause for
the IDSSECUIRTYLABEL column.


-8262	Cannot update partition flags.

This internal error indicates the database server could not update
partition flags to set or unset table protection. Check the accompanying
ISAM error code for more information.


-8263	The component type specified <component-type> does not match the type 
in the system catalog.

The security label component type specified in ALTER SECURITY LABEL COMPONENT
statement does not match the type of this component in the system catalog.


-8264	Cannot alter ARRAY security label component to add elements before 
<element-name>.

You cannot add more elements before the specified element because too many
alters have been performed on the ARRAY security label component. You can add
elements before or after other elements in the security label component.


-8265	Cannot alter ARRAY security label component to add elements after 
<element-name>.

You cannot add more elements after the specified element because too many
alters have been performed on the ARRAY security label component. You can add
elements before or after other elements in the security label component.


-8266	Operation not permitted.

This operation is an internal command that you are not permitted to use.


-8267	Cannot add LBAC protection to a table defined for replication.

The specified operation cannot be performed on a table if replication
is defined on the table. LBAC is not supported with Enterprise Replication.


-8268	Cannot create a distinct type <type-name> of type IDSSECURITYLABEL.

The statement specified creation of a distinct data type as IDSSECURITYLABEL.
A IDSSECURITYLABEL data type cannot be a distinct type. Remove DISTINCT from 
the statement or specify a different data type.


-8269	LBAC internal error: <internal-error> 

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


-8270	Row security label for a protected table cannot be null.

To insert data into a row protected table either user should have LBAC 
security label or the user has to explicitly specify a row security label. 


-8300	The specified sequence object <sequence-name> is not in the database.

The database server cannot find the sequence object specified in the
statement. The sequence object might have been renamed or dropped from
the database.

Check the names of sequence objects in the statement. If the names are
spelled as you intended, check that you are using the database you want.
To find the names of all sequence objects, query the syssequences table.


-8301	Sequence <sequence-name> already exists in the database.

This statement tries to create a table or sequence object with the name
that is shown, but a sequence object with that name already exists.
Only one table or sequence object with a given name can exist in a single
database. (In an ANSI-compliant database, the name of the user that created
a table or sequence object name qualifies it, so one table or sequence 
object of a given name per user can exist.)

Check the spelling of the name; if it is as you intended, and you are
sure it should not exist, check that you are using the right database.
You can review the names of all tables and sequence objects in this
database by querying systables as follows:

SELECT tabname FROM systables WHERE tabid > 99


-8302	A Sequence object definition value is invalid or out of range.

A non-integral or out-of-range value has been specified in the sequence
object's definition in the CREATE SEQUENCE or ALTER SEQUENCE statements.
The sequence object's definition parameters include its START/RESTART
value, INCREMENT value, MAXVALUE, and MINVALUE.

Check that the values specified for the sequence object's definition
parameter are integral and in the range (-2e63 + 1) or
-9,223,372,036,854,775,807 and (+2e63 -1) or 9,223,372,036,854,775,807.


-8303	Duplicate or conflicting (%s) specification in sequence definition.

A duplicate or conflicting specification for sequence object definition
parameters has been found in the CREATE SEQUENCE or ALTER SEQUENCE
statements.

Conflicting specifications include combination of MAXVALUE-NOMAXVALUE,
MINVALUE-NOMINVALUE, CACHE-NOCACHE, ORDER-NOORDER, and CYCLE-NOCYCLE.

Check whether any sequence definition parameters have been specified more than
once or if both the conflicting parameters have been specified.


-8304	MAXVALUE cannot be less than MINVALUE.

You cannot set the MAXVALUE of the sequence object to less than its
MINVALUE.


-8305	INCREMENT 0 is not allowed in sequences.

You cannot specify an INCREMENT value of 0 for sequence objects. The
INCREMENT value has to be a non-zero integral value.


-8306	CACHE size should be in the range of 1 to 2,147,483,647.

The number of cached values of a sequence object has to be in the range of 1
to 2,147,483,647.

Use NOCACHE parameter specification to specify a cache size of 0.


-8307	CACHE size should be less than one cycle. The default CACHE size is 20.

The number of cached values of a sequence object cannot be greater than
the number of values generated in single cyclic sequence. The
default number of cached values is 20.

Check whether the number of cached values is less than 20 and no cache parameter
has been specified in the sequence object definition. If so, specify an
appropriate value for CACHE parameter. Use NOCACHE parameter specification
to specify a cache size of 0.


-8308	Cannot set START value less than MINVALUE or greater than MAXVALUE.

You cannot set a sequence object to start at a value less than its MINVALUE
or greater than its MAXVALUE.

Check the statement and modify the range MINVALUE-MAXVALUE or set an
appropriate START value in this range.


-8309	Cannot RESTART the sequence at a value less than MINVALUE or greater
than MAXVALUE

You cannot set a sequence object to restart at a value less than its
MINVALUE or greater than its MAXVALUE.

If you are attempting to restart the sequence, check to see that the
RESTART value is in the range MINVALUE-MAXVALUE. If not, either alter the
MINVALUE-MAXVALUE parameters or set an appropriate value to restart from.
If you are attempting to alter either or both MINVALUE and MAXVALUE
parameters, check to see whether a restart value has already been set for the sequence
that does not lie in the altered MINVALUE-MAXVALUE range. To
find an existing set restart value, query the syssequences table.


-8310	MINVALUE cannot be set to exceed current value.

You cannot alter the sequence definition to set the MINVALUE greater than the
current value of the sequence object. The current value of the sequence
object is the value generated on last NEXTVAL reference.

If you have already initialized the sequence in your session, you may
compare the CURRVAL of your session with the MINVALUE in the statement.
However, the CURRVAL of your session may not be in sync with the current
value of the sequence object, as there may be other sessions generating
numbers from the sequence object. You can set and check the current value
of the sequence object by generating a number with a NEXTVAL reference.


-8311	MAXVALUE cannot be set to be lesser than the current value.

You cannot alter the sequence definition to set MAXVALUE less than the
current value of the sequence object. The current value of the sequence
object is the value generated on the last NEXTVAL reference.

If you have already initialized the sequence in your session, you may
compare the CURRVAL of your session with the MAXVALUE in the statement.
However, the CURRVAL of your session may not be in sync with the current
value of the sequence object, as there may be other sessions generating
numbers from the sequene object. You can set and check the current value
of the sequence object by generating a number with a NEXTVAL reference.


-8312	No options specified for ALTER SEQUENCE.

The ALTER SEQUENCE statement has no parameters specified to be altered.
Specify the definition parameters you intend to alter and then run the
statement.


-8313	Sequence (%s) exceeds its MAXVALUE.

The specified sequence object cannot generate numbers because it has exceeded
its MAXVALUE.

If you have set a MAXVALUE for the sequence, you can alter it to a higher
value, up to (+2e63 -1) or 9,223,372,036,854,775,807. If the MAXVALUE is 
already set to this highest value, consider altering your sequence to be
a cyclic sequence to restart from the MINVALUE.


-8314	Sequence (%s) goes below its MINVALUE.

The specified sequence object cannot generate numbers because it has gone
below its MINVALUE.

If you have set a MINVALUE for the sequence, you can alter it to a lower
value, up to (-2e63 +1) or -9,223,372,036,854,775,807. If the MINVALUE is
already set to this lowest value, consider altering your sequence to be
a cyclic sequence to restart from the MAXVALUE.


-8315	Sequence (%s) CURRVAL is not yet defined in this session.

You cannot get the session CURRVAL because the sequence object has not been
initialized in this session. The session CURRVAL is the value generated
on a previous call to the sequence object's NEXTVAL.

If the sequence object has been renamed using RENAME SEQUENCE, you will
need to reinitialize the sequence object in your session.

Run a NEXTVAL first to define a CURRVAL for the sequence object in your
session.


-8316	Cannot rename a sequence object using a synonym.

You cannot perform a rename operation on a sequence object using a synonym.
Specify the <sequence-name> instead.

If you intend to rename the synonym, then drop the existing synonym and
create a new one.


-8317	A sequence object cannot appear in the FROM clause.

A sequence object cannot appear in the FROM clause. To generate a number
from the sequence object use:

    SELECT <sequence-name>.[NEXTVAL|CURRVAL] from <table-name>;

A DELETE operation is not allowed on sequence objects.


-8318	This action is not allowed on sequence object.

Only the following operations are allowed on sequence objects:

    SELECT <sequence-name>.[NEXTVAL|CURRVAL] from <table-name>;
    ALTER SEQUENCE
    DROP SEQUENCE
    RENAME SEQUENCE
    GRANT/REVOKE
    CREATE SYNONYM
    DROP SYNONYM

Check to see whether you have specified any operation that does not belong to this set.


-8319	Sequence object cannot be used here.

Cannot refer to sequence object's CURRVAL or NEXTVAL in the following cases:

    WHERE clause of a SELECT/DELETE statement
    a condition of CHECK constraint
    SELECT statement with DISTINCT operator, aggregate function, GROUP BY
    clause, ORDER BY clause and UNION, INTERSECT, or MINUS set operator
    a fragment expression of CREATE TABLE or ALTER TABLE
    a VIEW definition
    DEFAULT clause of CREATE TABLE or ALTER TABLE

Check to see whether you attempted any operation in this set.


-8320	Only SELECT and ALTER are valid priveleges for sequence objects.

Only a subset of Table level privileges are valid for sequence objects.
You can GRANT or REVOKE only SELECT and ALTER privileges.

Both these privileges can be granted with the WITH GRANT option.


-8321	Not owner of sequence object.

Only the owner of the table or a user who has Database Administrator
privileges can execute this statement, for example, to drop a sequence object.
Check that the statement names the sequence object you
intended. If it does, you will have to get its owner or a DBA to
execute this statement. To find out whom to contact, you can query the
system catalog as follows:

SELECT tabname, owner FROM systables WHERE tabid > 99;
SELECT username FROM sysusers WHERE usertype = 'D'


-8322	Remote sequences are not supported currently.

You cannot reference a sequence object on a remote database.

Check to see whether you have a reference of type:

    <dbname>@<remote-server>:<sequence-name>.[NEXTVAL|CURRVAL]


-8324	Serial foreign keys should not refer to serial unique keys.

Both the referencing and referenced columns in a referential relationship
are SERIAL columns or SERIAL8 columns or BIGSERIAL columns, which the 
database server does not allow.

Change the referencing columns to be of a nonserial data type.

-8328	Write failed. count rows unloaded (check ulimit or disk space).

After writing count lines of output to the unload file, an error
occurred trying to write the next line. Look for operating-system
messages that might give more information. Possible causes include a
full disk or a disk quota limit.

-8331	Invalid table or view name (%s) in the REFERENCING clause of the
CREATE PROCEDURE or CREATE FUNCTION statement.

This error is generated from the CREATE TRIGGER statement when a routine
with the REFERENCING clause is called within the action statement with a 
mismatched table or view name.

The table or view name in the REFERENCING clause of the CREATE PROCEDURE or
CREATE FUNCTION statement should match the triggering table or view name.

-8332	Only NEW value of the column reference can be modified.

Neither the OLD correlation name nor the table or view name in the
REFERENCING clause can be specified in the left hand side of the LET
statement in the trigger routine body.

Example 1 of error:

        CREATE PROCEDURE testproc1()
        REFERENCING OLD as O NEW as N FOR T;
        ...
        LET O.column1 = <value>; --- error
        END PROCEDURE;

Example 2 of error:

	CREATE PROCEDURE testproc2()
	REFERENCING OLD as O NEW as N FOR T;
	...
	LET T.column1 = <value>; --- error
	END PROCEDURE;
	
-8333	Invalid invocation of the routine with referencing clause.

This error is returned in the following cases:

    * The routine was created with the REFERENCING clause but was not 
      executed from the trigger action statement.

    * The routine was created with the REFERENCING clause but was not 
      executed with the WITH TRIGGER REFERENCES clause.

    * The routine was NOT created with the REFERENCING clause and was 
      executed with the WITH TRIGGER REFERENCES clause.

    * The routine was created with the REFERENCING clause but was not 
      executed from the FOR EACH ROW trigger action statement.
      	
-8334	REFERENCING clause cannot be used in external routines.

For external routines, using the REFERENCING clause to access the OLD or 
the NEW values for the column(s) is not valid.

-8335	Usage of the Boolean function (%s) is not valid in this context.

The Boolean functions INSERTING, UPDATING, DELETING and SELECTING are valid
for procedures that are executed from trigger action statements.

These functions return 't' or 'f' depending on the trigger type.

For Example:

        Create trigger trig1 INSERT ON tab1
                for each row(execute procedure proc1());


        Create procedure proc1()

        define i integer;
        define u integer;
        if (INSERTING) then
                LET i = 1;
        end if
        if (UPDATING) then
                LET u = 1;
        end if

        end procedure;

Execution of the above example will set the variable i to 1 but will not set
u to 1 because the created trigger is an insert trigger.

-8336	Undefined symbol (%s).

The symbol is undefined in the current context. If the error is from CREATE
TRIGGER or CREATE PROCEDURE/FUNCTION with REFERENCING clause, check for the
misspelling of the OLD or NEW correlation variable names.

-8337	New value of column reference (%s) cannot be modified.

A trigger routine whose REFERENCING clause specifies a view cannot
modify the NEW value of any column in that view.

Example of error:

       CREATE VIEW View1 ...

       CREATE PROCEDURE testproc()
       REFERENCING OLD as O NEW as N FOR View1;
       ...
       LET N.column1 = <value>; --- error
       END PROCEDURE;

Here the REFERENCING clause of a trigger routine declares N as a correlation 
name for qualifying NEW values of columns in a view. The LET statement is not
valid, because a correlation name cannot qualify NEW column values on the left
side of LET expressions if the REFERENCING clause specified a view.

The syntax in this example is valid only for LET statements within trigger
routines that are invoked (in the FOREACH section of the action clause) by
an INSERT or UPDATE trigger on a table, but not for INSTEAD OF triggers on
views.

-8351	Function <funcname> Invalid input XML document or input XPATH string.

Explanation:The input XML document or XPATH string has illegal characters or
            the XML document is not well-formed or the XPATH string is not 
            correct.
Action:Supply valid input arguments to the function <funcname> which
       is a well-formed XML document or a valid XPATH string.
       For Example :
       select extractvalue(col2, '/customer/personnel/') from tab;
       The above example has an XPATH string with trailing '/' which is
       invalid XPATH string. The correct usage would be,
       select extractvalue(col2, '/customer/personnel') from tab;

-8352	Function <funcname> Empty input XML document.

Explanation:The input arguments, XML document, or XPATH string are passed
            as empty strings. For example:
            SELECT extract(col, '') FROM tab;
            SELECT extractvalue('', '') FROM tab;
Action:Supply valid input arguments to the function <funcname> which
       is a well-formed XML document or a valid XPATH string.

-8353	Function  <funcname>  NULL input XML document.

Explanation:The input XML document is passed as NULL.
Action:Supply a well-formed XML document as the input.

-8354	Function <funcname>  Exception received for ICU memory allocation.

Explanation:An exception was received while allocating memory for ICU data
            structures.
Action:Make sure that the system has enough memory to run the command.
       If the problem persists, contact Technical Support to resolve
       the problem.

-8355	Function <funcname>  Error parsing the input XML document.

Explanation:The input XML document for <funcname> is not a well-formed
            XML string. For example:
            SELECT idsxmlparse('<customer>John<customer>') from tab;
            The input XML string is not a well formed XML string in this
            case because it is missing a </customer> tag.
Action:Supply a well-formed XML document as the input.
       For example:
       SELECT idsxmlparse('<customer>John</customer>') from tab;

-8356	Function <funcname>  Returned multiple nodes for the query.

Explanation:The function <funcname> returned more than one node.
Action:Modify the function <funcname> so that only one node is returned.

-8357	Function <funcname>  Out of memory exception.

Explanation:The database server needed to allocate memory in order to
            process the query, but none was available.This error might reflect 
            a hardware limit, an operating-system configuration limit, or a
            temporary shortage of space.
Action:Try the query again after a delay. If it still fails, consult your
       system administrator. If possible, revise your query to join fewer
       tables, to order or group on fewer columns, or to operate in two or
       more separate statements. On DOS systems, exit to the operating-system 
       command line, free some disk space or reduce the complexity of your 
       program, and resubmit the program.If the problem persists, contact 
       Technical Support to resolve the problem.

-8358	Function <funcname>  Connection Open Failed.

Explanation: The open connection call failed while running the function
             <funcname>.
Action:Rerun the application. Make sure server is running and there is
       no error messages in server log file. If the problem persists,
       contact Technical Support to resolve the problem.

-8359	Function <funcname>  Error allocating temporary clob file.

Explanation:The server was unable to allocate enough memory for allocating
            a temporary clob file while running the function <funcname>.
Action:Make sure that the system has enough memory to run the command.
       If the problem persists, contact Technical Support to resolve
       the problem.

-8360	Function <funcname>  Large Object spec init failed.

Explanation:The server failed to open large object specification init
            structure while running the function <funcname>.
Action:Make sure that the system has enough memory to run the command.
       If the problem persists, contact Technical Support to resolve
       the problem.

-8361	Function <funcname>  Failed to create a large object.

Explanation:The server failed to create a smart large object while running the
            function <funcname>.
Action:Make sure that the system has enough memory to run the command.
       If the problem persists, contact Technical Support to resolve
       the problem.

-8362	Function <funcname>  Failed to write to a large object.

Explanation:The server failed to write to an open smart large object while
            running the function <funcname>.
Action:Make sure that the system has enough memory to run the command.
       If the problem persists, contact Technical Support to resolve
       the problem.

-8363	Function <funcname>  Null argument to function.

Explanation:One or more of the arguments that were passed to the function
            <funcname> is null.
Action:Contact Technical Support to resolve the problem.


-8364	Function <funcname>  Null buffer passed

Explanation:The state buffer that is used for storing XML output is null.
Action:Verify that system has enough memory.Contact Technical Support
       to resolve the problem.


-8365	Function <funcname>  Null row descriptor

Explanation:The row descriptor information in the argument was null.
Action:Contact Technical Support to resolve the problem.

-8366	Function <funcname>  Null type ID

Explanation:The row descriptor type ID is null.
Action:Contact Technical Support to resolve the problem.

-8367	Function <funcname>  Null type descriptor

Explanation:The descriptor of row descriptor type descriptor is null.
Action:Contact Technical Support to resolve the problem.

-8368	Function <funcname>  Buffer size exceeds maximum size

Explanation:The output of <funcname> must be less than 32739 bytes.
Action:If the combined size of output records exceeds 32739 bytes,
       one need to use a clob function.

-8369	Function <funcname> Memory allocation for internal buffer failed

Explanation:Function <funcname> was not able to allocate more memory.
Action:Make sure that the system has enough memory to run the command.
       If the problem persists, contact Technical Support to resolve
       the problem.

-8370	Function <funcname> init failed

Explanation:clob function <funcname> for init has failed.
Action:Contact Technical Support to resolve the problem.

-8371	Function <funcname> create failed

Explanation:clob function <funcname> for create has failed.
Action:Contact Technical Support to resolve the problem.

-8372	Function <funcname> stat failed

Explanation:clob function <funcname> for getting status has failed.
Action:Contact Technical Support to resolve the problem.

-8373	Function <funcname> stat size failed

Explanation:clob function <funcname> for getting size status has failed.
Action:Contact Technical Support to resolve the problem.

-8374	Function <funcname> write with seek failed

Explanation:clob function <funcname> for write with seek has failed.
Action:Contact Technical Support to resolve the problem.

-8375	Function <funcname> General exception.

Explanation:Function <funcname> received a general exception during execution.
Action:Contact Technical Support to resolve the problem.

-8376	Function <funcname> null input large object handle.

Explanation:A null input large object handle was passed as an input XML string
            for function <funcname>.
Action:Supply a valid smart large object handle.
       For example ,consider a table tab :
       create table tab(col1 int, col2 clob);
       Clob data can be inserted as,
       INSERT INTO tab values(1, filetoclob("data.xml", "client"));
       where "data.xml" is XML string document. The column tab.col2 can
       be used as input large object handle to function <funcname>.

-8377	Function <funcname> failed because the first argument is too long.

Explanation: The length of the first argument in the function is larger
than the maximum allowed length.
Action: Run the function again with a first argument that is less than or
equal to the maximum allowed length.

-8378	Function <funcname> failed because the second argument is too long.

Explanation: The length of the second argument in the function is larger
than the maximum allowed length.
Action: Run the function again with a second argument that is less than or
equal to the maximum allowed length.

-9001	Only columns of type CHARACTER may be subscripted or printed
without trailing blanks.

Either you attempted to subscript or apply the CLIPPED function to a
noncharacter variable, or you specified a variable to have the wrong
data type.


-9002	An unknown operation code was found in the PMIM.

An internal ACEGO error occurred. Make sure that a version of ACEPREP
at the same version level as ACEGO compiled your report. If that is the
case, recompile the report to make sure that the .arc file is not
corrupted. If the error recurs, note all circumstances and
contact IBM Technical Support.


-9003	A USING format string may contain only one '.'.

The format string that specifies the display of a number contains more
than one decimal point. Remove all but one of the decimal points. Refer
to the discussion of the USING function in the reference manual.


-9004	The column name is not in the current table, or the user variable name
has not been defined.

The name that is shown cannot be related to either a column in a
database table or a defined variable. Check its spelling. If you meant
it to be a variable, add it in the DEFINE section. If you meant to name
a column in the database, check to see if the table was altered or its
columns were renamed.


-9014	Usage: SACEGO [-q][-d database] report-filename.

Flags:

-q   SACEGO will not print any messages or errors.

-d   SACEGO will use the database name that follows the -d option instead of
     the database name that is specified in the DATABASE section of the
     report specification.

This message displays when ACEGO is not given appropriate command-line
arguments. Other messages might explain it explicitly. You can use the
-s option, as the manual describes, in place of -q as shown in the
message; they have the same effect.


-9025	The column name is not in the current table. Any column used as an
ORDER BY column must be in the current table.

The name that is displayed appears after the words ORDER BY, but it is
not the name of a column or the display label of an expression that is
selected in this statement.


-9046	The report output file filename could not be opened.  This is probably
due to permissions.

The report was directed to the destination shown, either with a REPORT
TO statement or through the contents of the DBPRINT environment
variable. Make sure that the destination was spelled correctly. Verify
that your account has operating-system permissions to write the
destination file and that the destination disk is writable and not
full.


-9047	The output file filename could not be created.

Probably your account does not have write permission in that directory,
the disk is full, or you have exceeded a limit on open files.


-9048	The pipe pipe-specification could not be opened.

The report was directed to the pipe that is shown in the REPORT TO
statement. Make sure that all program names in it are spelled
correctly, that the programs exist, and that they are on the current
execution path. Look for other messages from the operating system that
might indicate the source of trouble (for example, a message that
indicates not enough system memory was available).


-9049	A value entered as a command line parameter cannot be converted to the
data type type.

A PARAMETER statement in the DEFINE section defines one of the values
from the command line as having data type type. However, the value that
is given on the command line cannot be converted to that type. Check
the following points:

    *   If type is numeric, check that the parameter can be read as a
        number.

    *   If type is MONEY, the parameter should nevertheless not include
	a currency symbol.

    *   If type is CHARACTER or VARCHAR, check that the parameter is
	not longer than the length that is defined for the variable.

    *   If type is DATETIME, check that the parameter is correctly
        punctuated (refer to the information on DATETIME and INTERVAL
        data in the user guide).

    *   If type is DATE, check that the parameter is correctly
	punctuated as a date.

Correctly punctuated DATE, DATETIME and INTERVAL values contain
characters that might have special meaning to the operating system. The
problem might be that the parameter was correct but needed quotes
around it to protect it.


-9050	The user variable name is of type type. The value entered is out of
range or cannot be converted to that type.

A value was entered in response to a PROMPT statement, which stores the
value in a variable of the name and type shown. However, it was
impossible to convert the entered value to the data type of the
variable (see the discussion of error -9049 for details on conversion).
Rerun the report and enter appropriate data (also consider revising
the prompt string to better guide the user).


-9051	The number of defined parameters in the ACE program does not equal the
number of actual parameters passed to ACEGO on the command line.

The number of parameters that are defined using PARAMETER statements in
the DEFINE section does not agree with the number of items that are
given as parameters on the command line. Check that parameters that
contain spaces or other special characters are enclosed in quotes; the
lack of quotes can cause a single parameter to be taken as more than
one.


-9052	The format string is too large. It may not be larger than 79 characters.

A limit exists on the size of the format string that is presented to
the USING function.


-9053	An unknown entry in the .arc file has been detected. Recompile your ACE
report specification using SACEPREP and then rerun SACEGO. Be certain that the
version numbers for SACEPREP and SACEGO are identical.

The versions of ACEPREP and ACEGO must agree. (To check the version of
either program, run it from the command line with the -v option.) To
recompile the report, use a version of the compiler, ACEPREP, that is
identical to the version of the runner, ACEGO. If the versions are
already the same, recompile the report anyway to ensure that the .ace
file has not been corrupted. If the error recurs, note all
circumstances and contact IBM Technical Support.


-9054	The ACE report was compiled by version A compiler. This runner can only
run 5 through B. Recompile your ACE report specification using SACEPREP and
then rerun SACEGO.

The versions of ACEPREP and ACEGO must agree. (To check the version of
either program, run it from the command line with the -v option.) To
recompile the report, use a version of the compiler, ACEPREP, that is
identical to the version of the runner, ACEGO. If the versions are
already the same, recompile the report anyway to ensure that the .ace
file has not been corrupted. If the error recurs, note all
circumstances and contact IBM Technical Support.


-9055	The compiled report file filename could not be found or opened.

The report filename was named on the ACEGO command line. It expects to
locate the file filename.arc in the current directory or a path that
the DBPATH environment variable names, but it could not find the file
or could not open it for reading. Check that the filename was spelled
correctly and that your account has read access to it.


-9059	A select statement which is not the final select statement in an ACE
report must select into a temporary table.

The SELECT section of the report can contain more than one SELECT
statement. However, only the last one of these statements can produce
the rows that are the report contents. The preceding SELECT statements
are used to prepare data in temporary tables that the final statement
delivers to the report. Change the report specification so that all but
the last SELECT statement contain INTO TEMP clauses.


-9060	The values m and n used to subscript name are outside the bounds for
the column's defined length.

A column substring in the ORDER BY clause is incorrect. When taking a
substring of a column, the first number in brackets specifies the
position of the first character, and the second number specifies the
position of the last character of the substring. Both numbers must be
at least 1 and not greater than the total length of the column or
variable.


-9061	A 'SELECT INTO' statement cannot be executed as the last select
statement in an ACE report.

The SELECT section of the report can contain more than one SELECT
statement. The last (or only) one of these statements must produce the
rows that are the contents of the report. Any preceding SELECT
statements are used to prepare data in temporary tables that the final
statement delivers to the report. Change the report specification so
that all but the last SELECT statement contain INTO TEMP clauses.


-9062	An error has occurred during the conversion of a numeric value to a
CHARACTER type user variable. The CHARACTER type variable is not long enough
to hold the result.

The conversion of a numeric value to character produced more numeric
characters than the destination could hold. Rather than truncate the
result, ACEGO stops with an error. You can either redefine the
destination variable, or you can limit the size of the converted value
(for example, with a USING format string).


-9063	The user function name, defined by the user in the DEFINE statement
of ACE, could not be found in the C function definition table userfuncs in the
user's C static data area.

The DEFINE section of the report contains a FUNCTION statement
indicating that an external function name would be linked with the
report. (The ESQL/C manual covers the use of external C functions with
ACE reports and PERFORM screens.) However, the name and address of each
such function must appear in a static array that is named userfuncs.
That array, along with the computer code of the external functions, is
linked with a custom version of ACEGO. Because name did not appear in
the array, ACEGO cannot call it.

Check that you are executing the correct, customized version of ACEGO
(the original version of the program has no external functions linked
to it). Check to see if name is correctly spelled. Then examine the
source of the C functions to make sure that the userfuncs array is
defined correctly and that it contains an entry for name.


-9064	The run-time string table is full. No more memory can be allocated.

The data space available for temporary character strings is full.
Temporary strings are built when calling external C functions and when
processing the USING, SPACE, and ASCII built-in functions. Reduce the
use of these items.


-9065	Memory allocation has failed.

ACEGO was unable to allocate memory to hold a row, a line, or an SQL
data structure. The space needed is not (as the message text suggests)
directly related to the size of the report specification. The report
lacks only a few thousand bytes, at most, to run.


-9066	An error has occurred while writing to the output report.

The report destination was opened correctly, but the operating system
reported an error while output was being written. Look for error
messages from the operating system that explain the problem. The most
common cause of the error is lack of available disk space.


-9067	ACEs arithmetic stack has exceeded its bounds. The expression here is
too complicated.

Reduce the complexity of the arithmetic expression. For example, divide
the expression into subexpressions and assign the values of each to a
variable.


-9068	An SQL statement has been found in the SELECT section that is not a
SELECT statement. Only SELECT statements or SELECT statements that create
temporary tables are allowed in the SELECT section.

Possibly the word SELECT is misspelled in the report specification. If
you intentionally wrote another SQL statement such as UPDATE or INSERT,
remove it; only SELECT statements are permitted in reports. (You can
execute other SQL statements in a C function that is called from a
report. The ESQL/C manual discusses linking external C functions with
reports.)


-9070	A record in the flat ascii input file contains more data fields than
what was specified in the DEFINE ASCII statement of the report.

A field in the ASCII file is a sequence of zero or more characters that
ends in a delimiter character (the delimiter is specified in the READ
statement). Effectively, as many fields as delimiter characters exist
in each record. The number of fields must be the same in each record,
and each field must be defined in an ASCII statement in the DEFINE
section of the report. Extra fields are not ignored. Look for message
-9072; it can help you locate the record in error.


-9071	A record in the flat ascii input file contains less data fields than
what was specified in the DEFINE ASCII statement of the report.

A field in the ASCII file is a sequence of zero or more characters that
ends in a delimiter character (the delimiter is specified in the READ
statement). Effectively, as many fields as delimiter characters exist
in each record. The number of fields must be the same in each record,
and each field must be defined in an ASCII statement in the DEFINE
section of the report. No default exists for missing fields. Look for
message -9072; it can help you locate the record in error.


-9072	The count records from the ascii input file have been read in.

This informational message helps you locate the source of a problem in
the ASCII input file. The problem that is described in another message
was found in the count line of the file.


-9140	An attempt was made to divide by zero on line number.  The result was
set to zero.

An expression on line number of the report-specification file contains
a division operation. At some point in the report run, the divisor in
the expression was zero. Examine the expression and the data it uses
and write the report so that division by zero will not occur (for
example, by testing for zero in an IF statement). This error can result
from applying an aggregate function to a defined variable before the
first row of data is processed. To avoid this situation, make sure that
any variable has a value before it is used (for example, by setting it
from a command-line parameter or with a PROMPT FOR statement).


-9142	Date conversion error.

ACEGO is trying to convert from characters into a DATE data type but
found an error. Either the date is not punctuated correctly, unwanted
nonnumeric characters are present, or the date itself is inconsistent
(for example, "01/32/91").


-9143	Character, Text, and Byte data cannot be printed with using formats.

The USING function can only be applied to numeric data. Revise the
report specification.


-9200	Purpose routine (am_xxx) is not yet supported with JVTI.

Your JVTI code included a purpose method that is not supported
in this release. am_xxx can be any of the following unsupported 
methods: am_delete, am_insert, am_update, am_check, am_truncate,
or am_stats.


-9201	Secondary access method with Java am_purpose routine is not
supported.

You attempted to create a secondary access method with Java-Language User
Defined Routines. Secondary access methods are not supported in Java
technology. 

To create a secondary access method, you must use the C language User Defined
Routines. For more information, see the Virtual-Index Interface Programmer's
Guide.


-9202	JVTI only supports external am_sptype in this release.

Your CREATE PRIMARY ACCESS_METHOD SQL statement specified an am_sptype
value other than "X". JVTI allows you to address only extspace (not sbspace
or dbspace) data storage.

 Use the ALTER ACCESS_METHOD SQL statement to change am_sptype to 'X'.


-9250	Xadatasource type datasource_type_name already exists in database.

The xadatasource type that you are creating with CREATE XADATASOURCE TYPE
statement already exists. You must use a new name.


-9251	Xadatasource datasource_name already exists in database.

The xadatasource that you are creating with a CREATE XADATASOURCE 
datasource_name USING statement already exists. You must use a new name.


-9252	Xadatasource type datasource_type_name not found.

The datasource_type_name you are trying to drop with DROP XADATASOURCE 
TYPE datasource_type_name statement does not exist. Use the correct 
datasource_type_name.


-9253	Xadatasource datasource_name not found.

The datasource_name DROP XADATASOURCE datasource_name does not exist. 
Use the correct name.


-9254	Improper purpose function used for xadatasource type.

A purpose routine used with the CREATE XADATASOURCE TYPE type_name statement 
is improper. It might be spelled incorrectly. Otherwise, it is used 
incorrectly in combination with the other purpose routines, or it is a purpose 
routine is not appropriate for the xadatasource type. Correct the spelling 
of the purpose routine or change one or more of the purpose routines until the 
combination of purpose routines is valid.

Example:  CREATE XADATASOURCE TYPE xads_t1(
             xa_flags    = 1,
             xa_version  = 0,
             xa_open     = xa2pc_open,
             xa_start    = xa2pc_start,
             xa_close    = xa2pc_close,
             xa_end      = xa2pc_end,
             xa_rollback = xa2pc_rollback,
             xa_prepare  = xa2pc_prepare,
             xa_commit   = xa2pc_commit,
             xa_recover  = xa2pc_recover,
             xa_forget   = xa2pc_forget,
             xa_complete = xa2pc_complete);


-9255	Duplicate purpose function used for xadatasource type.

A purpose routine used with the CREATE XADATASOURCE TYPE datasource_type_name 
statement has been used more than once. Change the purpose routines used until 
no duplicates exist.


-9256	Required purpose function is was not used for the xadatasource type.

A required purpose routine has not been used with the CREATE XADATASOURCE TYPE 
datasource_type_name statement. Change the purpose routines used until the 
required purpose routines are included or preserved.

Example:  CREATE XADATASOURCE TYPE xads_t1(
             xa_flags    = 1,
             xa_version  = 0,
             xa_open     = xa2pc_open,
             xa_start    = xa2pc_start,
             xa_close    = xa2pc_close,
             xa_end      = xa2pc_end,
             xa_rollback = xa2pc_rollback,
             xa_prepare  = xa2pc_prepare,
             xa_commit   = xa2pc_commit,
             xa_recover  = xa2pc_recover,
             xa_forget   = xa2pc_forget,
             xa_complete = xa2pc_complete);


-9257	Improper value used for purpose function for xadatasource type.

A purpose routine has been used with an improper value in a CREATE XADATASOURCE 
TYPE datasource_type_name statement. Use the proper type of value for 
the purpose routine.


-9258	Not an owner of xadatasource type or DBA.

The user executing a DROP XADATASOURCE TYPE statement is not authorized 
because the user is not the owner of the xadatasource type or does not 
have DBA privileges.


-9259	Not an owner of xadatasource or DBA.

The user executing a DROP XADATASOURCE statement is not authorized 
because the user is not the owner of the xadatasource type or does not 
have DBA privileges.


-9260	Cannot drop xadatasource type (type_name) that is still in use.

An xadatasource type cannot be dropped while it is in use. Be sure that no
xadatasource is defined using type_name.


-9261	Cannot drop xadatasource (name) that is still in use.

An xadatasource cannot be dropped while it is in use. Be sure that name
is currently not registered in the transaction.


-9262	Error [err] indicated by an xadatasource purpose function.

An error occurred when an attempt was made to execute an xadatasource purpose
routine. For more information, refer to the accompanying XA error code.


-9263	Can't execute CREATE/DROP XADATASOURCE statements in non logging database.

'CREATE XADATASOURCE TYPE', 'CREATE XADATASOURCE', 'DROP XADATASOURCE TYPE' and
'DROP XADATASOURCE' statements are for trasactional support for external 
datasources. Non logging databases do not support transactions and therefore
these statements cannot be executed in non logging database.

-9265	Invalid xadatasource name.

The xadatasource name passed as argument is invalid. The valid format for
the xadatasource name is 'xadatasourcename' or 'owner.xadatasourcename'. 


-9266	Not in a transaction.

The database server cannot register or unregister xadatasource instance
because no transaction is active in the current session. In order to register 
or unregister an xadatasource instance, you must start a transaction. 


-9267	Xadatasource name is not present in the database.

The xadatasource name is not present in the current database. Check the
name of the xadatasource; it might be spelled incorrectly. Otherwise
create the xadatasource name.


-9268	Xadatasource name is not registered in the transaction.

The xadatasource name is not registered in the transaction; xadatasource
has to be registered before it can be unregistered.


-9269	xa_open purpose function of xadatasource has returned an error.

The xa_open purpose function of xadatasource has returned an error. 
In order to register the xadatasource instance, xa_open needs to be 
Successful (i.e. it needs to return XA_OK).


-9270	Type <opaque_type_name> is unsupported in distributed queries.

The type <opaque_type_name> is unsupported in distributed queries.
The type  <opaque_type_name> cannot be used in queries that access more 
than one database.

Modify the query not to use the  <opaque_type_name> data type.


-9271	Type <opaque_type_name> is not identically defined in all the databases used in the distributed queries.

The attributes of the user-defined data type <opaque_type_name> are different
on the local and remote databases. A UDT used in a distributed queries must
have the same attributes  and type hierarchy in all databases accessed by 
the query.

Examine the definition of the <opaque_type_name> UDT in both your local and
remote databases. Modify one or both of the UDTs so that they are the same.

-9272	The data type <type_name> is not supported for current client/server configuration.

The data type <type_name> is not supported for current client version.
Modify the query not to use the <type_name> data type or upgrade client version

-9273	Cannot create duplicate table table-name.

In a non-ANSI database, table names must be unique. When two different users
create tables with the same name at the same time, one or both of the users can 
receive this message. Rerun the CREATE TABLE statement.

-9274	Complex type name length exceeds maximum allowd 65535.

The statement is trying to create complex type. The name of the complex type
is exceeds maximum allowed 65535. Modify the statement such that it uses 
smaller identifiers.

-9275	Decimal data precision exceeds the allowable limit for DRDA connections.

The query output contains decimal data that has precision exceeding the 
allowable limit of 31 digits for DRDA connections.

-9300	Cannot set clear flag for UDT (<udt-id>) in global jar list.

J/Foundation cannot set the clear flag for the specified user-defined
type in the global jar list.


-9301	Cannot set remove flag for jar (<jar-id>) in global JVP list.

J/Foundation cannot set the remove flag for the specified jar in the
global JVP list.


-9302	Cannot set new path flag for <identifier>.

J/Foundation cannot set a new path flag for the specified object.


-9303	User SQL Exception. <exception>

J/Foundation returned the specified SQL exception.


-9304	Updatable scroll cursor features are not supported in this
version.

The 9.21 database server does not support updatable scroll cursor
features. Attempts to use updatable scroll cursor methods like
updateRow(), insertRow(), or deleteRow() raise this error message.


-9305	Attempt to read or position past end of UDT data.

This error occurs when a Java user-defined routing (UDR) attempts to read
or set a position beyond the end of the user-defined type (UDT) data
available from a UDT data input stream.

Check the length and structure of the UDT carefully against the data
input UDR code.


-9400	User-defined aggregate <aggregate-name> already exists.

The name given already exists in your database, either as an aggregate name
or as the name of a routine. (You cannot have an aggregate and a routine
with the same name.)

Change your CREATE AGGREGATE statement to give the aggregate a unique name.


-9401	Cannot re-define or drop builtin aggregate <aggregate-name>.

The named aggregate is a system-defined aggregate. You can overload the
functions that support the built-in aggregates, but you cannot redefine
or drop built-in aggregates.

Create support functions for the named aggregate but do not use the CREATE
AGGREGATE statement.


-9402	Multiple occurrences of the <modifier-name> modifier.

Each of the modifiers INIT, ITER, COMBINE, FINAL, and HANDLESNULLS can
appear only once in the CREATE AGGREGATE statement. Check your statement
for repeated modifier names.


-9403	The <modifier-name> modifier must be specified.

You need to include the named modifier in your CREATE AGGREGATE statement.
The iterator (ITER) and combine (COMBINE) functions are required for all
user-defined aggregates.


-9404	User-defined aggregate <aggregate-name> does not exist.

The named aggregate does not exist in your database. Before you can use a
user-defined aggregate, you must create the necessary support functions and
register the new aggregate with a CREATE AGGREGATE statement.


-9405	Must be owner of user-defined aggregate <aggregate-name> or DBA.

You attempted to drop a user-defined aggregate that someone else created.
To drop a user-defined aggregate, you must own (be the creator of) the
aggregate or you must have DBA privilege.


-9406	Cannot resolve support function for user-defined aggregate
<aggregate-name>.

You attempted to use a built-in aggregate for which the database server
could not find an appropriate support function. For example, if you try
to use the SUM  aggregate on the "new_type" data type, the database server
looks for the following operator function:

     plus(new_type, new_type)

This error can also occur for a user-defined aggregate when one of the
support functions that the CREATE AGGREGATE statement has listed
(INIT/ITER/COMBINE/FINAL) is missing.

Make sure that you have the correct support functions for the user-defined
aggregate. These functions must be exist and must be registered in the
database with CREATE FUNCTION.


-9407	Set-up parameter to the aggregate <aggregate-name> cannot
contain non-group columns.

If the user-defined aggregate has been defined with a set-up argument, the
second argument of this aggregate must be either a constant or one of the columns in the GROUP BY clause of your query.

For example, the following two statements are valid:

    SELECT new_aggr(colA, 2) FROM some_table

    SELECT new_aggr(colA, colB) GROUP BY colB FROM some_table


-9408	User-defined aggregate <aggregate-name> has no arguments.

The user-defined aggregate in your SELECT statement does not specify any
arguments

Make sure that the user-defined aggregate of the SELECT statement 
provides the correct number of arguments (one or possibly two, if 
the aggregate includes a set-up argument).


-9409	User-defined aggregate <aggregate-name> has too many arguments.

The user-defined aggregate in your SELECT statement specifies too many
arguments

Make sure that the user-defined aggregate of the SELECT statement 
provides the correct number of arguments (one or possibly two, if 
the aggregate includes a set-up argument).


-9410	User-defined aggregate <aggregate-name> has two arguments but no
INIT function specified.

The user-defined aggregate in your SELECT statement specifies a set-up
argument. However, the CREATE AGGREGATE statement that defined this
aggregate has not specified an INIT support function. The handling of
a set-up argument must occur in an INIT function.

You can either call the user-defined aggregate without a set-up argument
or implement a set-up argument for the user-defined aggregate. To implement a set-up argument, take the following actions:

     -  Write an INIT support function that handles the set-up
        argument.
     -  Register the INIT function (with CREATE FUNCTION).

     -  Drop the user-defined aggregate (with DROP AGGREGATE).

     -  redefine the user-defined aggregate (WITH CREATE AGGREGATE),
        providing the INIT modifier to specify the new INIT support 
        function.


-9411	User-defined aggregate support function <function-name> does not
handle nulls.

You created your aggregate with the HANDLESNULLS option, but the function
named in the error message does not handle nulls.

When you create an aggregate with HANDLESNULLS, all support functions must
also handle nulls. You can either change the aggregate or change the
function. To change the aggregate, drop the aggregate and re-create it
without the HANDLESNULLS option.

If the aggregate needs to handle null values, you must modify the function so
that it can handle nulls. Then drop the function and reregister it with the
HANDLESNULLS option.


-9412	Return type of the support function <function-name> does not
match the aggregate state type.

When you extend a built-in aggregate for a user-defined data type, the
return type of the operator function must be the same as the data type
for which you are extending the aggregate. For example, if you try to use the SUM aggregate on the "new_type" data type, thedatabase server looks for a plus() function with the following signature: 

     CREATE FUNCTION plus(c1 new_type, c2 new_type)
            RETURNING new_type;

This error can also occur for user-defined aggregates if the  return type of
an INIT support function is not the same as that of the ITER or COMBINE
function. For user-defined types, make sure that the return types of the
INIT function (if any), ITER function, and COMBINE function are the same as the user-defined type.


-9422	JDK 1.2 cannot be used with kernel AIO.

JDK 1.2 cannot be used with kernel AIO.

Disable kernel AIO and try again.


-9423	Transaction request %s failed to execute.

A server JDBC attempt to start a transaction failed to execute.

Check online.log for any failures.


-9424	Server JDBC failed to get a row from the server.

A server JDBC attempt to get a row from the database server resulted
in an error. This is an internal error.


-9425	Internal error with the Java memory pool. 

An unexpected internal error occurred during use of the Java memory pool.
The pool could have been corrupted.

Restart the database server.


-9426	Can't use Native threads in this configuration.

You cannot use native threads in this configuration. Only green threads
can be supported on this platform.


-9427	Can't use Green threads in this configuration.

You cannot use green threads in this configuration. Only native threads
can be supported on this platform.


-9428	Java configuration (<configuration-name>) parameter error. 

The configuration parameter was not specified correctly.

Modify the configuration parameter and restart the server.


-9429	Java initialization failed, unable to find the library/routine
(<identifier>).

Java startup failed to locate the library or the specified routine
(<identifier>).

Check the Java installation on the machine. Either a wrong version
of the JDK has been installed, or the installation has not been completed
correctly.


-9430	JNI internal error. Unable to find or execute JNI call
(<call-id>).

The specified JNI call could not be executed. Possible causes of this
error include invalid JVP ONCONFIG variable settings, a possible VM
crash, and VM corruption. For example, your JVPCLASSPATH ONCONFIG
parameter might be missing the $INFORMIXDIR/extend/krakatoa/krakatoa.jar
file, or JVPCLASSPATH or another ONCONFIG parameter might have an incorrect
path or file name.

Check your JVP ONCONFIG variable settings. If the settings are valid,
contact IBM Technical Support.


-9431	Can't find system class or method or library (<identifier>).

Java startup failed to locate the system class or method (<identifier>).

Check the Java installation and J/Foundation installation on the
computer. Either the wrong version has been installed, or the
installation has not been completed correctly.


-9432	Variable length UDTs are not supported in this version of Java.

This version of Java does not support variable-length. This feature is
scheduled to be enabled in a future release.


-9433	Cannot position Blob/Clob.

An internal error occurred during access to a large object.

Contact IBM Technical Support.


-9434	Unexpected failure during initialization of Java virtual
processor.

An unexpected failure occurred during the initialization of a JVP.

Check online.log for details.


-9435	Unexpected failure during Java procedure execution.

An unexpected failure occurred during Java procedure execution.

Check online.log for details.


-9436	Java UDR's VP class must be CLASS_JAVA.

A Java UDR can run only on a JVP.


-9437	Unable to get SQLException information.

An internal error during access to the SQLException object.

Contact IBM Technical Support.


-9438	Feature or method (<identifier>) is not supported for opaque types.

The feature or method (<identifier>) is currently not supported for
opaque types. This feature or method might be implemented in a future
release.


-9439	Feature or method (<identifier>) is not supported for distinct
types.

The feature or method (<identifier>) is currently not supported for
distinct types. This feature or method might be implemented in a future
release.


-9440	Server JDBC failed to open cursor.

An attempt to open a cursor fetch by server JDBC failed.


-9441	Cannot create UDR Thread (%s).

The Embedded Java Virtual Machine failed to create a thread for processing
the UDR call. Contact IBM Technical Support.


-9442	Error loading Java UDR class (%s).

Make the following checks to ensure that the class that contains the Java
UDR is loaded:
     o  The directory that contains the class must be specified in the 
        CLASSPATH environment variable.

     o  The jar that contains the class must be correctly installed with
        the built-in procedure install_jar().

     o  The jar file has been created correctly, with the proper path to the
        class.


-9443	Cannot find class for type (%s).

For a user-defined-type mapping, make sure that the class is present in the
CLASSPATH environment variable or in a jar that is installed in the
database. Mappings for other data types come from the Java Developer's Kit
(JDK) or Informix-enhanced classes. For these data types, check the
installation of your JDK and Informix database server.


-9444	Initialization of Java virtual processor failed: (<processor>).

Possible causes for this error message include incorrect settings in
the configuration file for the database server, incorrect installation
of the JDK release, missing links to the JDK shared libraries,
and no informix.policy file.

Make sure that the configuration file for the database server has the
correct settings for J/Foundation. Also make sure that your JDK release
is properly installed. For Solaris systems that require /usr/lib links
to the JDK shared libraries, make sure that the links are properly
installed with the setjdk utility program.

If the informix.policy file is missing, copy the file
$INFORMIXDIR/extend/krakatoa/informix.policy.std to
$INFORMIXDIR/extend/krakatoa/informix.policy. You can customize
the informix.policy file after you create it.


-9445	Java language manager operation failed (%s).

Contact IBM Technical Support.


-9446	Execution of Java user-defined routine failed: (%s).

Correct the implementation of the Java UDR based on the problem that the
paranthetical message indicates.


-9447	Cannot perform Java-to-SQL type mapping for type (%s).

The user-defined-type mapping is invalid. Refer to the J/Foundation
documentation for allowed type mappings.


-9448	Unequal number of parameters in SQL and Java signature (%s).

Make sure that the SQL and Java signatures that the CREATE FUNCTION or
CREATE PROCEDURE statement has provided specify the same number of
parameters.


-9449	Java UDR method not found or is not static: (%s).

Make sure that the specified Java method exists as a public static method in
the specified class. Also make sure that the signature of the defined method
matches the signature that the CREATE FUNCTION or CREATE PROCEDURE statement
has specified.


-9450	Java method invocation failed (%s).

Make sure that the Java method is accessible. That is, it must either be
public or be in the same package as the caller.


-9451	Error instantiating user-defined-type mapping class (%s).

Make sure that the Java class specified has the proper access permissions
for instantiation. Check the instantiation rules for the Java language.


-9452	Error processing null argument. Use Java object form of type (%s).

You have probably used a Java primitive type as an argument to a Java method
that maps to the specified Java UDR. A null value for a primative-type
argument is invalid. Replace the Java primitive type with a Java Object
type. For example, replace "int" with "java.lang.Integer".


-9453	The JDBC command doesn't return any rows.

The database server did not return any rows as a result of the JDBC command. 


-9454	Error getting length for user-defined type (<udt-type>).

An error occurred during an attempt to retrieve the length for the
specified user-defined type.

Make sure that the length of the user-defined type is correctly stored in
the sysxtdtypes system catalog table.


-9455	Cannot access large object.

Make sure that the default sbspace, which the SBSPACENAME configuration
parameter indicates, has been created. The onspaces utility creates sbspaces.


-9456	Cannot get large object length.

The database server cannot obtain the length of a large object using a JDBC
connection. Make sure the connection from which the large object comes is
still valid.


-9457	Cannot convert large object handle to byte[].

The database server cannot obtain the content of a large object using
a JDBC connection. Make sure the connection from which the large object
comes is still valid.


-9458	Cannot start large object search.

The database server cannot perform seek on a large object using a JDBC
connection. Make sure the connection from which the large object comes
is still valid.


-9459	Large object Error: (%s).

The database server cannot access a large object using a JDBC connection.
Check the problem information contained in the error message. Also make sure
the connection from which the large object comes is still valid. 


-9460	Wrong connection for large object.

Contact IBM Technical Support.


-9461	Cannot read (%s) bytes off binary stream.

The large object does not contain as many bytes of data as are requested to
be read from it.

Make sure the binary stream used to create a large object has a sufficient
amount of data.


-9462	Driver being shutdown.

The Java virtual processor (VP) cannot create new JDBC connections while it is
in the process of being shut down. Terminate your JDBC session and restart
it after the VP is completely removed from the database server.


-9463	Cannot load the specified IfxProtocol class: (%s).

Make sure that the JDBC URL, which you specify in the
DriverManager.getconnection() method, has a valid protocol class name
for the ProtocolClass parameter.


-9464	Must specify user=name in the URL.

Make sure the JDBC URL contains the username.


-9465	Must specify dbname in the URL.

Make sure the JDBC URL contains the database name.


-9466	Must specify password=value in the URL.

Make sure the JDBC URL contains the password for the desired user session.


-9467	Driver shutdown, no new connection.

The Java virtual processor (VP) was shut down in the middle of creating
a JDBC connection. Terminate your JDBC session and restart it after the VP
is completely removed from the database server.


-9468	Cannot make UDR connection in non-UDR thread.

A UDR connection can be made only from the thread executing a Java UDR. Make
sure the connection is not created on a child thread forked by the UDR.


-9469	UDR connection failed.

Contact IBM Technical Support.


-9470	Cannot establish JDBC connection for embedding application.

Contact IBM Technical Support.


-9471	Database server connection failed.

Contact IBM Technical Support.


-9472	Error creating Solano connection: (%s).

Contact IBM Technical Support.


-9473	Connection to database failed.

Make sure that the database exists and has all required access permissions.


-9474	Could not connect to database (%s).

Contact IBM Technical Support.


-9475	Connection is closed.

Make sure the connection used to issue the JDBC operation is still open.


-9476	Database server JDBC error: (%s).

Contact IBM Technical Support.


-9477	Cannot obtain UDR environment.

UDR environment objects are available only to Java UDR threads. Make sure
the getUDREnv() method is not invoked by a child thread forked by the Java
UDR.


-9478	VM too low on memory: (%s) bytes left.

There is insufficient memory to start a new instance of a Java UDR. Reduce
the number of session connected to the Java virtual processor (VP) or
terminate the resource-intensive Java computations.


-9479	Unknown throwable: (%s).

The Java UDR throws an unknown exception. Check the Java VP log for details.


-9480	Unknown iterator code.

Contact IBM Technical Support.


-9481	Internal Error: (%s).

Contact IBM Technical Support.


-9482	Deployment descriptor file (%s) is not in the right format.

Refer to the J/Foundation documentation for the correct format of a
deployment descriptor file.


-9483	Unrecognized type: (%s).

Make sure that the specified data type is registered in the current database.


-9484	Invalid jar name.

If the jar name specifies the database and/or username, make sure that these
names match the database and user in the environment in which the jar is
being installed.


-9485	Attempt to install an existing jar: (%s).

Remove the existing jar before you install a new one that has the same name.


-9486	Invalid URL.

Check the syntax of the URL for the jar.


-9487	Attempt to remove non-existing jar: (%s).

You cannot drop a jar that has not first been installed. 


-9488	Invalid jar removal. All dependent UDRs not dropped.

You cannot drop a jar if dependent UDRs still reference any of the classes
within the jar. Drop all user-defined functions and/or user-defined
procedures that reference a class in the jar within their external names.


-9489	Invalid jar replacement. Class (%s) from old jar is still
referenced.

There is at least one class in the old jar that is not replaced in the new
jar and is referenced by a Java UDR. You must either drop the Java UDR
before you attempt to replace the jar, or add the class to the new jar.


-9490	No manifest file found for jar (%s).

All deployment descriptions that install_jar() needs to process must be
listed in the manifest file for the jar. Make sure that the manifest file
is created correctly for the jav. If no deployment descriptors are to be
processed, pass a value of '0' as the last parameter to the install_jar() built-in procedure. 


-9491	User threads are not allowed in this context, must be a DBAThread.

Java threads created by users from within user-defined routines are not
allowed to open JDBC connections.

If such threads need to execute SQL statements, then they need to open Solano connections
to run the queries against.


-9492	Unsupported feature: (%s).

This version of the database server cannot implement the specified feature.


-9493	Unsupported command from deployment descriptor: (%s).

Check the J/Foundation documentation for the commands that the database server
supports within deployment descriptor files.


-9494	Java not supported in this database server or Error loading
Java language module.

The version of your database server might not be Java enabled.

If you are using a Java-enabled database server and the Java language
module $INFORMIXDIR/extend/krakatoa/lmjava.so does not exist in your
distribution, contact IBM Technical Support.


-9495	Database server JDBC internal error. Check with your
administrator.

Unexpected JDBC driver internal error. This error is raised if 
the JDBC driver fails to acquire an internal resource.

For diagnostic information, check the jvp.log and online.log files.


-9496	Unable to map Java type to an SQL type or SQL type to a
Java type.

Unable to map between the Java type and the specified SQL type. This
error is usually raised when the database server is unable to start a
Java user-defined routine because its SQL types could not be mapped
to Java types.

Check the declaration of the Java user-defined routine.


-9498	Incorrect path to JAR file specified: (<pathname>).

The pathname for the JAR file to be installed is incorrect.

Correct the path to the JAR file and retry.


-9499	Internal JAR handling error. Check with your
administrator.

Unexpected JAR handling error.

For additional information, check the jvp.log and online.log files.


-9500	A subscript is out of bounds.

This statement takes a substring of a character variable. The substring
values (that is, two numbers in square brackets) are incorrect. The
first is less than zero or greater than the length of the column, or
the second is less than the first. Correct the form specification and
recompile.


-9503	The table tablename could not be opened.

Check that the table name is correctly spelled. If so, the table
tablename might not exist in the database (it might have been dropped
or renamed); or if it exists, your account might not have SELECT access
to it. Alternatively, if you are using the IBM Informix SE database server,
you might have exceeded the limit on open files, which can limit the
number of tables that you can name in a SELECT statement. In this case,
you might have to revise the SELECT section of the report to use more
SELECT statements, each of which names fewer tables. Products after
Version 4.0 do not issue this message.


-9503	PRINT FILE filename could not be opened.

The file that is shown could not be opened for output. Look for
operating-system error messages that might give more information.
Possible causes include a full disk or lack of the correct permissions
for the file or directory.


-9504	The argument number is out of bounds for the ascii function. Arguments
must be between 0 and 255, inclusive.

The input to the ASCII function must be a number between 0 and 255.
Examine the use of this function in the report specification. If the
improper value number came from a command-line parameter, you might
consider testing it with an IF statement.

-9602	Illegal attempt to convert a collection type into another type.

You attempted to store a collection of one type in a collection of a
different type, or you attempted to move a collection into a host
variable that is not a collection. In ESQL/C, a collection host
variable declared to contain elements of a specific type can only hold
collections of that same type. If you require that a collection host
variable hold collections of different types, declare it without the
specific type information.


-9605	Scroll cursor can't select collection columns.

You attempted to select a collection column while you were using a
scroll cursor. You must rewrite the query without the scroll cursor or
eliminate any collection columns from the select list.


-9606	Collections are not allowed in the GROUP BY clause.

Move the reference to a collection column in the GROUP BY list.


-9607	Collections are not allowed in the DISTINCT clause.

Either remove the DISTINCT clause or remove the collection column
from the SELECT clause.


-9608	Collections are not allowed in the ORDER BY clause.

Remove the reference to a collection column in the GROUP BY list.


-9609	Collections are not allowed in the expression.

You attempted to select a collection from within a subquery, perform an
aggregation on a collection, or use a collection in some other
expression that is not allowed. Check your manual to determine
the places where you can use collections in expressions.


-9610	Illegal attempt to use collection host variable.

You attempted to calculate the cardinality of a data type that is not a
collection, incorrectly used a collection host variable by using an
untyped collection without assigning a value to it, or used incorrect
syntax to create a collection derived table.

Check your manual to determine the correct usage of collections in
this context.


-9611	ROM clause cannot have a join when one of the tables is a collection.

You cannot join a table derived from a collection with a table. Remove
TABLE(:coll_host_var) from the FROM clause of your query.


-9612	No WHERE, GROUP BY, HAVING or ORDERBY clause is allowed in a collection.

Remove any WHERE, GROUP BY, HAVING, or ORDER BY clause from your
statement or remove TABLE(:coll_host_var) from the FROM clause of your
statement.


-9613	Select list cannot have expression when selecting from a collection.

Only '*' or column names are allowed in the select list for derived
tables that use collections. Check your SELECT list.


-9614	Derived column list is not allowed for this statement.

UPDATE statements do not require derived-column lists. Columns are
listed in parentheses following a table name. Also, in any SQL
statement, a derived-column list can be associated only with
collection-derived tables and not others.

Remove the derived-column list from the UPDATE statement.


-9615	AT keyword is not allowed when inserting in a base table.

Use the AT keyword only when you are inserting into a LIST.


-9616	Position value should be specified through a constant or a
variable.

The position argument for an AT keyword of a list must be a simple integer
literal or host variable.

Simplify the expression to one of these.


-9617	Source for the SET clause should be a simple expression.

Collection derived tables can only be updated using constants, host
variables, or table columns.


-9618	Aliasing is not allowed for a collection of ROW types.

For collection-derived tables, you need not provide a column name
alias. Remove the column name alias.


-9620	Cannot select the collection variable (collection_variable_name).

This error occurs within SPL when you attempt to place an SPL collection
variable in the select list. You must remove the collection variable
from the select list.


-9621	The number of derived columns do not match the actual number of columns.

For collection-derived tables, you must provide number of derived columns 
matching with columns in select list. 
For example, the following SELECT statement would cause error -9621:

SELECT * FROM TABLE(MULTISET(SELECT colno, colname FROM syscolumns WHERE 
		tabid > 99)) AS vtab(vc1) 


-9623	Internal length must be greater than zero and smaller than 32,768.

When you use the CREATE OPAQUE TYPE statement to define a fixed-length
opaque type, the value that you specify for the internal length
modifier must be greater than 0 bytes and smaller than 32,768 bytes.

Use a valid value to define the type.


-9624	Maximum length must be greater than zero and smaller than 32,768.

When you use the CREATE OPAQUE TYPE statement to define a variable-
length opaque type, the value that you specify for the maximum length
modifier must be greater than 0 bytes and smaller than 32,768 bytes.
Redefine the type with a valid value.


-9625	Alignment must be set to 1, 2, 4 or 8.

When you use the CREATE OPAQUE TYPE statement to define an opaque type,
the value that you specify for the alignment modifier must be 1, 2, 4,
or 8. Redefine the type with a valid value.


-9626	Maximum length should be set for variable-sized opaque types only.

When you use the CREATE OPAQUE TYPE statement to define a fixed-length
opaque type, you should not specify the maximum length modifier.


-9627	Passedbyvalue can only be set if length is 1, 2, or 4.

When you use the CREATE OPAQUE TYPE statement to define a fixed-length
opaque type that is passed by value, its internal length must be 1, 2,
or 4.


-9628	Type (type_name) not found.

The specified type_name could not be found. The datatype name you use 
should either be a built-in datatype of Informix Dynamic Server or 
an extended datatype explicitly created by the user/application. 
If you encounter this error on a Read-only Secondary of an HDR pair, 
check to see if the specified type_name was ever created on the Primary.


Example of extended datatypes: distinct type, row type, collection type, 
and opaque type. Before you can use an extended type, you must 
create it with the CREATE <datatype> TYPE statement.
example: CREATE DISTINCT TYPE di AS INT;
	 CREATE ROW TYPE rt (a INT, b CHAR(10));


-9629	Not owner of type.

USAGE permission is required for the use of opaque types. Use the GRANT
USAGE ON TYPE statement to grant permission to use a type.


-9630	Cannot drop type (type_name): still in use.

An opaque type cannot be dropped while it is in use. Be sure that no
casts, functions, or distinct type definitions are based on the type.


-9631	Opaque type (type_name) already exists in database.

Opaque types must be unique within the schema (ANSI mode) or database.
Be sure that the type does not already exist.


-9632	Value does not match the type of column (column_name).

If the value does not match the data type of the column, but can 
be converted into the data type of the column, then you might need 
to use an implicit or explicit cast.  

If you want the conversion to be automatic, then create an 
implicit cast by using the CREATE IMPLICIT CAST statement to define 
a cast between the source and destination types.  See the description
of the CREATE CAST statement in the IBM Informix Guide to SQL: Syntax.  

In some cases, you might need to use explicit casting. A common cause
of error -9632 is failure to explicitly cast a row type. For example,
the following INSERT statement would cause error -9632:

   CREATE ROW TYPE rt1 (i INT, f FLOAT);
   CREATE TABLE table1 (rt1_col rt1);
   INSERT INTO table1 (rt1_col) VALUES (ROW(1, 2.0));

The correct INSERT statement, with the explicit cast, follows:

   INSERT INTO table1 (rt1_col) VALUES (ROW(1, 2.0)::rt1);


-9633	ALTER TABLE cannot modify column (column_name) type.  Need a cast from
the current type to the new type.

Conversions of column types require a cast. Use the CREATE CAST
statement to define a cast from the source to destination type.


-9634	No cast from <type-name>.

The specified cast does not exist or the cast function does not exist. Use
the CREATE CAST statement to define the cast or to create the cast function.


-9635	An attempt has failed to convert an opaque type into another type
without a cast function.

The specified cast does not exist or the cast function does not exist. Use
the CREATE CAST statement to define the cast or to create the cast function.

The BOOLEAN, BLOB, CLOB, and LVARCHAR data types are implemented by the
database server as built-in opaque data types.


-9636	Opaque type exceeded its maximum length.

Opaque types are defined with a maximum length that cannot be
exceeded. Verify that user-defined routines that return the type do
not attempt to exceed the size limit.


-9637	Cast function (function_name) does not exist.

The function associated with a cast must exist when the cast is
executed. Use the CREATE FUNCTION statement to create the function.


-9638	Grant/Revoke under on opaque types disallowed.

The UNDER clause in the GRANT/REVOKE statements applies to row types
only. It cannot be used with opaque types.


-9639	Grant/Revoke under on distinct of non-row types disallowed.

The UNDER clause in the GRANT/REVOKE statements applies to row types
(and distinct of row-types) only. You cannot use the UNDER clause with
non-row types or distinct of non-row types.


-9640	Cannot drop type (type_name): distinct type defined over the type.

Before you can drop a type, you must first drop all distinct types
based on the type.


-9641	Drop type can only drop opaque type or distinct type.

The DROP TYPE statement applies to opaque and distinct types only. Use
DROP ROW TYPE statement to drop row types.


-9642	A quoted string exceeds 32,768 bytes.

The system imposes a limit of 32,768 bytes on quoted strings. You
cannot exceed this limit.


-9643	Type (type_name) is not hashable.

Hashing is used in GROUPBY queries and as a mechanism to eliminate
duplicate values in DISTINCT and UNION, INTERSECT, or MINUS clauses. You cannot 
use types declared as non-hashable in these statements.


-9645	Cannot execute cast from user-defined type to character format.

When you use the debugging feature of SPL to print the content of a
user-defined, data-type variable, this error occurs if the database
server cannot find or execute the cast function to convert from the
given user-defined data type to character or long format.


-9646	Result of a Boolean expression is not of Boolean type.

When a conditional expression, such as a WHERE clause or an IF clause,
is evaluated in this statement, the result is not a Boolean value. All
conditional expressions must evaluate to a Boolean value, so check that
all conditional expressions evaluate correctly. If the expression does
not, use appropriate casts to make it evaluate properly.

-9647	Cannot drop extended type <extended_type_name>: still in use.

The extended type that you are attempting to drop is being referenced by
another type or table. Before you drop the extended type, first drop any 
type or table that refers to the extended type.

-9648	Invalid value specified for a Boolean type

't','T' or 'f','F' or NULL are the only valid values for boolean type.

-9649	Cannot transport a user-defined type to client versions earlier than version 9.

This operation is not supported in pre-version 9.x client. 


-9650	Right hand side of IN expression must be a COLLECTION type.

The column that is specified for the IN clause must be a COLLECTION
type. For other data types you must specify values in a parenthesized list. 
For example:

	SELECT * FROM CUSTOMER WHERE CUSTOMER_NUM IN (101);
 
-9651	The statement failed because binary large objects are not allowed in 
the Union, Intersect, or Minus queries.
 
You selected a TEXT or BYTE column in a UNION, INTERSECT, or MINUS query. The 
projection clause of each query cannot include any TEXT or BYTE columns. These 
columns are not allowed in a UNION, INTERSECT, or MINUS clause because TEXT 
and BYTE columns cannot be tested for equality. A UNION ALL clause, however, 
can include TEXT and BYTE columns (in a standalone SELECT statement or in a 
UNION view).

-9653	UNDER  privilege required to create subtype/subtable.

The user is not the owner of the type or table under which the statement
attempted to create a subtype or subtable, and the user has not been
granted the UNDER privilege on that type or table.

To create a named row type under an existing named row type or to create
a table under an existing table, you must be the owner of the supertype
or supertable or you must have been granted the UNDER privilege on that
supertype or supertable. For example, the following sequence of statements
allows a user named user2 to create a named row type and table under the
row type and table that user1 created.

   -- As user named user1
   CREATE ROW TYPE super_rt (int_col INT);
   GRANT USAGE ON TYPE super_rt TO user2;
   GRANT UNDER ON TYPE super_rt TO user2;

   CREATE TABLE super_table OF TYPE super_rt;
   GRANT UNDER ON super_table TO user2;

   -- As user named user2
   CREATE ROW TYPE sub_rt (float_col FLOAT) UNDER user1.super_rt;
   CREATE TABLE sub_table OF TYPE sub_rt UNDER user1.super_table;


-9654	The element types of the collection are not unique; explicit 
casting is required.

The element types of the complex type (row, set, multiset, or list) are
not unique and cannot be converted from one complex type to another
complex type by implicit casting. Use the explicit casting notation to 
explicitly cast the source complex type to the desired target complex type.


-9656	Cannot create a distinct type of type (serial or serial8 or bigserial).

The statement specified creation of a distinct data type as SERIAL or SERIAL8
or BIGSERIAL.  A SERIAL or SERIAL8 or BIGSERIAL data type cannot be a 
distinct type.

Remove DISTINCT from the statement or specify a different data type.

-9657	Cannot determine the data type of a collection in the given expression.

The data type of a collection used in the provided expression cannot be
determined until run time. Casting the collection to a specific data
type usually solves this problem.


-9700	Routine (routine_name) ambiguous - more than one routine
resolves to given signature.

This problem happens when an argument (or its source type or parent
type) has implicit casts to the parameters of two or more routines.

For example, assume two routines exist called routine_name(paramtype1)
and routine_name(paramtype2), and routine_name is invoked with
routine_name(argtype). Also, implicit casts exist from argtype to
paramtype1 and argtype to paramtype2. In this case, this error is
raised.

The error is also raised, if instead of argtype, argtype_dad which is
in the source type hierarchy of argtype (if argtype is a distinct type)
or in the super type hierarchy of argtype (if argtype is a row type)
has casts to paramtype1 and paramtype2.

You will need to redefine the implicit casting scheme, such that only
one casts exists from argtype to either paramtype1 or paramtype2 or
remove one of the routines.


-9701	An EXTERNAL PROCEDURE cannot have RETURN clause.

Do not specify the returns/returning clause to a PROCEDURE that is an
external procedure. You can specify this clause for a SPL procedure,
but specifying a RETURN clause to a procedure is highly discouraged.


-9702	When a FUNCTION is created, the RETURN clause must be specified.

All functions must return a value. Specify a return clause or use a
CREATE PROCEDURE statement.


-9703	Modifiers VARIANT and NOT VARIANT cannot be used in the same routine.

Either VARIANT or NOT VARIANT can be specified either as a modifier or
as a clause after the LANGUAGE clause. If both are specified, they must
both be specified as VARIANT or as NOT VARIANT. Either make them
consistent or remove one of the references as a modifier or as a clause
after the LANGUAGE clause.


-9704	For SPL routine, parameter must be named.

The name of the parameter in a CREATE FUNCTION or CREATE PROCEDURE
statement is optional only for external routines. Specify the parameter
name.


-9705	The modifier (modifier-name) is not valid for SPL routines.

This message displays a modifier that you cannot specify for an SPL
routine. The following modifiers are invalid for SPL routines: CLASS, CLIENT, HANDLESNULLS, INTERNAL, ITERATOR, PARALLELIZABLE, PERCALL_COST, SELFUNC, and STACK. Other modifiers might also be invalid.


-9706	END PROCEDURE/FUNCTION does not match with CREATE PROCEDURE/FUNCTION.

If you are using a CREATE PROCEDURE statement, the end clause must
contain END PROCEDURE. If you are using a CREATE FUNCTION statement,
the end clause must contain END FUNCTION. Do not mix and match
PROCEDURE and FUNCTION keywords.


-9707	Modifiers COMMUTATOR and NEGATOR are not allowed in procedure.

Because procedures do not return values, these modifiers are not
allowed in a CREATE PROCEDURE statement. Use a CREATE FUNCTION
statement or do not specify these modifiers.


-9708	SELFUNC modifier can only be used in EXTERNAL FUNCTION.

Do not specify SELFUNC modifier to a SPL routine or an external
procedure.


-9709	More than one distinct type of the parameter type have cast to argument
type.

This situation occurs if more than one distinct type of the source type
of the parameter has casts from the argument type. For example, assume
the routine routine_name(paramtype) exists. Both paramdist1 and
paramdist2 are distinct types of paramdist1. The routine is invoked as
routine_name(argtype). Casts also exist from argtype to paramdist1 and
argtype to paramdist2. Because distinct types inherit all the routines
defined on the source types, paramdist2 and paramdist1 inherit the
routine routine_name. Thus the routine resolution cannot resolve the
routine, and this error results.


-9710	Overloading of built-in functions is not allowed.

Built-in functions such as dbinfo and trim should not be overloaded.
Change the name of the routine that you are creating so that it does
not conflict with the names already used in the database server.


-9711	Late bound functions cannot have different number of return values

Due to late binding, the function that is executed could change in the
middle of query execution. This error is called if the number of values
returned by the new function is not the same as the previous function.
All functions with the same name defined over a type hierarchy should
have the same number of return values.


-9712	Late bound functions cannot have different return types.

Due to late binding, the function that is executed could change in the
middle of query execution. This error results if the type of values
returned by the new function is not the same as the previous function.
All functions with the same name defined over a type hierarchy should
have the same type of return values.


-9713	Identifier too long - maximum allowed length for this identifier is 128.

The specific name specified in the CREATE PROCEDURE or CREATE FUNCTION
statement is longer than 128 bytes. Shorten the name.


-9714	OUT parameter can only be the last parameter of a routine.

When an OUT parameter is specified in the CREATE FUNCTION statement, it
must be the last parameter and the only parameter with the OUT option.


-9715	A procedure cannot have any OUT parameters.

A CREATE PROCEDURE function cannot have OUT parameters. Only a CREATE
FUNCTION statement can have OUT parameters in the parameter. The
parameter specified as OUT should be the only and last parameter.


-9716	This routine routine_name has the same specific name as another routine.

A specific name is unique within a name space. In a non-ANSI database,
it is unique within a database. In an ANSI database, it is unique
within the user's schema. Change the name to a unique name.


-9717	Owner name specified in the routine name and specific name must be the
same.

If the specific name is qualified with the owner name, the owner name
specified should be the same as the owner name used in qualifying the
routine being created. If the routine name is not qualified, it should
be the same as the current user.


-9718	Owner name specified in the specific name must be the current user.

If the specific name is qualified with the owner name, the owner name
specified should be the same as the owner name used in qualifying the
routine being created. If the routine name is not qualified, it should
be the same as the current user.


-9719	A routine and an aggregate cannot share the same name.

An attempt to create a routine (UDR) with the same name as an aggregate
is illegal. Also, creating an aggregate with the same name as a routine
is also invalid. A routine name may not also match a built-in aggregate
name, like sum(), count(), or max().

Change the aggregate or the routine name that is causing the failure.


-9720	Module name or language name specified is not valid.

The module name or language name that you specified in the
ifx_replace_module() or ifx_unload_module() function call is not 
valid. The only valid language name for these functions is C. 

Check the module names for correctness. Check if module path is
included in the values for the DB_LIBRARY_PATH configuration parameter.
Replace the module name or language name, or update the value of 
DB_LIBRARY_PATH, and execute the function again.


-9721	Module name could not be unloaded while in use.

You can use the ifx_unload_module() function only to unload an 
unused shared-object file; that is, when no executing SQL statements 
(in any database) are using any user-defined routines in the specified 
shared-object file.

Wait until all active SQL statements complete before trying to unload
the shared-object file.


-9722	Specify a non-zero SQL error number in the RAISE EXCEPTION statement.

You must provide a non-zero value for the SQL error number parameter in the
RAISE EXCEPTION statement. To display your customized error string,
specify -746 as the value of the SQL error.


-9740	Execution of remote routine (routine_name) with non-built-in types is
not allowed.

When you invoke a remote routine you cannot pass complex data types or 
unsupported user-defined opaque types as routine arguments or return types. 
Cast the unsupported data types to supported data types or create the 
routine in the local database.


-9741	Internal error - attempt to pass arguments in C style while requiring
argument casts.

An internal programming error occurred. If this error recurs,
note all circumstances and contact IBM Technical Support.


-9743	Internal error - unable to determine all routines in statement.

A SQL statement that passed host variables into routines still had
unknown routine argument types after host variable binding. Rerun the
query without passing host variables to any routine or rerun the query
and pass the correct number of host variables.


-9744	BUILTIN routine routine_name definition does not match internal
operator.

This entry from SYSPROCEDURES with language BUILTIN does not match the
internal format of the operator that is being overloaded. If this error
recurs, note all circumstances and contact IBM Technical Support.


-9748	Cannot convert argument types when passing arguments by name, routine
routine_name.

At least one argument requires a cast before it can be passed into the
routine. Casts are not supported when passing arguments by name. Use
explicit casts from the argument to the parameter type.


-9750	Routine routine_name determined during PREPARE and BIND/EXECUTE return
different types.

If host variables are used in the statement that is being prepared, in
the absence of argument types information, the server tries to resolve
to a routine that is most likely the routine to which the user intended
to resolve. However, during BIND/EXECUTE time, in the presence of
argument type information, the routine specified in the statement might
resolve to a different routine. In that case, if the return types of
the routine that the server originally selected are different than the
one later resolved, this error is raised.

-9751	Cannot prepare the statement because the return type of the routine 
routine_name is not known.

The database server could not prepare the statement because a host variable 
was specified without a data type in a routine acting on a collection-derived 
table.  
You must cast the host variable to a data type that the routine takes as an 
argument. 

For example, the following statement fails to prepare because the argument type 
of the ST_IsValid routine is not specified: 
SELECT * FROM table(function ST_IsValid(?));

The following statement prepares successfully because the host variable 
is cast to a valid data type for the ST_IsValid routine: 
SELECT * FROM table(function ST_IsValid(?::st_multipolygon));

-9752	Argument must be a Statement Local Variable or SPL variable or argument for an OUT or INOUT parameter.

UDRs with OUT/INOUT parameters cannot be used in the WHERE clause of a 
SELECT statement unless the OUT/INOUT parameters are defined as Statement 
Local Variables (SLV). For example

	SELECT *
	FROM mytable
        WHERE foo (arg1, arg2, inout1, inout2, ...., inoutn) ;
 
is not a valid syntax assuming that foo is a UDR which has OUT/INOUT
parameters denoted by inout1...inoutn above. To use UDR foo in the WHERE
clause the above example must be modified to

             SELECT myslv1 , ..., myslvN, *
             FROM   mytable
             WHERE  foo (arg1, arg2, myslv1 # svlDataType1, 
                              ..., myslvN # svlDataTypeN);

myslv1, ..., myslvN are the SLVs defined for the OUT/INOUT parameters 
with return datatype svlDataType1, ..., svlDataTypeN respectively. 
Please note that it is optional to use the SLVs in the projection 
list for the SELECT statement.


You can invoke an SPL routine or a C UDR with OUT or INOUT parameters 
within a routine written in SPL. The parameter you pass into the OUT or 
INOUT parameter must be either an SPL variable or a parameter from another 
SPL routine, and the parameter cannot be passed as any form of expression.

Example:
create procedure p1(inout in1 integer);
  define a int;
  let a = in1;
  let in1 = a + 1;
end procedure;

create function f1(in1 integer) returning integer;
  call p1(in1);
  return in1;
end function;


-9753	Unable to find User Defined Routine with the given id.

The user defined routine with the specified ID cannot be found.

CAUSE
The user defined routine ID is incorrect or has been changed.

ACTION
Correct the ID in the prepared statement and then reprepare and execute the
statement.

-9754	No usage privilege.

The user does not have usage privilege on create functions or the user does
not have grant/revoke usage privilege on a language. This error is returned
when the user does not have the privilege to create a user-defined routine.

Ask user informix or a user with GRANT option privilege on the language to
grant usage permission to you.


-9757	Remote iterator function is not supported in this context.

Remote iterator function used in the context of a table reference is not
currently supported. Only local server iterator functions can be used.

For example, this is not supported:
select * from table (function remote_db@remote_server:tv1());


-9780	Statement-local variable cannot be an argument to a function called
from outside the WHERE clause.

A user-defined routine (UDR) invocation that accepts a Statement
Local Variable as an argument can be performed only in a WHERE clause
of a Data Manipulation Language statement. This error results if this
rule is violated. Move the UDR invocation inside a WHERE clause.


-9781	SLV cannot be an argument to a function invoked explicitly by EXECUTE
or CALL.

A routine that has an OUT parameter can only be invoked as part of a
data-management language query (only in the WHERE clause). Do not
invoke such a routine with a CALL or EXECUTE statement.


-9782	Statement Local Variable has already been defined.

The same statement-local variable (SLV) is used for different OUT and INOUT 
parameters in a query. Ensure that the SLV is unique within a query.


-9784	SLV (my_slv) has no producer-UDR; or is outside the scope of the
producer-UDR.

A statement-local variable (SLV) is out of scope. For example, given a UNION,
INTERSECT, or MINUS of two SELECT statements, one SELECT statement declares 
an SLV and the other SELECT statement references the SLV.


-9785	SLV (my_slv) cannot be accessed before it is produced by a UDR

You cannot access the SLV until it is generated in the UDR. The following statement will produce the error:

SELECT slv_var FROM my_table WHERE foo_slv(slv_var # int) 
	OR my_table.column IN (100,200,300);

If the IN clause of the OR condition in the WHERE clause is evaluated before the UDR foo_slv is called,
then slv_var is not initialized. 

-9786	Only iterative UDR allowed in this context.

The function used in the FROM clause of a select statement should be an iterative UDR.
The iterative UDRs written in SPL should have 'return with resume' clause. 

For example,
create procedure ret_x1() returning dint;
define r1 dint;
    foreach select a into r1 from x1
        return r1 with resume;
    end foreach;
end procedure;


The iterative UDRs written in C or Java should be create with 'with (iterator)' modifier
in the CREATE FUNCTION statement and should handle the different states of iteration.

create function fibgen(arg integer) returning integer
with ( iterator)
external name "$userfuncdir/fib.udr(fibGen)"
language c;


-9790	Language Manager initialization failed.

This error can occur in the following scenarios:

1.  The database server could not load internal C language or
    initialize data areas during server initialization.

    The following error message appears in the log:

    Language Manager initialization failed.

2.  An internal Language Manager error occurs during UDR loading 
    or execution, causing a failure such as memory allocation 
    or locking.

    The following error messages appears in the log:

    ERROR: Loading Routine routine_name procid = process_ID_number file:
    sqlmload.c

    ERROR: Unloading Routine routine_name procid = process_ID_number file:
    sqlmunld.c

    ERROR: Routine execution problem -- procname= procedure_name procid =
    process_ID_number file: sqlmexec.c


-9791	User-defined routine execution failed.

This error occurs under the following circumstances:

1.  A language problem occurred or an internal server error
    exists. In this case, the following log message is entered 
    in the log:

    ERROR: Routine execution failed -- procname = routine_name procid =
    process_ID_number

2.  The executing routine has caused one of the following
    exceptions:

       mem -- memory fault

       ill -- illegal instruction

       fpt -- floating point or divide by zero

       sys -- system call problem

       "xxx" -- SAPI layer exception explanation

    The following error message appears in the log:

    ERROR: Routine execution trap -- procname = procedure_name procid =
    process_ID_number reason: error_string


-9792	User-defined-routine language initialization failed.

A module failed to load, or an internal language error occurred. The
following error message appears in the log:

ERROR: Initializing Language language_name Module module_name


-9793	User Defined Routine (<routine-name>) module load failed.

The following error message appears in the log:

    ERROR: Loading Module <module-name>

A bad external name, missing file, or wrong permissions might cause this
error. Log message <log-message-number> contains the UNIX error number
encountered and the actual module name being used. For the C language on
UNIX, the following log message might appear:

    <error-number>: C Language Module <module-name> can't load <error-string>

In the log message, <error-number> is the current UNIX error number,
<module-name> is the module name from the catalog, and <error-string> is the
dlerror() explanation.


-9794	User-defined-routine load failed.

The following error message appears in the log:

Loading Routine routine_name procid = process_ID_number

The routine routine_name is not found in the module, possibly because
of a bad external name or the wrong module. The log message
log_message_number is probably -1, and error_message_string is the
database routine name as opposed to the symbol that was not found.


-9795	User-defined-routine unload failed.

The following error message appears in the log:

ERROR: Unloading Routine error_name procid = process_ID_number


-9796	User-defined routine module unload failed.

An internal system error occurred from a call to dlclose for Solaris C
modules. The following error message appears in the log:

ERROR: Unloading Module error_string


-9797	User-defined routine language shutdown failed.

The language did not shut down correctly. Probably an internal system
error occurred. The following error message appears in the log:

ERROR: error_string Language Shutdown


-9798	User-defined routine language lookup failed.

Language information is not defined in the system. Either the routine
definition is wrong, or something happened to the data dictionary. The
following error message appears in the log:

ERROR: Language error_string -- lookup failed


-9799	User-defined routine vitual-processor context-switch failed.

The database server could not switch to or back from the needed VP
during load, unload, or execution. The VP class could be wrong in the
routine definition, or the VPCLASS parameter could be missing from the
onconfig file. The following error messages appear in the log:

   ERROR: Routine execution VP switch failed -- new VP error_string

   ERROR: Routine execution VP switch failed -- old VP id = VP_ID

Make sure the VP class is correct in the routine definition. Also,
check the ONCONFIG file to make sure that it includes a VPCLASS
parameter for this type of virtual processor and that the setting
of the JVPCLASSPATH parameter is correct.


-9800	Table table_name is typed.

You cannot add a type to a table that is already typed. Drop the table
type and try adding the type again.


-9801	Cannot alter table table_name to add type.  Incompatible.

The column names and the column types of the table do not match the
field names and the field types of the type. Change them to
statements.


-9802	Cannot alter typed table <table_name>.

The only valid ALTER TABLE statement for a typed table is one that drops
the table type.

If you need to use any other ALTER TABLE statement on the table, first
drop the table type.


-9803	Cannot create typed view <view-name>. Incompatible.

Either you attempted to use a BYTE or TEXT field in a typed view or the
column names and the column types of the view do not match the field names
and the field types of the type.

Remove any BYTE or TEXT fields or change the field types to match those of
the underlying columns.


-9804	Cannot generate ROWIDS on typed table <table_name>.

Cannot have a ROWIDS column in a typed table. Either untype the table
with ALTER TABLE or do not create a ROWID column.


-9805	SERIAL/SERIAL8/BIGSERIAL data types allowed only as table column types.

You cannot have SERIAL/SERIAL8/BIGSERIAL data types in CREATE ROW statements.
They are allowed only as table-column types.


-9806	Cannot have duplicate/null field names in unnamed row types.

The CREATE ROW TYPE statement has duplicate field names or is missing one or
more field names.

Specify a unique name for each field in the CREATE ROW TYPE statement.


-9807	Temporary table <temptable_name> cannot be created with a type.

You cannot create temporary tables with types; typed tables are only
for permanent tables. Instead, try using the following example to
create a temporary table:

Instead of:
   CREATE ROW TYPE rowtypename (columnname int);
   CREATE TEMP TABLE tablename OF TYPE rowtypename;
use:
   CREATE TEMP TABLE tablename (columnname int);


-9808	The subtable type must be a subtype of the supertable type.

When creating a table hierarchy of supertable and subtable, the subtype for 
that subtable must also be a subtype of the supertable type (supertype). There
must be a type hierarchy defined before the corresponding table hierarchy can 
be defined.


-9809	Cannot specify blobspace names on TEXT or BYTE field types.

When specifying TEXT or BYTE fields in a complex type, do not specify the name
of the blobspace for that data type. The server uses the default partition 
blobspace for that TEXT or BYTE data type.


-9810	Smart-large-object error.

An error occurred during the processing of a smart large object.

For more information, check the accompanying, detailed smart-large-object
error code.


-9811	Invalid smart-large-object fd (<lo_fd>).

An attempt was made to access a smart large object using an
invalid LO file descriptor. Check that the LO file descriptor you
supplied is correct and that the smart large object is still open.


-9812	Cannot do implicit begin work.

Internal error. This error can be caused by many different situations, 
If the error reoccurs, note all circumstances and contact IBM Support. 
 
Informix Dynamic Server implicitly begins transactions for executing SQL 
statements. Sometimes, Informix Dynamic Server implicitly uses a separate 
transaction while recompiling statements within a procedure written in the 
Stored Procedure Language to write the new plan to the catalog. In that case, 
a failure to begin work results in the failure to execute the procedure.  


-9813	Cannot do implicit commit work.

Internal error. This error can be caused by many different situations, 
If the error reoccurs, note all circumstances and contact IBM Support. 
 
Informix Dynamic Server implicitly commits transactions for executing SQL 
statements. Sometimes, Informix Dynamic Server implicitly uses a separate 
transaction while recompiling statements within a procedure written in the 
Stored Procedure Language to write the new plan to the catalog. In that case, 
a failure to commit work results in the failure to execute the procedure.  


-9814	Invalid default sbspace name (sbspace_name)).

The database server is trying to create a smart large object in the
default sbspace, but the sbspace does not exist. Check that the
SBSPACENAME parameter in the ONCONFIG file is the name of an existing
sbspace. If necessary, the database server administrator can create an
sbspace using the onspaces command.


-9815	Invalid filename specification (file_spec).

You are calling a function that creates an operating-system
file, but the filename specification supplied is not valid.


-9816	Btree index not allowed on a column of this datatype.

You have attempted to use a B-tree index on a column that contains one
of the following datatypes: blob, clob, json, bson. Remove the statement
that attempts to create an index on one of these data types from your program.


-9818	Error detected in sql smart-large-object hash table.

Internal error. Contact IBM Technical Support.


-9819	Column (column_name) incorrect type for storage in sbspace.

You have attempted to store a column in an sbspace that is not an
appropriate type. Only CLOB and BLOB columns can be stored in sbspaces.
Columns of types TEXT and BYTE may not be stored in an sbspace.


-9820	SQL SBLOB error: no such sbspace.

The most likely problem is that an operation specifies an sbspace
by name (for example, in the PUT clause of a CREATE TABLE statement),
but that sbspace has not been created.

You can run the onstat utility with the -d option to see the names
of sbspaces created. Ask the database server administrator
about creating a new sbspace.


-9823	Inconsistent use of procedure named return parameters.

A procedure has duplicate return parameter names or only a partial list of return parameter names.

Example of error:

RETURNING INT AS customer, INT AS customer; -- error
RETURNING INT AS customer, INT; -- error


-9824	Cannot perform more than one online create/drop index operation on 
table.


-9825	Online create/drop index not allowed on VII indexes.


-9826	Cannot perform online create/drop index operation along with storage optimization operation.

-9827	The sbspace specified by the SYSSBSPACENAME configuration parameter does not exist (syssbspace_name).

The database server failed to create a smart large object in the
sbspace that is specified by the SYSSBSPACENAME configuration parameter
because the sbspace does not exist. Check that the value of the
SYSSBSPACENAME configuration parameter in the onconfig file is the
name of an existing sbspace. If necessary, the database server
administrator can create an sbspace using the onspaces command and
update the value of the SYSSBSPACENAME configuration parameter
in the onconfig file.

The UPDATE STATISTICS operation might require an existing sbspace,
which is specified by the SYSSBSPACENAME configuration parameter.

-9831	Could not find opclass id opclass_ID while resolving compare routine
for index.

The operator class for one or more key parts of the index no longer
exists in the database. The index is no longer valid and must be
dropped.


-9832	Could not find routine routine_name while resolving compare routine.

Either the comparison routine for one or more key parts of the index no
longer exists in the database, or the comparison routine required to
perform a sort cannot be found. You need to re-create the compare
routine. If an index is involved, the index needs to be dropped.


-9833	Could not find extended type type_ID for index.

The type of one or more key parts of the index no longer exists in the
database. The index is no longer valid and must be dropped.


-9835	Could not find routine ID routine_ID for functional key.

The routine identified by the routine ID for one or more functional key
parts no longer exists in the database. The index is no longer valid
and must be dropped.


-9836	Could not initialize sequence for routine <routine-name>.

A user-defined routine is missing a statcollect() or compare() function.

Add the missing function to the user-defined routine.


-9838	Cannot create operator class for a primary access method.

You cannot create an operator class for a primary access method. For a
list of available secondary access methods, you can perform the
following query.

SELECT * FROM INFORMIX.SYSAMS WHERE AM_TYPE = 'S';


-9839	Cannot mix generic and specific operators in an operator class.

If you specify the full function signature for one of the strategy
functions in the operator class, you need to specify the function
signatures for all of the strategy functions.


-9840	Invalid number of strategies or support function for btree.

You must specify no more than five operators (operators implementing
lessthan, lessthanorequal, equal, greaterthanorequal, and greaterthan)
and exactly one support function (the comparison function) in CREATE
OPCLASS for the btree access method.


-9841	Operator class for key part not specified or invalid.

The operator class specified in one or more of the key parts is 
invalid. Probable causes for this error include:

*   You might be using an operator class for a different access method
    than the one with which you are creating the index.

*   If the access method that you use does not have a default
    operator class associated with it, you must explicitly specify the
    operator class for each key part.

*   Data type of the key column and that of the operator class do not 
    match, where strategy function signatures are specified for the operator 
    class.


-9842	Specification of ASC/DESC only applicable to btree.

You cannot specify ASC or DESC in the key part if you are using an
access method other than btree.


-9843	Invalid number of arguments for functional key.

A functional key part can only take between 1 and 16 arguments.


-9844	Invalid function function_name used in a functional key.

The function used in a CREATE INDEX statement cannot be used as a
functional key part. Make sure that the function you use is not a
variant function.


-9845	Access method access_method_name does not exist in database.

The access method used in a CREATE INDEX or CREATE OPCLASS statement
does not exist. Before you can use an access method, you must create it
with a CREATE ACCESS_METHOD statement. For a list of available access
methods, see informix.sysams.


-9846	Operator class operator_class_name does not exist in database.

The operator class used in a CREATE INDEX statement does not exist.
Before you can use an operator class, you must create it with a CREATE
OPCLASS statement. See informix.sysopclasses for a list of available
operator classes.


-9848	Functional key part cannot use a variant function function_name.

The function used in a CREATE INDEX statement for a functional key part
must be a nonvariant function (that is, it must be created with the NOT
VARIANT modifier in the CREATE FUNCTION statement).


-9849	Compare routine routine_name cannot be in SPL

The compare routine used for a generic B-tree cannot be written in SPL.
You should rewrite the compare routine in C.


-9851	Access method access_method_name already exists in database.

The access method that you are creating with a CREATE ACCESS_METHOD
statement already exists. You must use a new name.


-9852	Improper purpose purpose_name used for access method.

A purpose used with the CREATE ACCESS_METHOD or ALTER ACCESS_METHOD
statement is improper. It might be spelled incorrectly. Otherwise, it
is used incorrectly in combination with the other purposes, or it is a
purpose that is not appropriate for the type of access method. For
example, an access method cannot be created with AM_DELETE if AM_ROWIDS
is not used, and AM_GETBYID cannot be used for a secondary access
method. Correct the spelling of the purpose or change one or more of
the purposes until the combination of purposes is valid.


-9853	Duplicate purpose purpose_name used for access method.

A purpose used with the CREATE ACCESS_METHOD or ALTER ACCESS_METHOD
statement has been used more than once. Change the purposes used until
no duplicates exist.


-9854	Required purpose purpose_name not used for access method.

A required purpose has not been used with the CREATE ACCESS_METHOD
statement, or a required or default purpose has been removed with the
ALTER ACCESS_METHOD statement. For example, AM_SCANCOST has a default
value if not used with the CREATE ACCESS_METHOD statement, but it
cannot be dropped with the ALTER ACCESS_METHOD statement. Change the
purposes used until the required purposes are included or preserved.


-9855	Improper value used for purpose purpose_name for access method.

A purpose has been used with an improper value in a CREATE
ACCESS_METHOD or ALTER ACCESS_METHOD statement. For example, an integer
cannot be used for AM_SPTYPE. Use the proper type of value for the
purpose.


-9856	Index not created because the table's access method doesn't
support rowids.

A CREATE INDEX statement was used on a table whose access method
does not support rowids. Because rows from the table are fetched by the
index by rowid, the index cannot be created.


-9857	Unknown space space_name used for external table/index.

A CREATE TABLE or CREATE INDEX statement has an IN clause that
references an extspace that does not exist. Use an existing extspace.


-9858	Unsupported option option_name used for an external table/index.

An ALTER TABLE or ALTER INDEX statement has an option that is not
supported by the access method. Remove the option.


-9859	Index not created because its access method does not support
unique keys.

A CREATE UNIQUE INDEX statement or CREATE DISTINCT INDEX statement used an
access method that does not support unique keys.

Remove UNIQUE from the CREATE INDEX statement or remove DISTINCT from the
CREATE INDEX statement.


-9860	Improper access method used.

A CREATE TABLE statement used a secondary access method or a CREATE
INDEX statement used a primary access method. Use a primary access
method with CREATE TABLE and a secondary access method with CREATE
INDEX.


-9861	Improper access method parameter information used for an external
table/index.

A CREATE TABLE or CREATE INDEX statement is using an access method with
parameter information that is improper. For example, the identifier
might be longer than 18 bytes, or the value might be longer than 236
bytes. Correct the parameter information.


-9862	Could not initialize or execute access method routine.

An access method routine failed to execute properly. The RSAM error
code gives more information.


-9863	Opclass opclass_name already exists in database.

The opclass being created with a CREATE OPCLASS statement already
exists. Use a new name.


-9864	Improper strategy definition.

A CREATE OPCLASS statement is using a strategy definition that is
improper. For example, a strategy might take at most three arguments.
Correct the strategy definition.


-9865	Improper support definition.

A CREATE OPCLASS statement is using a support definition that is
improper. For example, a support name can be at most 18 bytes. Correct
the support definition.


-9867	Access method access_method_name not found.

A DROP ACCESS_METHOD or ALTER ACCESS_METHOD statement uses an access
method that does not exist. Use the correct access method.


-9868	Not owner of access method.

The person executing a DROP ACCESS_METHOD or ALTER ACCESS_METHOD
statement is not the owner of the access method or does not have DBA
privileges.


-9869	Cannot drop access method access_method_name: still in use.

A DROP ACCESS_METHOD statement cannot be used if any tables or indexes
are defined using that access method. Drop the tables or indexes first
and then drop the access method.


-9870	Cannot alter access method access_method_name: still in use.

An ALTER ACCESS_METHOD statement cannot be used while anyone is using
the access method. Wait until no one is using the access method and try
again.


-9871	Alter fragment attach/detach for external table not supported.

The ALTER FRAGMENT statement cannot be used for a table or index that
uses an access method. Either create a new table with the desired
properties and copy the data from the old table to the new table or
create a new index with the desired properties.


-9872	Cannot drop operator class operator_class_name: still in use.

The operator class is being used in an existing index and therefore
cannot be dropped. Drop all the indexes that use the operator class
before you drop it.


-9873	Not owner of operator class.

You cannot drop an operator class unless you are the owner or the
database administrator. Contact the database administrator or the owner
of the operator class.

-9874	Cannot rename database if it has a virtual table or index.

You cannot rename a database if the database has any tables created using primary 
access method (also known as virtual table interface) or indices using 
secondary access method (also known as virtual index interface).  R-TREE indices
are implemented using secondary access method and therefore, databases with 
R-TREE indices cannot be renamed.


-9875	Bad internal structure for collection data: unknown flag
value.

The structure of collection or row data might be corrupted.

Report this situation to IBM Technical Support.


-9878	An implied insert column does not accept NULLs.

The statement attempted an implied insert of a null value into a column
that does not accept null values.

Rewrite the INSERT statement to provide a value for any column that
do not accept null values, or redefine the column to accept nulls.


-9880	Storage space <name> is incompatible with the access method.

The operation was unsuccessful because the specified storage space cannot be
used by the access method referenced in the SQL statement.

Change the statement to specify a storage space that is of a type that the
access method supports. To find out whether the access method supports an
extspace (external storage) or sbspace (smart-large-object storage), query
the sysams system catalog table for access method name that you specify in
the CREATE TABLE statement USING clause. Refer to the am_sptype value for
that access method. The following values indicate the type of storage space
that you can use with the access method:

    *   'X' indicates that the access method supports only extspaces
    *   'S' indicates that the access method supports only sbspaces
    *   'A' indicates that the access method supports both extspaces and
        sbspaces

Important: You cannot use a dbspace (Dynamic Server table space storage)
with a user-defined access method. A user-defined access method is one.

For more information about the type of storage spaces that the access method
supports, refer to the access-method user guide.


-9882	Access method AM_SPTYPE purpose value <space-types> is invalid.

The operation failed because the access method specified in the SQL
statement has an invalid value, <space-types>, for its AM_SPTYPE purpose
value.

Because processing for the CREATE PRIMARY ACCESS_METHOD and CREATE SECONDARY
ACCESS_METHOD SQL statements validates the AM_SPTYPE value, this error
should only occur if the row associated with the access method in the sysams
system catalog table was explicitly updated after the access method was
created.

Ask the access-method provider or database administrator to change the
AM_SPTYPE value for the access method with the ALTER ACCESS_METHOD statement.


-9883	Could not determine the type of storage space <name>.

An error occurred while the database server was looking up the type
of the specified storage space (dbspace, sbspace, or extspace).
Usually this problem is related to accessing the sysmaster:sysextnames table.
For more information, refer to the accompanying ISAM error code.


-9884	No default storage space exists for the access method.

None of the storage-space types supported by the access method has a default
storage space.

To correct this error, you can take either of the following actions:

    *   In your SQL statement, explicitly specify the storage spaces for
        the access method to use.

    *   If the access method supports sbspaces, ask your database server
        administrator to create a sbspace with the onspaces utility and
        set the ONCONFIG parameter SBSPACENAME to that sbspace name.

    *   If the access method supports only extspaces, the access method
        software can create a default external storage space, such as a disk
        file.

To find out whether the access method supports an extspace (external
storage) or sbspace (smart-large-object storage), query the sysams system
catalog table for access method name that you specify in the CREATE TABLE
statement USING clause. Refer to the am_sptype value for that access method.
The following values indicate the type of storage space that you can use
with the access method:

    *   'X' indicates that the access method supports only extspaces
    *   'S' indicates that the access method supports only sbspaces
    *   'A' indicates that the access method supports both extspaces and
        sbspaces

For information about how to determine if a storage space is of a type that
an access method supports or how to determine the storage space type that an
access method supports, refer to the access-method user guide.


-9885	Variant user defined routine cannot be used in check constraint
or fragment expression.

You cannot use a variant user-defined routine (UDR) in a check constraint
or fragment expression.

Check your statement to make sure that no variant UDR is used in a check
constraint or fragment expression.


-9885	A check constraint or fragmentation expression cannot contain a 
variant user-defined routine.

A user-defined routine (UDR) in a check constraint or in a fragmentation
expression cannot be variant. That is, the UDR must not return different
results when passed the same arguments. Variant UDRs include routines that
process queries and functions that return random results.

Verify that your statement does not have a variant UDR in a check constraint
or in a fragmentation expression. If you want to alter a UDR that is
currently in a check constraint or in a fragmentation expression from
nonvariant to variant, you must drop its associated check constraints
or its table or index fragments.


-9886	A check constraint or fragmentation expression cannot contain a 
user-defined routine that generates an OUT parameter.

A check constraint or fragmentation expression cannot contain a 
user-defined function that generates an OUT parameter. That is, an OUT 
parameter cannot be passed back to a check constraint or a fragmentation 
expression from a user-defined function.

Verify that your statement does not use a user-defined function that 
generates an OUT parameter in a check constraint or in a fragmentation 
expression.


-9887	A check constraint or fragmentation expression cannot contain a 
cross-database or remote user-defined routine.

The check constraint or fragmentation expression contains a remote or 
cross-database user-defined routine (UDR).

Verify that a UDR in a check constraint or in a fragmentation expression is 
stored within the same database as the check constraint or the 
fragmentation expression.


-9889	Cannot drop the user-defined routine <routine_name> because a 
check constraint or a fragmentation expression currently uses this routine.

To identify the check constraint that uses the routine that you are trying 
to drop, run this query:

   SELECT constraint_id
       FROM syscheckudrdep x, sysprocedures y
       WHERE x.udr_id = y.procid AND
             y.procname = '<routine_name>';

To identify the table or index that has a fragmentation expression that 
uses the routine that you are trying to drop, run this query:

   SELECT tabid, idxname, owner
       FROM sysfragexpudrdep x, sysprocedures y
       WHERE x.udr_id = y.procid AND
             y.procname = '<routine_name>';


-9904	Invalid extended type text.

Could not determine the internal SQL data type. If this error recurs,
note all circumstances and contact IBM Technical Support.


-9905	No extended type information for domain.

Could not find the attribute information for a domain or type. If this
error recurs, note all circumstances and contact
IBM Technical Support.


-9906	Cannot modify column data type to collection type.

You cannot use an ALTER statement to change a column type to a
collection type.


-9907	Not allowed to modify collection type column.

You cannot use an ALTER statement to change a column type from a
collection type to another type.


-9908	Columns of a row type cannot contain fields of type TEXT, BYTE,
SERIAL, SERIAL8 or BIGSERIAL.

You created a table that has a column with a named row of type TEXT,
BYTE, SERIAL, SERIAL8 or BIGSERIAL. The following example should fail:

   create row type rtype (col1 byte);
   create table tab1 (c1 rtype);

Re-create the table with a different type of named row.


-9909	Nested row type not supported

You cannot nest row types.


-9910	Byte, Text, Serial or Serial8 or Bigserial data types in collection type not allowed.

The fields of a row within a collection and the elements of a
collection cannot be of type TEXT, BYTE, SERIAL, or SERIAL8 or BIGSERIAL.


-9911	Defaults on collection type column not allowed.

Default values are not supported in the definition a column of a
collection type. Remove the default value clause.


-9912	Constraints on collection type column not allowed.

Constraint expressions are not supported in the definition of a column
of a collection type. Remove the constraint clause.


-9919	Cast already exists in database.

Casts must be unique with regard to their source and destination types,
regardless of cast class. Use the DROP CAST statement to remove an
existing cast.


-9920	Cannot create a cast between identical types or between built-in types.

No cast is needed between identical types. Casts between built-in types
are handled by internal system casts and cannot be overloaded.


-9922	Cast does not exist in database.

The requested cast does not exist. Use the CREATE CAST statement to
define the cast.


-9923	Cannot create cast between incompatible types.

An attempt was made to define a no-function cast between types with
differing representations. Redefine the cast to use a function or
redefine the types so that they share the same representation.


-9926	The statement failed because row-type or collection columns were 
referenced in ORDER BY, DISTINCT, UNIQUE, INDEX, UNION, INTERSECT, 
or MINUS specifications, or in primary key, foreign key, or unique constraints.

Do not create or alter a table which makes columns of collection or row
types into primary key, foreign key, or unique constraints. Do not create an 
index or UNION, INTERSECT, or MINUS that involves collection or row type 
columns.  However, you can create a union that involves collection or row type 
columns if you use the UNION ALL operator instead of the UNION operator.


-9928	Must supply a cast function for cast between incompatible types.

An attempt was made to define a no-function cast between types with
differing representations.

Redefine the cast to use a function, or redefine the types so that they
share the same representation.


-9930	Byte, Text, Serial or Serial8 or Bigserial datatypes in collection types
not allowed.

You cannot use TEXT, BYTE, SERIAL, or SERIAL8 or BIGSERIAL data types in 
the fields of a row within a collection or the elements of a collection.

-9931	Byte and Text datatypes in row and collection types not
allowed.

You requested the construction of an object that contains a BYTE or
TEXT data type. This is only supported for column types of a table or
CREATE ROW TYPE statement. All other references to a named row type,
unnamed row type, or collection type cannot contain BYTE or TEXT
data types.

-9932	External Directives feature is currently disabled.

You issued a statement that is valid only when the feature
External Directives is enabled. Contact your DBA
if you need to enable it.

-9933	Invalid Directive specification for external directives.

The optimizer directives you specified are invalid.

-9934	Only DBA is authorized to do this operation.

Only users with DBA privileges can perform this operation.

-9935	External Directives already exist for the query.

There are external directives already saved for the specified query. 

Drop the existing external directives first, then the new 
external directives for the query can be saved in the database.

-9943	The collection format is out of date. Recreate the collection data.

Collection data from a 9.10 or earlier 9.x database server was not unloaded
and reloaded for migration to a version 9.11 or 9.12 database server.

If a table column has a collection data type, you must unload the collection
data before migrating to release 9.11 or 9.12, from a 9.10 or earlier
release, and then reload the data after the migration.


-9944	Cannot seek in non-scrollable collection.

You have opened a collection with the flag MI_COLL_NOSCROLL and later
attempted to seek within the collection. Open the collection without this
flag or do not attempt to seek within the collection. 


-9945	Cannot modify a read only collection

You have opened a collection with the flag MI_COLL_READONLY and then
attempted to modify the collection. Do not open the collection with this 
flag or do not modify the collection.


-9946	Cannot open subquery collection twice.

Subquery collections opened with the flags MI_COLL_READONLY and
MI_COLL_NOSCROLL cannot be opened again.


-9950	Field referencing is not possible for non-row type expressions.

Only expressions of the form column.field are only meaningful for objects
of type row.

Remove the .field part of your expression.


-9953	An aggregate function is not allowed in this context.

You cannot use an aggregate function expression as an argument to a 
function or procedure.

An aggregate function is valid only in these contexts:
  in the projection clause of the SELECT statement, 
  in the projection clause or in the WHERE clause of a subquery. 

An aggregate is not valid, however, in the WHERE clause of a subquery 
within a SELECT, DELETE, or UPDATE statement unless each of the following 
conditions is true:
  The aggregate is on a correlated column originating from a parent query.
  The WHERE clause appears in a subquery within a HAVING clause.

You can also include OLAP window aggregate functions in these clauses of 
the SELECT statement:
  The Select list of the Projection clause
  The ORDER BY clause of the SELECT statement 
  Subquery specifications in the Projection clause

To be valid, the OLAP window aggregate function expression must immediately
precede the OVER clause.

To avoid this error, do not call any aggregate function outside the SELECT 
statement and subquery contexts that are listed above as allowing aggregate
expressions.


-9960	Combination of table/index fragmentation not allowed.

If a table is fragmented by round-robin and its subtable specifies its
own fragmentation scheme, you cannot create an index on the supertable
without a fragmentation clause. Either create an index with an explicit
fragmentation clause or let the subtable inherit its fragmentation
scheme from the supertable.


-9965	The maximum number of allowable sbspaces maximum_number has been
exceeded.

The maximum number of 64 sbspaces per table has been exceeded, so your
operation failed. For more information on the number of sbspaces
associated with the table, run the following queries:

SELECT tabid FROM informix.systables
        WHERE tabname = `<user_table_name>';


SELECT count(*) FROM informix.syscolattribs
        WHERE tabid = <tabid_from_previous_query>;


-9967	Cannot find data type data_type_name.

The specified data type does not exist in the database. Check
sysxtdtypes to make sure that the data type exists before you use it.


-9969	Corrupted collection type information.

The type information for a collection is not consistent. 

If this error recurs, note all circumstances and contact
IBM Technical Support.


-9970	Cannot determine host variable type during bind.

An ambiguous bind message was received. The database server could not
infer the variable type from the context of the query. The host
variable type must be explicitly defined.


-9971	Cannot determine the return types of a query or return types
are inconsistent.

The database server cannot determine the data type for one or more of
the values that the query is to return.

Check the specification of the data type for each return value,
correct any errors in the specification, and retry the query.


-9973	Row buffer for collection of fixed size elements not of
correct size.

You attempted to insert a new or update an existing collection
element with a value that is not the same size as was declared in the
collection definition. This error occurs only when a collection contains
fixed-length elements.

Check to make certain that the value you are inserting matches the
collection declaration.


-9974	Cannot delete element from a ROW type.

You have attempted to delete a row from a host variable of type ROW.
Because a ROW host variable has only the single row as its contents,
deletion is not allowed. If you want to construct a row with NULL
values, use an UPDATE statement and set each field to a NULL value.
Otherwise, remove the request to execute the SQL DELETE for the row
host variable in your embedded language program.


-9975	Type of a table must be unique within a table hierarchy.

You cannot have siblings of the same type under the same parent. For
example, assume that you create the following row types:

create row type r1 (a int);

create row type r2 under r1;

Now you attempt to create a supertable and two subtables. The third
statement in the following set generates an error:

create table supertab of type r1;

create table subtab1 of type r2 under r1;

create table subtab2 of type r2 under r1;

The third CREATE TABLE statement generates an error because subtab1
and subtab2 would be siblings under supertab. Informix does not support
this table hierarchy in this release. The current version of the database
server restricts the table hierarchy to match the type hierarchy, and
no type can appear more than once within a single hierarchy of tables.


-9976	Manipulation of NULL collection disallowed.

You attempted an action on a NULL collection. Examine your embedded
language program to determine why you are attempting to operate on a
NULL collection.


-9977	Internal Error: hash value out of sync.

This message indicates an error internal to the support of the Informix
database server for collection data types. If this error recurs,
note all the circumstances and contact IBM Technical Support.


-9978	Insertion of NULLs into a collection disallowed.

The statement attempted to insert one or more NULL values into a collection.
The elements of a collection must always be non-null. The fields of a row
within a collection can be NULL, but the elements of the collection cannot
be NULL. This error can occur, however, if a collection subquery specifies
an ITEM select and one of the rows contains a NULL value.

The following example is valid for a collection defined with elements of
type row. However, insert into table(:coll_hv2) values (NULL) is not valid
for any collection.

    INSERT INTO TABLE(:coll_hv) VALUES (row(NULL, NULL));

Do not attempt to insert NULL values as elements of a collection.


-9979	Updating of a collection element to NULL is disallowed.

The elements of a collection cannot be NULL. Do not attempt to update
collection elements to NULL values. (See the corrective action for
error message -9978.)


-9980	LIST expected when inserting AT position.

You can use a positional insert statement only with collection of type
LIST. Remove the AT clause from your insert statement.


-9981	Delete disallowed on collection with other cursor references.

You attempted to delete a collection that is being referenced by more
than one cursor. Review your program, determine the relevant cursor to
keep, and remove the other cursor that is acting on the collection.


-9982	Update disallowed on collection with other cursor references.

You attempted to update a collection that is being referenced by more
than one cursor. Review your program, determine the relevant cursor to
keep, and remove the other cursor that is acting on the collection.


-9983	Deleting a nonexisting element.

You positioned your cursor to an element of a collection that no longer
exists and then requested that the element be updated or deleted. This
problem occurs if you use a FETCH statement to position your cursor
past the last record and then attempt an update or delete. An error
results because you are not pointing to a valid record. Make sure your
embedded language program is checking the SQLCODE value returned after
a FETCH to determine that there are no more rows.


-9984	Cannot free a collection with other cursor references.

You attempted to free a collection reference while a cursor is still
opened on the collection. Review your embedded language program to
determine why you are prematurely freeing the collection reference
before you close the cursor.


-9985	Internal Error: invalid change log.

This message indicates an error internal to the support of IBM Informix
database server for collection data types. If this error recurs,
note all the circumstances and contact IBM Technical Support.


-9986	Internal Error: corrupted collection.

This message indicates an error internal to the support of IBM Informix
database server for collection data types. If this error recurs,
note all the circumstances and contact IBM Technical Support.


-9987	Cursor already registered.

You are attempting to open a cursor that is already open. Review your
embedded language program to determine why you are re-opening the
cursor before you close it.


-9988	Cannot flatten a collection with other cursor references.

You attempted to store a collection host variable into a table column,
or row field, but cursors are still open on the collection. You must
close the other cursors before you attempt this operation.


-9989	Incorrect number of fields in the ROW type.

You attempted to store a row with incorrect field types into a
collection. Verify that the row fields match those of the collection.


-9990	Cannot drop named row type <row_type_name>: still in use.

The row type that you are attempting to drop is being referenced by
another type or table, or the row type is used in an SPL routine.

For example:

   CREATE ROW TYPE MyType ...;
   CREATE FUNCTION f(param1 MyType) RETURNS INTEGER;
   ...
   END FUNCTION;
   DROP ROW TYPE MyType;   -- Gets error -9990

Before you drop the row type, first drop any type or table that refers
to the row type and drop any SPL routine that uses it.


-9991	Named row type row_type_name already exists in database.

You are trying to create a named row type whose name is already used.
Use another name or drop the row type to reuse its name.


-9992	Named row type row_type_name not found.

The named row type specified does not exist in the database. Verify its
existence by selecting from sysxtdtypes.


-9993	Not owner of named row type.

You cannot drop the named row type unless you are the owner or have the
DBA privilege. Verify the owner of the named row type by selecting from
sysxtdtypes.


-9994	Cannot use ONLY(TABLE(str)) over collections.

The ONLY syntax is not legal over TABLE expressions over collections.
Use ONLY on supertables; that is, parents in an inheritance chain.


-9995	Table table_name is not typed.

Cannot alter a table to drop its type if the table is not typed. Make
sure you are referring to the correct table.


-9996	Distinct type (<type-name>) already exists in database.

Distinct types must be unique within the schema (ANSI mode) or database.

Redefine the type with a new name or remove the existing name before
attempting to create your version.


-9997	No usage privilege on data type (<type-name>).

You do not hold the privilege to use this data type, which is a
DISTINCT data type that is based on a built-in data type. The
creator of this user-defined data type or a DBA must explicitly
grant you the Usage privilege on this data type.

You should ask a DBA or the owner of the cast to grant you
the Usage privilege on the cast.


-9998	No privilege to drop a cast of this DISTINCT data type.

You do not have the privilege to drop a cast of this DISTINCT type. By
default, after a DISTINCT type is defined, only the owner of the
DISTINCT type or a DBA can drop a cast for it. The owner of the
DISTINCT type, however, can grant to other users, to PUBLIC, or to
roles the Usage privilege on the DISTINCT type.

You should ask the DBA or the owner of the cast to drop the cast, or else
to grant you the Usage privilege on the cast so that you can drop it.


-9999	Routine collcompare() is not supported.

This routine always returns -1 and an error. The semantics of
the comparison are not defined.


-10000	Argument must be a variable to be an OUT or INOUT parameter.

The corresponding arguments to UDRs with OUT or INOUT parameters must be
specified as variables when the routine is called from a client such as
DRDA. Constants cannot be used as an argument for an OUT or INOUT parameter
in such cases.


-11000	Success.

This IBM Informix CLI error code is the same as SQLSTATE value 00000. The
following functions can return this error code: all IBM Informix CLI functions.

The function completed successfully.


-11001	General warning.

This IBM Informix CLI error code is the same as SQLSTATE value 01000. The
following functions can return this error code: all IBM Informix CLI functions
except SQLAllocEnv() and SQLError().

The function returned SQL_SUCCESS_WITH_INFO, which means that the function
completed successfully, and that a nonfatal error occurred. For more
information, call SQLError().


-11001	General warning.

This CLI warning can be returned with any CLI function except
SQLAllocEnv and SQLError when a nonspecific warning occurs. Additional
text is appended to describe the specified warning in more detail. For
detailed information associated with the appended text, check the
IBM Informix CLI Programmer's Manual.


-11002	Disconnect error.

This IBM Informix CLI error code is the same as SQLSTATE value 01002. The
following function can return this error code: SQLDisconnect().

The function returned SQL_SUCCESS_WITH_INFO, which means that the function
completed successfully, and that a nonfatal error occurred. For more
information, call SQLError().


-11003	Data truncated.

This CLI message is issued when the data that a CLI function returns
exceeds the defined buffer size. Increase the size of the allocated
buffer.

This IBM Informix CLI error code is the same as SQLSTATE value 01004. The
following functions can return this error code: SQLBrowseConnect(),
SQLColAttributes(), SQLDataSources(), SQLDescribeCol(), SQLDriverConnect(),
SQLDrivers(), SQLExecDirect(), SQLExecute(), SQLExtendedFetch(), SQLFetch(),
SQLGetCursorName(), SQLGetData(), SQLGetInfo(), SQLNativeSql(), and
SQLPutData().

For SQLExecDirect(), SQLExecute(), or SQLPutData(), one of the following
problems occurred for the SQL statement, the prepared statement, or the data
sent: (1) The statement or data contained a binary or character parameter
or literal that exceeded the maximum length of the associated column, or
(2) The function truncated the fractional part of a numeric parameter or
literal in the statement or data, or (3) The function truncated part of a
date or time parameter or literal in the statement or data. Change the data
or the parameters and literals in the statement so that they do not exceed
the maximum length of the associated column, and set the data types for the
parameters and literals so that they can accommodate the data.

For SQLExtendedFetch() or SQLFetch(), the function returned
SQL_SUCCESS_WITH_INFO, which means that the function completed successfully,
and that a nonfatal error occurred. To handle the nonfatal error, the function
truncated the data that was returned for one or more columns. If the value was
a string, the function right-truncated it. If the value was numeric, the
function truncated the fractional part of the number. Set the data types for
the return data so that they can accommodate the data. For more information,
call SQLError().

For SQLGetData(), the function returned SQL_SUCCESS_WITH_INFO, which means
that the function completed successfully, and that a nonfatal error occurred.
The nonfatal error occurred because the function could not retrieve all the
data for the specified column in one call. The pcbValue argument contains
the length of the data that was left in the column before the current call
to SQLGetData(). Call SQLGetData() repeatedly until all data is retrieved.

For all other functions that can return this error code, the function returned
SQL_SUCCESS_WITH_INFO, which means that the function completed successfully,
and that a nonfatal error occurred. The nonfatal error occurred because the
return buffer was not large enough to return all the requested information.
The function truncated the return data and set the total number of bytes
returned to the length of the untruncated return data. Reallocate the return
buffer so that it can accommodate the return data. For more information, call
SQLError().



-11004	Privilege not revoked.

This IBM Informix CLI error code is the same as SQLSTATE value 01006. The
following functions can return this error code: SQLExecDirect() and
SQLExecute().

The function returned SQL_SUCCESS_WITH_INFO, which means that the function
completed successfully, and that a nonfatal error occurred. The nonfatal error
occurred because the SQL statement or prepared statement contained a REVOKE
statement, and the user does not have the access privilege to make this
change. For more information, call SQLError().


-11005	Invalid connection string attribute.

Specified connection string attribute is unsupported for
SQLBrowseConnect and SQLDriverConnect. Check the list of valid
attributes.

This IBM Informix CLI error code is the same as SQLSTATE value 01S00. The
following functions can return this error code: SQLBrowseConnect() and
SQLDriverConnect().

For SQLBrowseConnect(), the function returned SQL_NEED_DATA, which means that
either the connection string contains an invalid attribute keyword, or the
connection string contains an attribute keyword that does not apply to the
current connection level. Set each attribute keyword in the connection string
to a valid value that applies to the current connection level.

For SQLDriverConnect(), the function returned SQL_SUCCESS_WITH_INFO, which
means that the function completed successfully, and that a nonfatal error
occurred. The nonfatal error occurred because the connection string contains
an invalid attribute keyword, but IBM Informix CLI connected to the data source
anyway. For more information, call SQLError().


-11006	Error in row.

An error occurred while fetching one or more rows with
SQLExtendedFetch. Check the rgfRowStatus array.

This IBM Informix CLI error code is the same as SQLSTATE value 01S01. The
following function can return this error code: SQLExtendedFetch().

The function returned SQL_SUCCESS_WITH_INFO, which means that the function
completed successfully, and that a nonfatal error occurred. The nonfatal
error occurred while the function was fetching one or more rows. For more
information, call SQLError().



-11007	Option value changed.

The driver did not support the specified value of the VParam argument
with the SQLSetConnectOption or SQLSetStatementOption. The driver
substitutes a similar value and returns SQL_SUCCESS_WITH_INFO. To
determine the new value of VParam, use SQLGetConnectionOption or
SQLGetStatement.

This IBM Informix CLI error code is the same as SQLSTATE value 01S02. The
following functions can return this error code: SQLSetConnectOption() and
SQLSetStmtOption().

The function returned SQL_SUCCESS_WITH_INFO, which means that the function
completed successfully, and that a nonfatal error occurred. The nonfatal
error occurred because IBM Informix CLI does not support the vParam value for
the option. The function substituted a similar value. For more information,
call SQLError().



-11008	No rows updated or deleted.

This IBM Informix CLI error code is the same as SQLSTATE value 01S03. The
following functions can return this error code: SQLExecDirect() and
SQLExecute().

The function returned SQL_SUCCESS_WITH_INFO, which means that the function
completed successfully, and that a nonfatal error occurred. The nonfatal
error occurred because the SQL statement or prepared statement contained a
positioned UPDATE or DELETE statement, but the function did not update or
delete any rows. For more information, call SQLError().


-11009	More than one row updated or deleted.

This IBM Informix CLI error code is the same as SQLSTATE value 01S04. The
following functions can return this error code: SQLExecDirect() and
SQLExecute().

The function returned SQL_SUCCESS_WITH_INFO, which means that the function
completed successfully, and that a nonfatal error occurred. The nonfatal
error occurred because the SQL statement or prepared statement contained a
positioned UPDATE or DELETE statement, and the function updated or deleted
more than one row. For more information, call SQLError().


-11010	Cancel treated as FreeStmt/Close.

This IBM Informix CLI error code is the same as SQLSTATE value 01S05. The
following function can return this error code: SQLCancel().

This message is issued whenever SQLCancel is used with an open
statement handle. This warning is not returned when using the driver
manager. Instead of using SQLCancel, close the statement handle with
the SQLFree statement.



-11011	Attempt to fetch before the result returned the first rowset.

This IBM Informix ODBC error code is the same as SQLSTATE value 01S06. The
following functions can return this error code: SQLExtendedFetch and
SQLFetchScroll.

For SQLExtendedFetch(), the requested rowset overlapped the start of the
result set when the current position was beyond the first row, and either
FetchOrientation was SQL_PRIOR or FetchOrientation was SQL_RELATIVE with
a negative FetchOffset whose absolute value was less than or equal to the
current SQL_ROWSET_SIZE. (Function returns SQL_SUCCESS_WITH_INFO.)

For SQLFetchScroll, the requested rowset overlapped the start of the
result set when FetchOrientation was SQL_FETCH_PRIOR, the current
position was beyond the first row, and the number of the current row is
less than or equal to the rowset size.

The requested rowset overlapped the start of the result set when
FetchOrientation was SQL_FETCH_PRIOR, the current position was beyond the
end of the result set, and the rowset size was greater than the result
set size.

The requested rowset overlapped the start of the result set when
FetchOrientation was SQL_FETCH_RELATIVE, FetchOffset was negative, and
the absolute value of FetchOffset was less than or equal to the rowset
size.

The requested rowset overlapped the start of the result set when
FetchOrientation was SQL_FETCH_ABSOLUTE, FetchOffset was negative, and
the absolute value of FetchOffset was greater than the result set size
but less than or equal to the rowset size. (Function returns
SQL_SUCCESS_WITH_INFO.)


-11012	Wrong number of parameters.

This IBM Informix CLI error code is the same as SQLSTATE value 07001. The
following functions can return this error code: SQLExecDirect() and
SQLExecute().

The number of parameters that you used SQLBindParameter() to bind is less
than the number of parameters in the SQL statement or prepared statement.
Bind the same number of parameters as the number of parameters in the
statement.



-11013	Restricted data type attribute violation.

This IBM Informix CLI error code is the same as SQLSTATE value 07006. The
following functions can return this error code: SQLBindParameter(),
SQLExtendedFetch(), SQLFetch(), and SQLGetData().

A data value could not be converted to the C data type specified by the
fCType argument of the SQLBindCol function. This error occurs when you
try to retrieve data types that are unsupported by the CLI driver or
the value in the fCType argument is not recognized. Confirm that the
data type you are requesting is supported by the database server and
confirm that the value you are supplying for the fCType argument is
valid.

For SQLBindParameter(), it is not possible to convert the result data (the
data value associated with the IBM Informix CLI C data type (fCType) argument)
to the data type of the parameter (the data value associated with the
IBM Informix CLI SQL data type (fSqlType) argument). Set the IBM Informix CLI C and
SQL data types to values that make it possible to convert the result data
to the data type of the parameter.

For SQLExtendedFetch() or SQLFetch(), it is not possible to convert one of the
result data values to the specified data type (the IBM Informix CLI C data type
(fCType) argument for SQLBindCol()). For each data value that the function
fetches, set the associated IBM Informix CLI C data type argument for SQLBindCol()
to a value that makes it possible to convert the data value to the specified
data type.

For SQLGetData(), it is not possible to convert the data value to the
specified data type (the IBM Informix CLI C data type (fCType) argument). Set
IBM Informix CLI C data type to a value that makes it possible to convert the
data value to the data type.



-11014	Invalid use of default parameter.

This IBM Informix CLI error code is the same as SQLSTATE value 07S01. The
following functions can return this error code: SQLExecDirect(), SQLExecute(),
and SQLPutData().

You used SQL_DEFAULT_PARAM and the corresponding parameter does not have a
default value. Use SQL_DEFAULT_PARAM only if the corresponding parameter has
a default value.


-11015	Unable to connect to data source.

This IBM Informix CLI error code is the same as SQLSTATE value 08001. The
following functions can return this error code: SQLBrowseConnect(),
SQLConnect(), and SQLDriverConnect().

The driver cannot establish a connection with the data source. Check
that the database server name, user ID, and password are correctly
specified and that the database server is available.



-11016	Connection in use.

The specified connection with a data source is in conflict with another
user's exclusive use of the database. Establish a connection when the
data source is available.


-11017	Connection not open.

This IBM Informix CLI error code is the same as SQLSTATE value 08003. The
following functions can return this error code: SQLAllocStmt(),
SQLDisconnect(), SQLGetConnectOption(), SQLGetInfo(), SQLNativeSql(),
SQLSetConnectOption(), and SQLTransact().

The connection that the hdbc argument specifies is not open. Validate
that the SQLConnect, SQLDriverConnect, or SQLBrowseConnect calls
succeeded.


-11018	Data source rejected establishment of connection.

The data source rejected the establishment of the connection for
implementation-defined reasons. Confirm that the password and user ID
are correct.


-11020	Communication link failure.

This IBM Informix CLI error code is the same as SQLSTATE value 08S01. The
following functions can return this error code: SQLBrowseConnect(),
SQLColumnPrivileges(), SQLColumns(), SQLConnect(), SQLDriverConnect(),
SQLExecDirect(), SQLExecute(), SQLExtendedFetch(), SQLFetch(),
SQLForeignKeys(), SQLFreeConnect(), SQLGetData(), SQLGetTypeInfo(),
SQLParamData(), SQLPrepare(), SQLPrimaryKeys(), SQLProcedureColumns(),
SQLProcedures(), SQLPutData(), SQLSetConnectOption(), SQLSetStmtOption(),
SQLSpecialColumns(), SQLStatistics(), SQLTablePrivileges(), and SQLTables().

The communication link between IBM Informix CLI and the data source failed before
the function completed successfully. If this error occurs consistently,
contact IBM Technical Support.



-11021	Insert value list does not match column list.

This IBM Informix CLI error code is the same as SQLSTATE value 21S01. The
following functions can return this error code: SQLExecDirect() and
SQLPrepare().

The SQL statement contained an INSERT statement, but the number of values
to insert was not the same as the number of columns into which to insert
values. Change the INSERT statement so that the number of values to insert
is the same as the number of columns into which to insert values.


-11022	Degree of derived table does not match column list.

This IBM Informix CLI error code is the same as SQLSTATE value 21S02. The
following functions can return this error code: SQLExecDirect() and
SQLPrepare().

The SQL statement contained a CREATE VIEW statement, but the number of column
names for the view was not the same as the number of columns that the SELECT
statement returns. Change the CREATE VIEW statement so that the number of
column names is the same as the number of columns.


-11023	String data right truncation.

This IBM Informix CLI error code is the same as SQLSTATE value 22001. The
following function can return this error code: SQLPutData().

Before you called SQLPutData(), SQLGetInfo() returned "Y" when you called it
with an information type of SQL_NEED_LONG_DATA_LEN. You then sent more data
than the amount that the pcbValue argument specified in SQLBindParameter().
Send only the amount of data that pcbValue specifies.


-11024	Indicator variable required but not supplied.

This IBM Informix CLI error code is the same as SQLSTATE value 22002. The
following functions can return this error code: SQLExtendedFetch(),
SQLFetch(), and SQLGetData().

For SQLExtendedFetch() or SQLFetch(), the value for a bound column was null
but the INDICATOR_PTR field in the corresponding record was a null pointer.
For each column that can have a null value, set the corresponding pointer
to a non-null value.

For SQLGetData(), the column value was null but StrLen_or_Ind was a null
pointer. For each column that can have a null value, set the corresponding
StrLen_or_Ind value to a non-null value.


-11025	Numeric value out of range.

This IBM Informix CLI error code is the same as SQLSTATE value 22003. The
following functions can return this error code: SQLExecDirect(),
SQLExecute(), SQLExtendedFetch(), SQLFetch(), SQLGetData(), SQLGetInfo(),
and SQLPutData().

For SQLExecDirect() and SQLExecute(), the SQL statement contained a numeric
parameter or literal that was too large. Therefore, the function truncated
the whole (as opposed to fractional) part of the number before it assigned
the number to the associated column. Change the SQL statement so that each
numeric value fits into the associated column.

For SQLExtendedFetch(), SQLFetch(), or SQLGetData(), the result set contains
one or more columns that have values that are too large for the associated
return parameters. If the function returned the value as a numeric value or
string, the function truncated the whole (as opposed to fractional) part of
the number. If the function returned the value as a binary value, the number
lost binary significance. Change the return parameters so that each one can
accommodate the associated value in the result set.

For SQLGetInfo(), the requested information would lose numeric or binary
significance if the function returned it. Set the storage for the requested
information to a size that can accommodate the information.

For SQLPutData(), you called the function more than once for a parameter or
column and one of the following problems occurred: (1) You called the function
to send data to a column that does not have a character, binary, or
data-source-specific data type, or (2) The function truncated the whole (as
opposed to fractional) part of a number to assign it to the associated column.
Call SQLPutData() only for a column that has a character, binary, or
data-source-specific data type, and change the data that you are sending so
that it does not exceed the size of the column.

Returning the numeric value (as a numeric or string) for one or more
columns causes the whole (as opposed to fractional) number to truncate.
For the range of values for the numeric parameter or column type that
you tried to write or fetch, check the IBM Informix CLI Programmer's
Manual.



-11026	Error in assignment.

The argument szSqlStr contains an SQL statement that contains a
parameter or literal, and the value is incompatible with the data type
of the associated table column. Check the list of compatible data types
associated with the table column.

This IBM Informix CLI error code is the same as SQLSTATE value 22005. The
following functions can return this error code: SQLExecDirect(), SQLExecute(),
SQLExtendedFetch(), SQLFetch(), SQLGetData(), SQLPrepare(), and SQLPutData().

For SQLExecDirect(), SQLExecute(), or SQLPrepare(), the SQL statement or
prepared statement contained a parameter or literal that was incompatible
with the data type of the associated column. Change the statement so that
each parameter and literal is compatible with the data type of the column.

For SQLExtendedFetch() or SQLFetch(), the function fetched a zero-length
string that you had bound to a numeric data type, so the function converted
the string to a zero. Change the data type of the parameter that is bound to
the string.

For SQLGetData() or SQLPutData(), the data type for the column is incompatible
with the data type for the parameter. Change the data type for the parameter
so that it is compatible with the data type for the column.



-11027	Datetime field overflow.

This IBM Informix CLI error code is the same as SQLSTATE value 22008. The
following functions can return this error code: SQLExecDirect(), SQLExecute(),
SQLExtendedFetch(), SQLFetch(), SQLGetData(), and SQLPutData().

The argument szSqlStr contains an SQL statement that contains a date,
time, time-stamp parameter, or literal that is invalid. For the valid
values of the szSqlStr argument, check the IBM Informix CLI Programmer's
Manual.

For SQLExecDirect() or SQLExecute(), the function converted an SQL_C_DATE or
SQL_C_TIMESTAMP value to an SQL_CHAR value, and the resulting value was not a
valid date or time stamp. Change the SQL_C_DATE or SQL_C_TIMESTAMP value so
that it will be a valid date or time stamp after the function converts it to
an SQL_CHAR value.

For SQLExtendedFetch() or SQLFetch(), the SQL statement or prepared statement
contained an invalid date or time stamp. Change the statement so that the date
and time stamp values are valid.

For SQLGetData() or SQLPutData(), the data that the function sent or received
was an invalid date or time stamp. For SQLPutData(), change the data so that
it is a valid date or time stamp.




-11028	Division by zero.

This IBM Informix CLI error code is the same as SQLSTATE value 22012. The
following functions can return this error code: SQLExecDirect(), SQLExecute(),
SQLExtendedFetch(), SQLFetch(), and SQLGetData().

You either sent an arithmetic expression in an SQL statement or prepared
statement to a database server, or a database server returned an arithmetic
expression. This expression caused division by zero. Change the arithmetic
expression so that it does not cause division by zero.


-11029	String data, length mismatch.

This IBM Informix CLI error code is the same as SQLSTATE value 22026. The
following function can return this error code: SQLParamData().

Before you called SQLParamData(), SQLGetInfo() returned "Y" when you called
it with an information type of SQL_NEED_LONG_DATA_LEN. You then sent less
data than the amount that the pcbValue argument specified in
SQLBindParameter(). Send the amount of data that pcbValue specifies.


-11030	Integrity constraint violation.

This IBM Informix CLI error code is the same as SQLSTATE value 23000. The
following functions can return this error code: SQLExecDirect() and
SQLExecute().

One of the following problems occurred for one of the parameters in the SQL
statement or prepared statement: (1) The parameter was null for a column that
is defined as not null, or (2) The parameter provided a duplicate value for a
column that can contain only unique values, or (3) The parameter violated some
other integrity constraint. Change the parameter so that it does not violate
any integrity constraints.


-11031	Invalid cursor state.

This IBM Informix CLI error code is the same as SQLSTATE value 24000. The
following functions can return this error code: SQLColAttributes(),
SQLColumnPrivileges(), SQLColumns(), SQLDescribeCol(), SQLExecDirect(),
SQLExecute(), SQLExtendedFetch(), SQLFetch(), SQLForeignKeys(), SQLGetData(),
SQLGetStmtOption(), SQLGetTypeInfo(), SQLPrepare(), SQLPrimaryKeys(),
SQLProcedureColumns(), SQLProcedures(), SQLSetCursorName(),
SQLSetStmtOption(), SQLSpecialColumns(), SQLStatistics(),
SQLTablePrivileges(), and SQLTables().

A cursor is open on hstmt, and SQLFetch or SQLExtendedFetch was not
called. Check the sequence of operations. For example, confirm that you
are not trying to execute an EXECUTE statement before the PREPARE
statement finishes.

One of the following problems occurred:

(1) The statement that is associated with the statement handle does not return
a result set because there are no columns to describe. Change the statement so
that it returns a result set. This problem can occur for SQLColAttributes()
and SQLDescribeCol().

(2) You already opened a cursor for the statement handle. Use the cursor that
you already opened. This problem can occur for SQLColumnPrivileges(),
SQLColumns(), SQLExecDirect(), SQLExecute(), SQLForeignKeys(),
SQLGetTypeInfo(), SQLPrepare(), SQLPrimaryKeys(), SQLProcedureColumns(),
SQLProcedures(), SQLSpecialColumns(), SQLStatistics(), SQLTablePrivileges(),
and SQLTables().

(3) The cursor was positioned before the start of the result set or after the
end of the result set. Make sure that the cursor is positioned within the
result set. This problem can occur for SQLExecDirect(), SQLExecute(),
SQLGetData(), and SQLGetStmtOption().

(4) The statement handle was in an executed state, but no result set was
associated with the statement handle. Make sure that a result set is
associated with the statement handle. This problem can occur for
SQLExtendedFetch(), SQLFetch(), and SQLGetData().

(5) You opened a cursor for the statement handle, but you did not call
SQLFetch() or SQLExtendedFetch(). Call SQLFetch() or SQLExtendedFetch() after
you open a cursor for a statement handle. This problem can occur for
SQLGetData().

(6) The fOption value was SQL_ROW_NUMBER, but the cursor was not open. Open a
cursor before you use an fOption value of SQL_ROW_NUMBER. This problem can
occur for SQLGetStmtOption().

(7) The statement handle was already in an executed state or a
cursor-positioned state. Do not call this function for a statement handle
that has already been executed or is already in a cursor-positioned state.
This problem can occur for SQLSetCursorName().

(8) The fOption value was SQL_CONCURRENCY, SQL_SIMULATE_CURSOR, or
SQL_CURSOR_TYPE, and the cursor was open. Do not use an open cursor for one
of these fOption values. This problem can occur for SQLSetStmtOption().



-11032	Invalid transaction state.

This IBM Informix CLI error code is the same as SQLSTATE value 25000. The
following function can return this error code: SQLDisconnect().

A transaction is in process on the hdbc connection. The transaction remains
active. Wait for the transaction to finish before you call SQLDisconnect()
for the hdbc connection.


-11033	Invalid authorization specification.

This IBM Informix CLI error code is the same as SQLSTATE value 28000. The
following functions can return this error code: SQLBrowseConnect(),
SQLConnect(), and SQLDriverConnect().

Either the user identifier or the authorization string or both, as
specified in the browse request connection string, violated
restrictions that the data source defined. Confirm that you logged in
correctly and that your password is current.


-11034	Invalid cursor name.

This IBM Informix CLI error code is the same as SQLSTATE value 34000. The
following functions can return this error code: SQLExecDirect(), SQLPrepare(),
and SQLSetCursorName().

The argument szSqlStr contains a positioned update or delete statement,
and the cursor referenced by the statement being executed is not open.
Check that the cursor is executed.

For SQLExecDirect() or SQLPrepare(), the SQL statement contained a positioned
UPDATE or DELETE, but the cursor that the statement references was not open.
Make sure that the cursor for an UPDATE or DELETE statement is open.

For SQLSetCursorName(), the cursor name was invalid. For example, it might
exceed the maximum allowable length. Make sure that the cursor name is valid.



-11035	Syntax error or access violation.

This IBM Informix CLI error code is the same as SQLSTATE value 37000. The
following functions can return this error code: SQLExecDirect(),
SQLNativeSql(), and SQLPrepare().


The argument szSqlStr contains an SQL statement that is not preparable
or contains a syntax error. Check the syntax of the SQL statement and
make any necessary corrections.



-11036	Duplicate cursor name.

This IBM Informix CLI error code is the same as SQLSTATE value 3C000. The
following function can return this error code: SQLSetCursorName().

The cursor name specified already exists. Specify a unique cursor name. 


-11037	Serialization failure.

This IBM Informix CLI error code is the same as SQLSTATE value 40001. The
following functions can return this error code: SQLExecDirect(), SQLExecute(),
SQLExtendedFetch(), and SQLFetch().

IBM Informix CLI terminated the transaction to prevent deadlock. If you
consistently receive this error, a problem exists with the logic in your
application.


-11038	Syntax error or access violation.

This IBM Informix CLI error code is the same as SQLSTATE value 42000. The
following functions can return this error code: SQLExecDirect(), SQLExecute(),
and SQLPrepare().

The user does not have the privileges necessary to execute the SQL statement,
or the SQL statement was not prepared, or the statement contained a syntax
error. If you consistently receive this error, a problem exists with the logic
in your application.




-11039	Operation aborted.

This IBM Informix CLI error code is the same as SQLSTATE value 70100. The
following function can return this error code: SQLCancel().

The data source did not process the cancel request because the database
server does not support this function.


-11040	Driver does not support this function.

This IBM Informix CLI error code is the same as SQLSTATE value IM001. The
following functions can return this error code: all ODBC functions except
SQLAllocEnv(), SQLDataSources(), SQLDrivers(), SQLError(), SQLFreeConnect(),
SQLFreeEnv(), and SQLGetFunctions().

IBM Informix CLI does not support this function. Do not call this function.



-11041	Data source name not found and no default driver specified.

This IBM Informix CLI error code is the same as SQLSTATE value IM002. The
following functions can return this error code: SQLBrowseConnect(),
SQLConnect(), and SQLDriverConnect().

One of the following problems occurred: (1) The function cannot find the
initialization file, or (2) The data source that the szConnStrn string
specified does not exist in the initialization file, and a default driver
specification does not exist. Make sure that the initialization file exists.
Add the specified data source to the initialization file or create a default
driver specification.

The data source name specified in the connection request is not found
in the ODBC.INI file or registry, and there is no default driver
specification. Confirm that the data source name is registered. You can
also provide a default data source.


-11042	Specified driver could not be loaded.

This IBM Informix CLI error code is the same as SQLSTATE value IM003. The
following functions can return this error code: SQLBrowseConnect(),
SQLConnect(), and SQLDriverConnect().

The driver listed in the data source specification in the ODBC.INI file
or registry or the driver that the DRIVER keyword specifies is not
found or cannot be loaded. Make sure that the
specified driver exists. Confirm that you entered the correct
spelling and path for the driver.



-11043	Driver's SQLAllocEnv failed.

This IBM Informix CLI error code is the same as SQLSTATE value IM004. The
following IBM Informix CLI functions can return this error code:
SQLBrowseConnect(), SQLConnect(), and SQLDriverConnect(). The function
called the driver version of SQLAllocEnv(), which returned an error. The
CLI driver does not return this error.

The most common failure could be attributed to a memory allocation failure.
Driver Manager's call to SQLAllocEnv could not succeed. See the error message
returned by SQLError in the szErrorMsg to describe any driver specific
SQLSTATE or error message if returned for other reasons.


-11044	Driver's SQLAllocConnect failed.

This IBM Informix CLI error code is the same as SQLSTATE value IM005. The
following functions can return this error code: SQLBrowseConnect(),
SQLConnect(), and SQLDriverConnect(). The function called the driver
version of SQLAllocConnect(), which returned an error. The CLI driver
does not return this error.

The allocation of a connection handle may fail due to insufficient memory
or initialization of new Database Connection handle (DBC). See the error
message returned by SQLError in the szErrorMsg to describe driver specific
SQLSTATE or error message if returned for other reasons.


-11045	Driver's SQLSetConnectOption failed.

This IBM Informix CLI error code is the same as SQLSTATE value IM006. The
following functions can return this error code: SQLBrowseConnect(),
SQLConnect(), and SQLDriverConnect(). The function called the driver version
of SQLSetConnectOption(), which returned an error. The CLI driver does not
return this error.

See the error message returned by SQLError in the szErrorMsg to describe
driver specific SQLSTATE or error message if returned for other reasons.


-11046	No data source or driver specified; dialog prohibited.

This IBM Informix CLI error code is the same as SQLSTATE value IM007. The
following function can return this error code: SQLDriverConnect().

The connection information flag, fDriverCompletion, is SQL_DRIVER_NOPROMPT,
but the connection string does not provide enough information. Ensure that the driver
keyword is in the connection string, or set the fDriverCompletion flag
to SQLDriver prompt to have the driver prompt for additional connection
information.



-11047	Dialog failed.

This IBM Informix CLI error code is the same as SQLSTATE value IM008. The
following function can return this error code: SQLDriverConnect().

IBM Informix CLI could not display the SQL Data Sources dialog box or the login
dialog box because the hwnd value is null and the fDriverCompletion value is
not SQL_DRIVER_NO_PROMPT. Use different values for hwnd and fDriverCompletion.


-11048	Unable to load translation shared library (DLL).

This IBM Informix CLI error code is the same as SQLSTATE value IM009. The
following functions can return this error code: SQLBrowseConnect(),
SQLConnect(), SQLDriverConnect(), and SQLSetConnectOption().

The driver is unable to load the translation DLL that is specified for
the data source or for the connection. Check that the name and path for
the DLL are correct.



-11049	Data source name too long.

This IBM Informix CLI error code is the same as SQLSTATE value IM010. The
following functions can return this error code: SQLBrowseConnect() and
SQLDriverConnect().

A data source name that is in the initialization file is too long. Change any
data source name that is too long.


-11049	Data source name too long.

The attribute value for DSN name is more than the maximum number of
characters. For the accepted number of characters in the DSN name,
check the IBM Informix CLI Programmer's Manual.


-11050	Driver name too long.

This IBM Informix CLI error code is the same as SQLSTATE value IM011. The
following functions can return this error code: SQLBrowseConnect() and
SQLDriverConnect().

The attribute value for the DRIVER keyword is more than 255 characters.
Use a keyword that is less than 255 characters.



-11051	DRIVER keyword syntax error.

This IBM Informix CLI error code is the same as SQLSTATE value IM012. The
following functions can return this error code: SQLBrowseConnect() and
SQLDriverConnect().

In the initialization file, the syntax for the line that sets the driver path
is incorrect. The keyword-value pair for the DRIVER keyword contains a syntax error.
Check that you entered the correct spelling and path for the driver.


-11053	Base table or view already exists.

This IBM Informix CLI error code is the same as SQLSTATE value S0001. The
following functions can return this error code: SQLExecDirect() and
SQLPrepare().

The SQL statement contained a CREATE TABLE or CREATE VIEW statement, but the
table name or view name already exists. Reword the query to use a unique table name or a unique view
name.



-11054	Base table not found.

This IBM Informix CLI error code is the same as SQLSTATE value S0002. The
following functions can return this error code: SQLExecDirect() and
SQLPrepare().

The SQL statement contained a DROP TABLE, DROP VIEW, ALTER TABLE, CREATE VIEW,
CREATE INDEX, GRANT, REVOKE, SELECT, DELETE, INSERT, UPDATE, or CREATE TABLE
statement, but the table name or view name does not exist. Make sure that the
necessary tables and views already exist.



-11055	Index already exists.

This IBM Informix CLI error code is the same as SQLSTATE value S0011. The
following functions can return this error code: SQLExecDirect() and
SQLPrepare().

The SQL statement contained a CREATE INDEX statement, but the index name
exists already. Reword the statement to use a unique index name.



-11056	Index not found.

This IBM Informix CLI error code is the same as SQLSTATE value S0012. The
following functions can return this error code: SQLExecDirect() and
SQLPrepare().

The SQL statement contained a DROP INDEX statement, but the specified index name did
not exist. Use an index name that exists already.


-11057	Column already exists.

This IBM Informix CLI error code is the same as SQLSTATE value S0021. The
following functions can return this error code: SQLExecDirect() and
SQLPrepare().

The SQL statement contained an ALTER TABLE statement, but the column name
specified in the ADD clause is not unique or identifies a column that already
exists. Use column names that do not exist already.


-11058	Column not found.

This IBM Informix CLI error code is the same as SQLSTATE value S0022. The
following functions can return this error code: SQLExecDirect() and
SQLPrepare().

The column cannot be associated with the table in the SQL statement.
Verify that you are using an existing table name in your SQL
statement.

The SQL statement contained a CREATE INDEX, GRANT, REVOKE, SELECT, DELETE,
INSERT, UPDATE, or CREATE TABLE statement, but one or more of the column
names did not exist. Use column names that exist already.



-11060	General error.

An error occurred that has no specific SQL_STATE. In this case,
additional text is provided that identifies the source of the problem.
This IBM Informix CLI error code is the same as SQLSTATE value S1000.



-11061	Memory allocation failure.

This IBM Informix CLI error code is the same as SQLSTATE value S1001. The
following functions can return this error code: all IBM Informix CLI functions
except SQLError(), SQLFreeConnect(), and SQLFreeEnv().

The driver or driver manager cannot allocate memory for the connection
handle. Try to reduce the number of processes currently running or
provide more memory.



-11062	Invalid column number.

This IBM Informix CLI error code is the same as SQLSTATE value S1002. The
following functions can return this error code: SQLBindCol(),
SQLColAttributes(), SQLDescribeCol(), SQLExtendedFetch(), SQLFetch(), and
SQLGetData().

The value specified for the argument icol exceeds the maximum number of
columns that the cursor defines. Confirm that the column number you are
fetching is in the result set of the cursor.

For all functions except SQLGetData(), a column number was 0, exceeded the
number of columns in the result set, or exceeded the number of columns that
the data source supports. For SQLBindCol(), make sure that the column number
does not exceed the maximum number of columns that the data source can
support. For SQLColAttributes(), use a descriptor type of SQL_COLUMN_COUNT
if the column number is 0 or exceeds the number of columns in the result set.
For SQLDescribeCol() and SQLFetch(), make sure that the column numbers are
not 0 and do not exceed the number of columns in the result set. For
SQLExtendedFetch(), set SQL_USE_BOOKMARKS to SQL_UB_OFF if column 0 is bound,
and make sure that the bound column numbers do not exceed the number of
columns in the result set.

For SQLGetData(), one of the following problems occurred: (1) The column
number was 0 and you either called SQLFetch() to get the data or you set
SQL_USER_BOOKMARKS to SQL_UB_OFF, (2) The column number exceeded the number
of columns in the result set, or (3) You already called SQLGetData() for
the current row. Make sure that you do not call SQLFetch() or set
SQL_USER_BOOKMARKS to SQL_UB_OFF if the column number is 0, that the column
number does not exceed the number of columns in the result set, and that
you have not already called SQLGetData() for the current row. 



-11063	Program type out of range.

This IBM Informix CLI error code is the same as SQLSTATE value S1003. The
following functions can return this error code: SQLBindCol(),
SQLBindParameter(), and SQLGetData().

The IBM Informix CLI C data type (fCType) argument was not a valid IBM Informix CLI
C data type or SQL_C_DEFAULT. Set the IBM Informix CLI C data type to a valid
value. 

For SQLBindCol(), it is also possible that the column number was 0 and the
IBM Informix CLI C data type was not SQL_C_BOOKMARK. If the column number is 0,
set the IBM Informix CLI C data type to SQL_C_BOOKMARK.


-11064	SQL data type out of range.

This IBM Informix CLI error code is the same as SQLSTATE value S1004. The
following functions can return this error code: SQLBindParameter() and
SQLGetTypeInfo().

The value specified for the argument fSqlType is in the block of
numbers reserved for CLI SQL data type indicators but is not a valid
ODBC SQL data type indicator. Check that you are referring to an ODBC
SQL data type that this driver and this server support.

The IBM Informix CLI SQL data type (fSqlType) argument was not a valid Informix
CLI SQL data type. Set IBM Informix CLI SQL data type to a valid value.



-11065	Operation canceled.

This IBM Informix CLI error code is the same as SQLSTATE value S1008. The
following functions can return this error code: SQLAllocConnect(),
SQLAllocStmt(), SQLBindCol(), SQLBindParameter(), SQLColumns(),
SQLExecDirect(), SQLForeignKeys(), SQLGetData(), SQLGetInfo(),
SQLNativeSql(), SQLParamData(), SQLPrepare(), SQLProcedureColumns(),
SQLPutData(), SQLSetConnectOption(), SQLSetCursorName(), and
SQLSetStmtOption().

Before the function could complete execution, a different thread called
SQLCancel() for the statement handle. Fix your application logic.

For SQLParamData() and SQLPutData(), one of the following problems can also
occur: (1) You called SQLExecute() or SQLExecDirect() for the statement
handle and the function returned SQL_NEED_DATA, or (2) You called SQLCancel()
before data was sent for all data-at-execution parameters or columns. Fix
your application logic.


-11066	Invalid argument value.

This IBM Informix CLI error code is the same as SQLSTATE value S1009. The
following functions can return this error code: SQLAllocConnect(),
SQLAllocStmt(), SQLBindParameter(), SQLGetData(), SQLGetInfo(),
SQLExecDirect(), SQLForeignKeys(), SQLNativeSql(), SQLPrepare(), SQLPutData(),
SQLSetConnectOption(), SQLSetCursorName(), and SQLSetStmtOption().

Check that the arguments passed with the CLI request are correct.

For SQLAllocConnect(), SQLAllocStmt(), SQLExecDirect(), SQLGetData(),
SQLNativeSql, SQLPrepare(), and SQLSetCursorName(), the pointer argument
(phdbc, phstmt, rgbValue, szCursor, szSqlStr, or szSqlStrIn) was a null
pointer. Set the pointer argument to a non-null value.

For SQLBindParameter(), rgbValue and pcbValue were null pointers and
fParamType was not SQL_PARAM_OUTPUT. Set rgbValue or pcbValue to a non-null
pointer or set fParamType to SQL_PARAM_OUTPUT.

For SQLForeignKeys(), szPkTableName and szFkTableName were null pointers. Set
szPkTableName or szFkTableName to a non-null pointer.

For SQLGetInfo(), fInfoType was SQL_DRIVER_HSTMT and rgbInfoValue did not
point to a valid statement handle. Change rgbInfoValue to point to a valid
statement handle.

For SQLPutData(), rgbValue was a null pointer and cbValue was not 0,
SQL_DEFAULT_PARAM, or SQL_NULL_DATA. Change cbValue to 0, SQL_DEFAULT_PARAM,
or SQL_NULL_DATA.

For SQLSetConnectOption() and SQLSetStmtOption(), vParam was not valid for
the specified fOption value. Change vParam to a valid value.



-11067	Function sequence error.

An asynchronously executing function is called for the hstmt and is
still executing when this function is called, or an attempt was made to
use an hstmt out of sequence. Check the sequence of operations. For
example, check that you are not trying to execute an EXECUTE statement
before the PREPARE statement is finished.

This IBM Informix CLI error code is the same as SQLSTATE value S1010. The
following functions can return this error code: SQLBindCol(),
SQLBindParameter(), SQLColAttributes(), SQLColumnPrivilages(), SQLColumns(),
SQLDescribeCol(), SQLDisconnect(), SQLExecDirect(), SQLExecute(),
SQLExtendedFetch(), SQLFetch(), SQLFreeConnect(), SQLFreeEnv(), SQLFreeStmt(),
SQLForeignKeys(), SQLGetConnectOption(), SQLGetCursorName(), SQLGetData(),
SQLGetFunctions(), SQLGetStmtOption(), SQLGetTypeInfo(), SQLMoreResults(),
SQLNumParams(), SQLNumResultCols(), SQLParamData(), SQLPrepare(),
SQLPrimaryKeys(), SQLProcedureColumns(), SQLProcedures(), SQLPutData(),
SQLRowCount(), SQLSetConnectOption(), SQLSetCursorName(), SQLSetStmtOption(),
SQLSpecialColumns(), SQLStatistics(), SQLTablePrivileges(), SQLTables(), and
SQLTransact().

For SQLBindCol(), SQLBindParameter(), SQLColAttributes(),
SQLColumnPrivilages(), SQLColumns(), SQLDescribeCol(), SQLDisconnect(),
SQLExecDirect(), SQLExecute(), SQLExtendedFetch(), SQLFetch(), SQLFreeStmt(),
SQLForeignKeys(), SQLGetCursorName(), SQLGetData(), SQLGetStmtOption(),
SQLGetTypeInfo(), SQLMoreResults(), SQLNumParams(), SQLNumResultCols(),
SQLPrepare(), SQLPrimaryKeys(), SQLProcedureColumns(), SQLProcedures(),
SQLRowCount(), SQLSetConnectOption(), SQLSetCursorName(), SQLSetStmtOption(),
SQLSpecialColumns(), SQLStatistics(), SQLTablePrivileges(), SQLTables(), and
SQLTransact(), IBM Informix CLI called SQLExecute(), SQLExecDirect(), or
SQLSetPos() for the statement handle and returned SQL_NEED_DATA, which means
that you called this function before data was sent for the data-at-execution
parameters or columns. Wait until data is sent for all the data-at-execution
parameters or columns before you call this function.

Additionally for SQLColAttributes(), SQLDescribeCol(), SQLNumParams(), and
SQLNumResultCols(), you called this function before you called SQLPrepare()
or SQLExecDirect for the statement handle. Do not call this function before
SQLPrepare() or SQLExecDirect().

Additionally for SQLExecute(), the statement handle was not prepared due to
one of the following conditions: (1) The statement handle was not in an
executed state, (2) You opened a cursor on the statement handle and called
SQLFetch() or SQLExtendedFetch(), (3) The statement handle was in an executed
state but did not have a result set associated with it, or (4) The statement
handle was in an executed state but you did not call SQLFetch() or
SQLExtendedFetch(). Make sure that none of these conditions occurs.

Additionally for SQLExtendedFetch(), SQLFetch(), and SQLGetData(), one of the
following problems occurred: (1) The statement handle was not in an executed
state because you did not call SQLExecDirect(), SQLExecute(), or a catalog
function before you called this function, or (2) You called this function
after you called SQLFetch() and before you called SQLFreeStmt() with the
SQL_CLOSE option. Make sure that neither of these conditions occurs.

For SQLFreeConnect(), you called this function before you called
SQLDisconnect() for the connection handle.

For SQLFreeEnv(), at least one connection handle was in an allocated or
connected state. Call SQLDisconnect() and SQLFreeConnect() for each
connection handle before you call this function.

For SQLGetConnectOption(), SQLGetFunctions(), and additionally for
SQLSetConnectOption(), IBM Informix CLI called SQLBrowseConnect() for the
connection handle and returned SQL_NEED_DATA, which means that you called
this function before SQLBrowseConnect() returned SQL_SUCCESS_WITH_INFO or
SQL_SUCCESS. Wait until SQLBrowseConnect() returns SQL_SUCCESS_WITH_INFO or
SQL_SUCCESS before you call this function.

Additionally for SQLGetFunctions(), you called this function before you called
SQLConnect(), SQLBrowseConnect(), or SQLDriverConnect(). Do not call this
function before SQLConnect(), SQLBrowseConnect(), or SQLDriverConnect().

For SQLParamData(), the previous function call was to this function. Call this
function only after you call SQLExecDirect() or SQLExecute() where the return
code is SQL_NEED_DATA or after you call SQLPutData().

For SQLPutData(), the previous function call was to SQLExecDirect() or
SQLExecute() where the return code was SQL_NEED_DATA. Call this function only
after you call SQLParamData() or SQLPutData().

Additionally for SQLRowCount(), you called this function before you called
SQLExecute() or SQLExecDirect() for the statement handle. Do not call this
function before SQLExecute() or SQLExecDirect().



-11068	Operation invalid at this time.

This IBM Informix CLI error code is the same as SQLSTATE value S1011. The
following functions can return this error code: SQLGetStmtOption(),
SQLSetConnectOption(), and SQLSetStmtOption().

For SQLGetStmtOption(), fOption was SQL_GET_BOOKMARK and SQL_USE_BOOKMARKS was
SQL_UB_OFF. If SQL_USE_BOOKMARKS is SQL_UB_OFF, do not use this option value.

For SQLSetConnectOption(), fOption was SQL_TXN_ISOLATION and a transaction was
open. Make sure that no transactions are open before you use this option
value.

For SQLSetStmtOption(), fOption was SQL_CONCURRENCY, SQL_SIMULATE_CURSOR, or
SQL_CURSOR_TYPE and the statement was prepared. If the statement is prepared,
do not use one of these option values.


-11069	Invalid transaction operation code specified.

This IBM Informix CLI error code is the same as SQLSTATE value S1012. The
following function can return this error code: SQLTransact().

The value specified for the argument fType is neither SQL_COMMIT nor
SQL_ROLLBACK. Check the value and verify that it is valid for the ftype
parameter.


-11070	No cursor name available.

This IBM Informix CLI error code is the same as SQLSTATE value S1015. The
following function can return this error code: SQLGetCursorName().


No open cursor exists on the hstmt, and no cursor name has been set
with SQLSetCursorName. Check the sequence of operations. For example,
check that you are not trying to execute an EXECUTE statement before
the PREPARE statement is finished.

The statement handle does not have an open cursor and did not previously call
SQLSetCursorName() to set a cursor name. Open a cursor or set a cursor name.



-11071	Invalid string or buffer length.

This IBM Informix CLI error code is the same as SQLSTATE value S1090. The
following functions can return this error code: SQLBindCol(),
SQLBindParameter(), SQLBrowseConnect(), SQLColAttributes(),
SQLColumnPrivileges(), SQLColumns(), SQLConnect(), SQLDataSources(),
SQLDescribeCol(), SQLDriverConnect(), SQLDrivers(), SQLExecDirect(),
SQLExecute(), SQLForeignKeys(), SQLGetCursorName(), SQLGetData(),
SQLGetInfo(), SQLNativeSql(), SQLPrepare(), SQLPrimaryKeys(),
SQLProcedureColumns(), SQLProcedures(), SQLPutData(), SQLSetCursorName(),
SQLSpecialColumns(), SQLStatistics(), SQLTablePrivileges(), and SQLTables().

The value specified for the argument cbValueMax is less than zero.
Supply a value for the argument cbValueMax that is zero or greater.

For all functions, an argument that specified a string or buffer length, such
as cbCursor, cbConnStrIn, or cbSqlStr, had one or more of the following
problems: (1) It was less than 0, (2) It was less than 0 but not equal to
SQL_NTS or SQL_NULL_DATA, (3) It was less than 0 but the corresponding
pointer was not a null pointer, (4) It was equal to 1, or (5) It was too
large. Set the string or buffer length to a valid value.

Additionally for SQLExecDirect() and SQLExecute(), a parameter value that was
set with SQLBindParameter() had one of the following problems: (1) It was a
null pointer, and the parameter length was not 0, SQL_NULL_DATA,
SQL_DATA_AT_EXEC, or less than or equal to SQL_LEN_DATA_AT_EXEC_OFFSET, or
(2) It was not a null pointer, and the parameter length was less than 0 but
was not SQL_NTS, SQL_NULL_DATA, SQL_DATA_AT_EXEC, or less than or equal to
SQL_LEN_EXEC_DATA_AT_EXEC_OFFSET. Set the parameter value to a valid value.


-11072	Descriptor type out of range.

This IBM Informix CLI error code is the same as SQLSTATE value S1091. The
following function can return this error code: SQLColAttributes().

The value specified for the argument fDescType is in the block of
numbers reserved for driver-specific descriptor types but is
unsupported by the driver. For a list of accepted descriptor types,
check the IBM Informix CLI Programmer's Manual.

The fDescType argument was not a valid descriptor type. Set fDescType to a
valid value.



-11073	Option type out of range.

This IBM Informix CLI error code is the same as SQLSTATE value S1092. The
following functions can return this error code: SQLFreeStmt(),
SQLGetConnectOption(), SQLGetStmtOption(), SQLSetConnectOption(), and
SQLSetStmtOption().

The value specified for the argument fOption is in the block of numbers
reserved for CLI connection and statement option but is not valid for
the version of ODBC that the driver supports. For a list of accepted
descriptor types, check the IBM Informix CLI Programmer's Manual.

The fOption argument was not a valid option value. Set fOption to a valid
value.


-11074	Invalid parameter number.

This IBM Informix CLI error code is the same as SQLSTATE value S1093. The
following function can return this error code: SQLBindParameter().

The value specified for the argument ipar is less than one or is
greater than the maximum number of parameters that the data source
supports. To verify that the value is in the correct range for the
statement, check the SQL statement.

Either the ipar value was less than 1, or the ipar value exceeded the maximum
number of parameters that the data source supports. Set ipar to a valid value.



-11075	Invalid scale value.

The value that the argument ibScale specifies is outside the range of
values supported by the data source for a column of the SQL data type
that the fSqlType argument specifies. For a list of supported values
for the column type that fSqlType specifies, check the IBM Informix CLI
Programmer's Manual.

This IBM Informix CLI error code is the same as SQLSTATE value S1094. The
following function can return this error code: SQLBindParameter().

The ibScale value was invalid for the IBM Informix CLI SQL data type (fSqlType)
argument. Set ibScale to a valid value. 



-11076	Function type out of range.

This IBM Informix CLI error code is the same as SQLSTATE value S1095. The
following function can return this error code: SQLGetFunctions().

An invalid fFunction value is specified. For a list of valid values for
the fFunction parameter, check the IBM Informix CLI Programmer's Manual.




-11077	Information type out of range.

This IBM Informix CLI error code is the same as SQLSTATE value S1096. The
following function can return this error code: SQLGetInfo().

The value specified for the argument fOption is in the block of numbers
reserved for CLI information types but is not valid for the version of
ODBC that the driver supports. For a list of supported features for
your driver version, check the IBM Informix CLI Programmer's Manual.


-11078	Column type out of range.

This IBM Informix CLI error code is the same as SQLSTATE value S1097. The
following function can return this error code: SQLSpecialColumns().

An invalid fColType value is specified. For a list of valid values for
the fColType parameter, check the IBM Informix CLI Programmer's Manual.



-11079	Scope type out of range.

This IBM Informix CLI error code is the same as SQLSTATE value S1098. The
following function can return this error code: SQLSpecialColumns().

An invalid fScope value is specified. For a list of valid values for
the fScope parameter, check the IBM Informix CLI Programmer's Manual.




-11080	Nullable type out of range.

This IBM Informix CLI error code is the same as SQLSTATE value S1099. The
following function can return this error code: SQLSpecialColumns().

An invalid fNullable value is specified. For a list of valid values for
the fNullable parameter, check the IBM Informix CLI Programmer's Manual.




-11081	Uniqueness option type out of range.

This IBM Informix CLI error code is the same as SQLSTATE value S1100. The
following function can return this error code: SQLStatistics().

An invalid fUnique value is specified. For a list of valid values for
the fUnique parameter, check the IBM Informix CLI Programmer's Manual.



-11082	Accuracy option type out of range.

This IBM Informix CLI error code is the same as SQLSTATE value S1101. The
following function can return this error code: SQLStatistics().

An invalid fAccuracy value is specified. For a list of valid values for
the fAccuracy parameter, check the IBM Informix CLI Programmer's Manual.


-11083	Direction option out of range.

This IBM Informix CLI error code is the same as SQLSTATE value S1103. The
following functions can return this error code: SQLDataSources() and
SQLDrivers().

The value specified for argument fDirection is not equal to zero. For a
list of valid values for the fDirection parameter, check the
IBM Informix CLI Programmer's Manual.


-11084	Invalid precision value.

This IBM Informix CLI error code is the same as SQLSTATE value S1104. The
following function can return this error code: SQLBindParameter().

The value specified for the argument cbColDef is outside the range of
values supported by the data source for a column of the SQL data type
that the fSqlType argument specifies. For a list of valid values for
the column type that the fSqlType argument specifies, check the
IBM Informix CLI Programmer's Manual.


-11085	Invalid parameter type.

This IBM Informix CLI error code is the same as SQLSTATE value S1105. The
following function can return this error code: SQLBindParameter().

The value specified for the argument fParamType is invalid. For a list
of valid values for the fParamType parameter, check the IBM Informix CLI
Programmer's Manual.

One of the following problems occurred: (1) The fParamType argument was not a
valid parameter type, or (2) fParamType was SQL_PARAM_OUTPUT and the parameter
is not an output parameter, or (3) fParamType was SQL_PARAM_INPUT and the
parameter is an output parameter. Set fParamType to a valid value that
corresponds to the type of parameter.


-11086	Fetch type out of range.

This IBM Informix CLI error code is the same as SQLSTATE value S1106. The
following function can return this error code: SQLExtendedFetch().

The value specified for the argument fFetchType is invalid. For a list
of valid values for the fFetchType parameter, check the IBM Informix CLI
Programmer's Manual.

One of the following problems occurred: (1) The fFetchType argument was not a
valid fetch type, or (2) SQL_CURSOR_TYPE was SQL_CURSOR_FORWARD_ONLY but
fFetchType was not SQL_FETCH_NEXT. Set fFetchType to a valid value that
corresponds to the cursor type.



-11087	Row value out of range.

This IBM Informix CLI error code is the same as SQLSTATE value S1107. The
following function can return this error code: SQLExtendedFetch().

SQL_CURSOR_TYPE was SQL_CURSOR_KEYSET_DRIVEN but the SQL_KEYSET_SIZE value was
greater than 0 and less than the SQL_ROWSET_SIZE value. Set SQL_KEYSET_SIZE to
a value that is valid for the SQL_CURSOR_TYPE value.


-11088	Concurrency option out of range.

The value specified for the argument fConcurrency is not equal to
SQL_CONCUR_READ_ONLY, SQL_CONCUR_LOCK, SQL_CONCUR_ROWVER, or
SQL_CONCUR_VALUES. Check that the SQL statement uses one of the listed
accepted values for the fConcurrency parameter.


-11089	Invalid cursor position.

This IBM Informix CLI error code is the same as SQLSTATE value S1109. The
following functions can return this error code: SQLExecute(), SQLExecDirect(),
SQLGetData(), and SQLGetStmtOption().

The cursor is on a row that was deleted or that has an error. Do not try to
perform an action on a row that was deleted or that has an error.


-11090	Invalid driver completion.

This IBM Informix CLI error code is the same as SQLSTATE value S1110. The
following function can return this error code: SQLDriverConnect().

The value specified for the fDriverCompletion argument is not equal to
SQL_DRIVER_PROMPT, SQL_DRIVER_COMPLETE, SQL_DRIVER_COMPLETE_REQUIRED,
or SQL_DRIVER_NOPROMPT. Check that the SQL statement uses one of the
listed accepted values for the fDriverCompletion parameter.



-11091	Invalid bookmark value

This IBM Informix ODBC error code is the same as SQLSTATE value HY111
(ODBC2.x state is S1111). The following functions can return this error
code: SQLExtendedFetch and SQLFetchScroll.

For SQLExtendedFetch, the argument FetchOrientation was
SQL_FETCH_BOOKMARK, and the bookmark specified in the FetchOffset
argument was not valid.

For SQLFetchScroll, the argument FetchOrientation was SQL_FETCH_BOOKMARK,
and the bookmark pointed to by the value in the
SQL_ATTR_FETCH_BOOKMARK_PTR statement attribute was not valid or was a
null pointer.


-11092	Driver not capable.

The driver or data source does not support the function requested. For
a list of supported driver functions, check the IBM Informix CLI
Programmer's Manual.

This IBM Informix CLI error code is the same as SQLSTATE value S1C00. The
following functions can return this error code:

SQLBindCol(), SQLBindParameter(), SQLColAttributes(), SQLColumnPrivileges(),
SQLColumns(), SQLExecDirect(), SQLExecute(), SQLExtendedFetch(), SQLFetch(),
SQLForeignKeys(), SQLGetConnectOption(), SQLGetData(), SQLGetInfo(),
SQLGetStmtOption(), SQLGetTypeInfo(), SQLPrepare(), SQLPrimaryKeys(),
SQLProcedureColumns(), SQLProcedures(), SQLSetConnectOption(),
SQLSetScrollOptions(), SQLSetStmtOption(), SQLSpecialColumns(),
SQLStatistics(), SQLTablePrivileges(), SQLTables(), and SQLTransact().

For SQLBindCol(), the data source does not support the IBM Informix CLI C data
type (fCType) argument, or the icol value was 0. Set the IBM Informix CLI C data
type to a value that the data source supports and set icol to a valid value.

For SQLBindParameter(), SQLExtendedFetch(), SQLFetch(), and SQLGetData(), one
of the following problems occurred: (1) It is not possible to convert the
result data (the data value associated with the IBM Informix CLI C data type
(fCType) argument) to the data type of the parameter (the data value
associated with the IBM Informix CLI SQL data type (fSqlType) argument), or
(2) The data source does not support the IBM Informix CLI SQL data type or
(3) The data source does not support the fetch type. Set the IBM Informix CLI C
and SQL data types to values that make it possible to convert the result data
to the data type of the parameter and set the IBM Informix CLI SQL data type and
fetch type to values that the data source supports.

For SQLColAttributes(), the fDescType value is not a valid descriptor type.
Use a valid value for fDescType.

For SQLColumnPrivileges(), SQLColumns(), SQLExecDirect(), SQLExecute(),
SQLForeignKeys(), SQLPrepare(), SQLPrimaryKeys(), SQLProcedureColumns(),
SQLProcedures(), SQLSpecialColumns(), SQLStatistics(), SQLTables(), and
SQLTablePrivileges(), one of the following problems occurred: (1) You
specified a qualifier for the procedure or table, but the data source does not
support qualifiers, or (2) You specified an owner for the procedure or table,
but the data source does not support owners, or (3) You specified a string
search pattern for the procedure owner, procedure name, or column name, but
the data source does not support search patterns for that argument, or (4) The
combination of the SQL_CONCURRENCY value and the SQL_CURSOR_TYPE value is
invalid. Do not set a qualifier, owner, or search pattern for a data source
that does not support them and set the concurrency and cursor type values so
that the combination of the values is valid.

For SQLGetConnectOption(), SQLGetStmtOption(), SQLSetConnectOption(), and
SQLSetStmtOption(), the fOption value is not a valid option value. Set fOption
to a valid value.

Additionally for SQLGetData(), the data source does not support the use of
SQLGetData() with multiple rows in SQLExtendedFetch(), or the icol value was 0.
Use SQLGetData() with multiple rows in SQLExtendedFetch() only if the data
source supports this task and do not set icol to 0.

For SQLGetInfo(), the fInfoType value was not a valid information type. Set
fInfoType to a valid value.

For SQLGetTypeInfo(), the data source does not support the IBM Informix CLI SQL
data type (fSqlType) argument), or the combination of the SQL_CONCURRENCY
value and the SQL_CURSOR_TYPE value is invalid. Set the IBM Informix CLI SQL
data type to a value that the data source supports, and set the concurrency
and cursor type values so that the combination of the values is valid.

For SQLTransact(), the data source does not support the ROLLBACK operation. Do
not set fType to SQL_ROLLBACK.



-11094	Timeout expired.

The time-out period expired before the connection to the data source
completed. The time-out period is set through SQL_SetConnectionOption,
SQL_LOGIN_TIMEOUT.

This IBM Informix CLI error code is the same as SQLSTATE value S1T00. The
following functions can return this error code: SQLBrowseConnect(),
SQLColAttributes(), SQLColumnPrivileges(), SQLColumns(), SQLConnect(),
SQLDescribeCol(), SQLDriverConnect(), SQLExecDirect(), SQLExecute(),
SQLExtendedFetch(), SQLFetch(), SQLForeignKeys(), SQLGetData(),
SQLGetInfo(), SQLGetTypeInfo(), SQLMoreResults(), SQLNumParams(),
SQLNumResultCols(), SQLParamData(), SQLPrepare(), SQLPrimaryKeys(),
SQLProcedureColumns(), SQLProcedures(), SQLPutData(), SQLSpecialColumns(),
SQLStatistics(), SQLTablePrivileges(), and SQLTables().

For SQLBrowseConnect(), SQLConnect(), and SQLDriverConnect(), the time-out
period expired before the function could complete the connection to the data
source. Call SQLSetConnectOption() to change SQL_LOGIN_TIMEOUT.

For all other functions, the time-out period expired before the data source
could process the information and, if necessary, return a result set or
requested information. Call SQLSetConnectOption() to change SQL_QUERY_TIMEOUT.



-11095	Invalid attribute value

This IBM Informix ODBC error code is the same as SQLSTATE value. The
following functions can return this error code: SQLSetConnectAttr,
SQLSetEnvAttr, and SQLSetStmtAttr.

For SQLSetConnectAttr, given the specified Attribute value, an invalid
value was specified in ValuePtr. (The Driver Manager returns this
SQLSTATE only for connection and statement attributes that accept a
discrete set of values, such as SQL_ATTR_ACCESS_MODE or
SQL_ATTR_ASYNC_ENABLE. For all other connection and statement attributes,
the driver must verify the value specified in ValuePtr.) The Attribute
argument was SQL_ATTR_TRACEFILE or SQL_ATTR_TRANSLATE_LIB, and ValuePtr
was an empty string.

For SQLSetEnvAttr, given the specified Attribute value, an invalid value
was specified in ValuePtr.

For SQLSetStmtAttr, given the specified Attribute value, an invalid value
was specified in ValuePtr. (The Driver Manager returns this SQLSTATE only
for connection and statement attributes that accept a discrete set of
values, such as SQL_ATTR_ACCESS_MODE or SQL_ ATTR_ASYNC_ENABLE. For all
other connection and statement attributes, the driver must verify the
value specified in ValuePtr.) The Attribute argument was
SQL_ATTR_APP_ROW_DESC or SQL_ATTR_APP_PARAM_DESC, and ValuePtr was an
explicitly allocated descriptor handle that is not on the same connection
as the StatementHandle argument.


-11097	Optional feature not implemented.


This IBM Informix ODBC error code is the same as SQLSTATE value HYC00. The
following functions can return this error code: SQLBindCol,
SQLBindParameter, SQLBulkOperations, SQLColAttribute,
SQLColumnPrivileges, SQLColumns, SQLDriverConnect, SQLEndTran,
SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLFetch, SQLFetchScroll,
SQLForeignKeys, SQLGetConnectAttr, SQLGetData, SQLGetEnvAttr, SQLGetInfo,
SQLGetStmtAttr, SQLGetTypeInfo, SQLParamData, SQLPrepare, SQLPrimaryKeys,
SQLProcedureColumns, SQLProcedures, SQLSetConnectAttr, SQLSetEnvAttr,
SQLSetPos, SQLSetStmtAttr, SQLSpecialColumns, SQLStatistics,
SQLTablePrivileges, and SQLTables.

The value specified for the argument Attribute was a valid ODBC
environment attribute for the version of ODBC supported by the driver,
but the attribute was not supported by the driver. For more detailed
information, see the ODBC Reference Manual.


-11099	Invalid name of File DSN

This IBM Informix ODBC error code is the same as SQLSTATE value IM014. The
following function can return this error code: SQLDriverConnect.

For SQLDriverConnect, the string in InConnectionString contained a
FILEDSN keyword, but the name of the .DSN file was invalid.


-11103	Invalid descriptor index

This IBM Informix ODBC error code is the same as SQLSTATE value 07009. The
following functions can return this error code: SQLBindCol,
SQLBindParameter, SQLBulkOperations, SQLColAttribute, SQLDescribeCol,
SQLFetch, SQLFetchScroll, SQLGetData, SQLGetDescField, SQLGetDescRec,
SQLSetDescField, SQLSetDescRec, and SQLSetPos.

For SQLBindCol, SQLBindParameter, SQLColAttribute, SQLGetData, and
SQLDescribeCol, the value specified for column exceeded the maximum
number of columns in the result set.

For SQLBulkOperations, the argument Operation was SQL_ADD, and a column
was bound with a column number greater than the number of columns in the
result set.

For SQLFetch, the driver was an ODBC 2.x driver that does not support
SQLExtendedFetch, and a column number specified in the binding for a
column was 0.

For SQLFetchScroll, Column 0 was bound, and the SQL_ATTR_USE_BOOKMARKS
statement attribute was set to SQL_UB_OFF.

For SQLSetDescField and SQLGetDescField, the RecNumber argument was equal
to 0, the SQL_ATTR_USE_BOOKMARK statement attribute was SQL_UB_OFF, and
the DescriptorHandle argument was an IRD handle. (This error can be
returned for an explicitly allocated descriptor only if the descriptor is
associated with a statement handle.) The FieldIdentifier argument was a
record field, the RecNumber argument was 0, and the DescriptorHandle
argument was an IPD handle. The RecNumber argument was less than 0.

For SQLSetDescRec and SQLGetDescRec, the FieldIdentifier argument was a
record field, the RecNumber argument was set to 0, and the
DescriptorHandle argument was an IPD handle. The RecNumber argument was
set to 0, the SQL_ATTR_USE_BOOKMARKS statement attribute was set to
SQL_UB_OFF, and the DescriptorHandle argument was an IRD handle.(DM) The
RecNumber argument was less than 0.

For SQLSetPos, the argument Operation was SQL_REFRESH or SQL_UPDATE, and
a column was bound with a column number greater than the number of
columns in the result set.


-11104	Invalid datetime format

This IBM Informix ODBC error code is the same as SQLSTATE value 22007. The
following functions can return this error code: SQLBulkOperations,
SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLFetch, SQLFetchScroll,
SQLGetData, SQLPutData, and SQLSetPos.

For SQLBulkOperations, the Operation argument was SQL_ADD, and the
assignment of a date or timestamp value to a column in the result set
caused the year, month, or day field to be out of range.

For SQLExecDirect and SQLExecute, StatementText contained an SQL
statement that contained a date, time, or timestamp structure as a
bound parameter, and the parameter was, respectively, an invalid date,
time, or timestamp.

For SQLFetch, SQLExtendedFetch, SQLGetData, and SQLFetchScroll, a
character column in the result set was bound to a date, time, or
timestamp C structure, and a value in the column was, respectively, an
invalid date, time, or timestamp.

For SQLPutData, an input/output or output parameter was bound to a date,
time, or timestamp C structure, and a value in the returned parameter
was, respectively, an invalid date, time, or timestamp. (Function
returns SQL_SUCCESS_WITH_INFO.)

For SQLSetPos, the argument Operation was SQL_UPDATE, and the assignment
of a date or timestamp value to a column in the result set caused the
year, month, or day field to be out of range. The argument Operation was
SQL_REFRESH, and returning the date or timestamp value for one or more
bound columns would have caused the year, month, or day field to be out
of range.


-11105	Interval field overflow

This IBM Informix ODBC error code is the same as SQLSTATE value 22015. The
following functions can return this error code: SQLBulkOperations,
SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLFetch, SQLFetchScroll,
SQLGetData, SQLPutData, and SQLSetPos.

For SQLBulkOperations, the Operation argument was SQL_ADD or SQL_UPDATE_BY_BOOKMARK, and the assignment of a date or timestamp value
to a column in the result set caused the year, month, or day field to be
out of range.

For SQLExecute and SQLExecDirect, StatementText contained an exact
numeric or interval parameter that when converted to an interval SQL data
type caused a loss of significant digits. *StatementText contained an
interval parameter with more than one field that when converted to a
numeric data type in a column had no representation in the numeric data
type. StatementText contained parameter data that was assigned to an
interval SQL type, and there was no representation of the value of the
C type in the interval SQL type. Assigning an input/output or output
parameter that was an exact numeric or interval SQL type to an interval
C type caused a loss of significant digits. When an input/output or
output parameter was assigned to an interval C structure, there was no
representation of the data in the interval data structure.

SQLExtendedFetch, SQLFetch, SQLGetData, and SQLFetchScroll, assigning
from an exact numeric or interval SQL type to an interval C type caused
a loss of significant digits in the leading field. When data was fetched
to an interval C type, there was no representation of the value of the
SQL type in the interval C type.

For SQLPutData, the data sent for an exact numeric or interval column or
parameter to an interval SQL data type caused a loss of significant
digits. Data was sent for an interval column or parameter with more than
one field, was converted to a numeric data type, and had no
representation in the numeric data type. The data sent for column or
parameter data was assigned to an interval SQL type, and there was no
representation of the value of the C type in the interval SQL type. The
data sent for an exact numeric or interval C column or parameter to an
interval C type caused a loss of significant digits. The data sent for
column or parameter data was assigned to an interval C structure, and
there was no representation of the data in the interval data structure.

For SQLSetPos, the Operation argument was SQL_UPDATE, and the assignment
of an exact numeric or interval C type to an interval SQL data type
caused a loss of significant digits. The Operation argument was
SQL_UPDATE; when a value was assigned to an interval SQL type, there was
no representation of the value of the C type in the interval SQL type.
The Operation argument was SQL_REFRESH, and assigning from an exact
numeric or interval SQL type to an interval C type caused a loss of
significant digits in the leading field. The Operation argument was
SQL_REFRESH; when a value was assigned to an interval C type, there was
no representation of the value of the SQL type in the interval C type.


-11106	Invalid character value for cast specification

This IBM Informix ODBC error code is the same as SQLSTATE value 22018. The
following functions can return this error code: SQLBulkOperations,
SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLFetch, SQLFetchScroll,
SQLGetData, SQLPutData, and SQLSetPos.

For SQLBulkOperations, the argument Operation was SQL_ADD; the SQL type
was an exact or approximate numeric, a datetime, or an interval data
type; the C type was SQL_C_CHAR; and the value in the column was not a
valid literal of the bound SQL type.

For SQLExecute and SQLExecDirect, StatementText contained a C type that
was an exact or approximate numeric, a datetime, or an interval data
type; the SQL type of the column was a character data type; and the value
in the column was not a valid literal of the bound C type. When an
input/output or output parameter was returned, the SQL type was an exact
or approximate numeric, a datetime, or an interval data type; the C type
was SQL_C_CHAR; and the value in the column was not a valid literal of
the bound SQL type.

For SQLExtendedFetch, SQLFetch, SQLFetchScroll, and SQLGetData, a
character column in the result set was returned to a character C buffer,
and the column contained a character for which there was no
representation in the character set of the buffer. The C type was an
exact or approximate numeric, a datetime, or an interval data type; the
SQL type of the column was a character data type; and the value in the
column was not a valid literal of the bound C type.

For SQLPutData, the C type was an exact or approximate numeric, a
datetime, or an interval data type; the SQL type of the column was a
character data type; and the value in the column or parameter was not a
valid literal of the bound C type. The SQL type was an exact or
approximate numeric, a datetime, or an interval data type; the C type
was SQL_C_CHAR; and the value in the column or parameter was not a valid
literal of the bound SQL type.

For SQLSetPos, the Operation argument was SQL_REFRESH; the C type was
an exact or approximate numeric, a datetime, or an interval data type;
the SQL type of the column was a character data type; and the value in
the column was not a valid literal of the bound C type. The argument
Operation was SQL_UPDATE; the SQL type was an exact or approximate
numeric, a datetime, or an interval data type; the C type was SQL_C_CHAR;
and the value in the column was not a valid literal of the bound SQL type


-11116	Invalid application buffer type

This IBM Informix ODBC error code is the same as SQLSTATE value HY003. The
following functions can return this error code: SQLBindCol,
SQLBindParameter, and SQLGetData.

For SQLBindCol and SQLGetData, the argument TargetType was neither a
valid data type nor SQL_C_DEFAULT.

For SQLBindParameter, the value specified by the argument ValueType was
not a valid C data type or SQL_C_DEFAULT.


-11117	Associated statement is not prepared.

This IBM Informix ODBC error code is the same as SQLSTATE value HY007. The
following functions can return this error code: SQLCopyDesc,
SQLGetDescField, and SQLGetDescRec.

For SQLCopyDesc, SQLGetDescField, and SQLGetDescRec, DescriptorHandle
was associated with a StatementHandle as an IRD, and the associated
statement handle had not been prepared or executed.


-11118	Invalid use of null pointer

This IBM Informix ODBC error code is the same as SQLSTATE value HY009. The
following functions can return this error code: SQLAllocHandle,
SQLBindParameter, SQLColumnPrivileges, SQLColumns, SQLExecDirect,
SQLForeignKeys, SQLNativeSql, SQLPrepare, SQLPrimaryKeys,
SQLProcedureColumns, SQLProcedures, SQLPutData, SQLSetConnectAttr,
SQLSetCursorName, SQLSetEnvAttr, SQLSetStmtAttr, SQLSpecialColumns,
SQLStatistics, SQLTablePrivileges, and SQLTables.

For SQLAllocHandle, SQLExecDirect, SQLNativeSql, SQLPrepare, SQLPutData,
SQLSetConnectAttr, SQLSetCursorName, SQLSetEnvAttr, and SQLSetStmtAttr,
the argument was a null pointer.

For SQLForeignKeys, SQLPrimaryKeys, SQLStatistics, SQLTablePrivileges,
and SQLTables, the TableName argument was a null pointer. The
SQL_ATTR_METADATA_ID statement attribute was set to SQL_TRUE, the
CatalogName argument was a null pointer, and the SQL_CATALOG_NAME
InfoType returns that catalog names are supported. The
SQL_ATTR_METADATA_ID statement attribute was set to SQL_TRUE, and the
SchemaName or ColumnName argument was a null pointer.

For SQLColumn, SQLColumnPrivileges, SQLProcedures, SQLProcedureColumns,
and SQLSpecialColumns, the SQL_ATTR_METADATA_ID statement attribute was
set to SQL_TRUE, the CatalogName argument was a null pointer, and the
SQL_CATALOG_NAME InfoType returns that catalog names are supported.(DM)
The SQL_ATTR_METADATA_ID statement attribute was set to SQL_TRUE, and the
SchemaName, ProcName, or ColumnName argument was a null pointer.


-11119	Attribute cannot be set now.

This IBM Informix ODBC error code is the same as SQLSTATE value HY011. The
following functions can return this error code: SQLBulkOperations,
SQLSetConnectAttr, SQLSetEnvAttr, SQLSetPos, and SQLSetStmtAttr.

For SQLBulkOperations and SQLSetPos, the driver was an ODBC 2.x driver;
the SQL_ATTR_ROW_STATUS_PTR statement attribute was set; then SQLSetPos
was called before SQLFetch, SQLFetchScroll, or SQLExtendedFetch was
called.

For SQLSetConnectAttr, the Attribute argument was SQL_ATTR_TXN_ISOLATION,
and a transaction was open.

For SQLSetEnvAttr, a connection handle has been allocated on
EnvironmentHandle.(DM) The Attribute argument was SQL_ATTR_OUTPUT_NTS,
and the SQL_ATTR_ODBC_VERSION attribute had not been set.

For SQLSetStmtAttr, the Attribute was SQL_ATTR_CONCURRENCY,
SQL_ATTR_CURSOR_TYPE, SQL_ATTR_SIMULATE_CURSOR, or
SQL_ATTR_USE_BOOKMARKS, and the statement was prepared.


-11120	Memory management error

This IBM Informix ODBC error code is the same as SQLSTATE value HY013. The
following functions can return this error code: all ODBC functions
except: SQLGetDiagField and SQLGetDiagRec.

The function call could not be processed because the underlying memory
objects could not be accessed, possibly because of low memory conditions.


-11122	Cannot modify an implementation row descriptor.

This IBM Informix ODBC error code is the same as SQLSTATE value HY016. The
following functions can return this error code: SQLCopyDesc,
SQLSetDescField, and SQLSetDescRec.

For SQLCopyDesc and SQLSetDescRec, DescHandle was associated with an IRD.

For SQLSetDescField, the DescriptorHandle argument was associated with an
IRD, and the FieldIdentifier argument was not SQL_DESC_ARRAY_STATUS_PTR
or SQL_DESC_ROWS_PROCESSED_PTR.


-11123	Invalid use of an automatically allocated descriptor handle

This IBM Informix ODBC error code is the same as SQLSTATE value HY017. The following functions can return this error code: SQLFreeHandle and SQLSetStmtAttr.

For SQLFreeHandle, the Handle argument was set to the handle for an
automatically allocated descriptor.

For SQLSetStmtAttr, the Attribute argument was SQL_ATTR_IMP_ROW_DESC or
SQL_ATTR_IMP_PARAM_DESC.(DM) The Attribute argument was
SQL_ATTR_APP_ROW_DESC or SQL_ATTR_APP_PARAM_DESC, and the value in
ValuePtr was an implicitly allocated descriptor handle other than the
handle originally allocated for the ARD or APD.


-11127	Inconsistent descriptor information

This IBM Informix ODBC error code is the same as SQLSTATE value HY021. The
following functions can return this error code: SQLBindParameter,
SQLCopyDesc, SQLGetDescField, SQLSetDescField, and SQLSetDescRec.

For SQLBindParameter, the descriptor information checked during a
consistency check was not consistent. The value specified for the
argument DecimalDigits was outside the range of values supported by the
data source for a column of the SQL data type specified by the
ParameterType argument.

For SQLCopyDesc, SQLSetDescField, and SQLSetDescRec, the descriptor
information checked during a consistency check was not consistent.

For SQLGetDescField, the SQL_DESC_TYPE and
SQL_DESC_DATETIME_INTERVAL_CODE fields do not form a valid ODBC SQL type,
a valid driver-specific SQL type (for IPDs), or a valid ODBC C type (for
APDs or ARDs).


-11275	Cursor operation conflict

This IBM Informix ODBC error code is the same as SQLSTATE value 01001. The
following functions can return this error code: SQLExecDirect,
SQLExecute, and SQLSetPos.

For SQLExecute and SQLExecDirect, StatementText contained a positioned
update or delete statement and no rows or more than one row were updated
or deleted. (For more information about updates to more than one row, see
the description of the SQL_ATTR_SIMULATE_CURSOR Attribute in
SQLSetStmtAttr.) (Function returns SQL_SUCCESS_WITH_INFO.)

For SQLSetPos, the Operation argument was SQL_DELETE or SQL_UPDATE, and
no rows or more than one row were deleted or updated. (For more
information about updates to more than one row, see the description of
the SQL_ATTR_SIMULATE_CURSOR Attribute in SQLSetStmtAttr.) (Function
returns SQL_SUCCESS_WITH_INFO.)


-11278	Fractional truncation.

This IBM Informix ODBC error code is the same as SQLSTATE value 01S07. The
following functions can return this error code: SQLExecDirect,
SQLExecute, SQLExtendedFetch, SQLFetch, SQLFetchScroll, SQLGetData, and
SQLSetPos

For SQLExecDirect, SQLExecute, SQLExtendedFetch, SQLFetch,
SQLFetchScroll, and SQLGetData, the data returned for an input/output or
output parameter was truncated such that the fractional part of a numeric
data type was truncated or the fractional portion of the time component
of a time, timestamp, or interval data type was truncated.

For SQLSetPos, the Operation argument was SQL_REFRESH, the data type of
the application buffer was not SQL_C_CHAR or SQL_C_BINARY, and the data
returned to application buffers for one or more columns was truncated.
For numeric data types, the fractional part of the number was truncated.
For time, timestamp, and interval data types that contain a time
component, the fractional portion of the time was truncated.


-11280	Invalid keyword.

This IBM Informix ODBC error code is the same as SQLSTATE value 01S09. The
following function can return this error code: SQLDriverConnect.

For SQLDriverConnect, the string in *InConnectionString contained a
SAVEFILE keyword but not a DRIVER or FILEDSN keyword. (Function returns
SQL_SUCCESS_WITH_INFO.)


-11301	A protocol error has been detected. Current connection is
closed.

This IBM Informix ODBC error code is the same as SQLSTATE value 08S01.

Connection is closed by the database server.

Try running the client application again.


-11305	SQLGetTypeInfo supported for FORWARD_ONLY Cursors

This IBM Informix ODBC error code is the same as SQLSTATE value S1000. The
following function can return this error code: SQLGetTypeInfo.

Change your cursor type to SQL_CURSOR_FORWARD_ONLY.


-11307	In SQLExtendedFetch, only SQL_FETCH_NEXT is supported for
SQL_SCROLL_FORWARD_ONLY cursors.

This IBM Informix ODBC error code is the same as SQLSTATE value S1000. The
following function can return this error code: SQLExtendedFetch.


-11310	Create and Drop database must be executed within a ServerOnly
connection.

This IBM Informix ODBC error code is the same as SQLSTATE value S1000. The
following function can return this error code: SQLPrepare.

Change your CONNECTDATABASE option to YES in the connect string for
SQLDriverConnect or remove this option from the connect string, as
default value of CONNECTDATABASE is YES.


-11320	Syntax Error

This IBM Informix ODBC error code is the same as SQLSTATE value S1000. The
following functions can return this error code: SQLNativeSQL,
SQLExecDirect, and SQLPrepare.

Check your statement string for syntax error. Consult ODBC Reference
Manual for SQL syntax.


-11323	The statement contained an escape clause not supported by
this database driver.

This IBM Informix ODBC error code is the same as SQLSTATE value S1000. The
following functions can return this error code: SQLNativeSQL,
SQLExecDirect, and SQLPrepare.

Remove the escape clause from the statement string argument for the
above functions.


-11330	Invalid lo_stat structure.

This IBM Informix ODBC error code is the same as SQLSTATE value S1000. The
following function can return this error code: SQLExecDirect.

Reopen the large object and then refetch the lo_stat structure.


-11331	Describe Parameter supported only for INSERT and UPDATE
statements.

This IBM Informix ODBC error code is the same as SQLSTATE value S1000. The
following function can return this error code: SQLDescribeParam.


-11332	Expected number of parameters does not match parameters
returned from server.

This IBM Informix ODBC error code is the same as SQLSTATE value S1000. The
following functions can return this error code: SQLExecDirect and
SQLExecute.

Check the number of output parameters bound for that statement. 


-11353	Database is not capable of supporting transactions. Check
logging mode.

This IBM Informix ODBC error code is the same as SQLSTATE value 01S02. The
following function can return this error code: SQLSetConnectAttr.


-11354	Any open cursors are now invalid and must be closed before
being used.

This IBM Informix ODBC error code is the same as SQLSTATE value 01000. The
following functions can return this error code: SQLExecDirect,
SQLExecute, and SQLSetConnectAttr.


-11414	Already in transaction. SPL routine could not get executed.

This IBM Informix ODBC error code is the same as SQLSTATE value S1000. The
following functions can return this error code: SQLExecDirect,
SQLExecute, SQLFetch, SQLFetchScroll, SQLExtendedFetch,
SQLBulkOperations, SQLParamData, and SQLSetPos.

Remove any redundant Begin Commit from the client application.


-11415	Cannot set LO Automatic option OFF when Standard ODBC Types
only is ON.

This IBM Informix ODBC error code is the same as SQLSTATE value S1000. The
following functions can return this error code: SQLSetStmtAttr and
SQLSetConnectAttr.

Turn the SQL_INFX_ATTR_ODBC_TYPES_ONLY off first before turning the
SQL_INFX_LO_AUTOMATIC_ATTR off for a statement or connection.


-11416	Cannot set Standard ODBC Types only to ON when LO Automatic
option is OFF.

This IBM Informix ODBC error code is the same as SQLSTATE value S1000. The
following functions can return this error code: SQLSetStmtAttr and
SQLSetConnectAttr.

Turn the SQL_INFX_LO_AUTOMATIC_ATTR on first before turning the
SQL_INFX_ATTR_ODBC_TYPES_ONLY on for a statement or connection.


-11302	Insufficient Connection information was supplied.

This IBM Informix CLI error code is an extended message to SQLSTATE value S1000.
IBM Informix CLI functions that can generate this error: SQLConnect and
SQLDriverConnect.

Check the connect string passed to SQLDriverConnect for accurate information
or check the DSN entries. You must supply the required values to connect.


-11303	Input Connection string too large.

This IBM Informix CLI error code is an extended message to SQLSTATE value S1000.
IBM Informix CLI functions that can generate this error: SQLDriverConnect and
SQLBrowseConnect.

Length of the connection string should be less than 1024 bytes.


-11317	Invalid CONNECTDATABASE value specified.

This is an extended message to SQLSTATE value S1000. Functions that can
generate this error: SQLBrowseConnect and SQLDriverConnect.

Valid values are YES and NO (not case-sensitive).


-11318	Invalid VMBCHARLENEXACT value specified.

This is an extended message to SQLSTATE value S1000. Functions that can
generate this error: SQLBrowseConnect and SQLDriverConnect.

The valid values are 0 and 1.


-11400	Cannot rollback the transaction.

The application has faulty logic or the database server is down. Check the
native error for more information. 


-11401	TM down not successful.

TM did not shut down gracefully. Shut down and restart the MS DTC.


-11402	Not in DTC transaction.

You are trying to unenlist a transaction that is not in the MS DTC. This
situation occurs if the transaction timeout value is low. Use the MTS explorer
to increase the transaction timeout.


-11403	DSN required for DTC transactions.

Report this error to IBM Technical Support.


-11404	Failed to create RM in DTC transactions.

The amount of available memory is insufficient or the MS DTC log has become
corrupted. Check the amount of available memory and the MS DTC log.


-11405	Filed to get Resource Manager Object.

Report this error to IBM Technical Support.


-11406	Filed to get XID.

The MS DTC failed or the transaction timeout value is low. If the MS DTC
failed, restart it. Otherwise, use the MTS explorer to increase the
transaction timeout.


-11407	Opening of the database created error.

Check the IBM Informix CLI error code. This problem might indicate that the
database was not created with a log.


-11408	Cannot enlist with RM.

The MS DTC might have failed. If so, restart it.


-11409	Failed to create Enlistment object out of memory.

The system has insufficient memory. Install more memory.


-11410	Prepare failed.

Report this error to IBM Technical Support.


-11411	Commit failed.

Report this error to IBM Technical Support.


-11412	Recover failed.

Report this error to IBM Technical Support.


-11413	Failed to connect to the server.

The database server might be down. If so, restart it.


-12000	Smart Large Objects: Cannot add entry to lofd table.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12001	Smart Large Objects: Cannot add entry to lohd table.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12002	Smart Large Objects: Cannot add entry to sbspace table.

Sbspace entry might already be in the table.


-12003	Smart Large Objects: Cannot add entry to chunkadj table.

Chunk with this number might already be in the table.


-12004	Smart Large Objects: Cannot add entry to arcreg table.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12005	Smart Large Objects: Cannot add entry to arcspace table.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12006	Smart Large Objects: Cannot add smart large object to
truncation Q.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12007	Smart Large Objects: Cannot add smart large object to delete Q.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12008	Smart Large Objects: Cannot delete entry in lofd table.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12009	Smart Large Objects: Cannot delete entry in lohd table.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12010	Smart Large Objects: Cannot delete entry in sbspace table.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12011	Smart Large Objects: Cannot delete entry in chunkadj table.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12012	Smart Large Objects: Cannot delete entry in arcrec table.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12013	Smart Large Objects: Cannot delete entry in arcspace table.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12014	Smart Large Objects: Cannot find entry in lofd table.

An attempt was made to access a smart large object using an invalid LO file
descriptor.

Check that the LO file descriptor you supplied is correct and that the smart
large object is still open.


-12015	Smart Large Objects: Cannot find entry in lohd table.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12016	Smart Large Objects: Cannot find entry in sbspace table.

Sbspace might not exist or invalid pointer.


-12017	Smart Large Objects: Cannot find entry in chunkadj table.

This error is an internal error.

If this error recurs, refer to your Administrator's Guide to acquire
additional diagnostics. Contact IBM Technical Support with the
diagnostic information.


-12018	Smart Large Objects: Cannot find entry in arcrec table.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12019	Smart Large Objects: Cannot find entry in arcspace table.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12020	Smart Large Objects: Cannot unlock table entry.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12021	Smart Large Objects: Duplicate keys not allowed.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12022	Smart Large Objects: Duplicate entry in chunk adjtab.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12023	Smart Large Objects: chunk size is too small.

The smart-large-object chunk is less than the minimum required size.
Increase the chunk size in the onspaces command line. Check that you
are using the correct units.


-12024	Smart Large Objects: Chunk dropped from sbspace.

You attempted to reference a chunk that is being dropped from the
sbspace. If this error recurs, note all circumstances and
contact IBM Technical Support.


-12025	Smart Large Objects: Chunk not empty.

You attempted to drop a smart-large-object chunk that still contained
data. The chunk was not dropped. To ensure that chunks you want to
drop are empty, delete the rows that contain pointers to smart large
objects in the chunk or remove the smart-large-object pointers in the
rows.


-12026	Smart Large Objects: Cannot delete smart large object.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12027	Smart Large Objects: Cannot delete SB_LOHD_SLOT.

You cannot delete the LO header page for a smart large object. The
chunk or sbspace might be inaccessible or the LO address might be
invalid. Ensure that the chunk is accessible. Ensure that the
smart-large-object address is still valid--that is, the smart large
object has not already been removed.


-12028	Smart Large Objects: Cannot delete SB_LOMAP_SLOT.

You cannot delete an extent map for a smart large object. Ensure
that the chunk is accessible. If this error recurs, note all
circumstances and contact IBM Technical Support.


-12029	Smart Large Objects: Cannot delete SB_USERDATA_SLOT.

Cannot delete user data slot. First ensure that the chunk is accessible.
If this error recurs, note all circumstances and contact IBM Technical Support.


-12030	Smart Large Objects: Cannot release memory buffer.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12031	Smart Large Objects: Sbspace is full.

The user data area or areas have insufficient storage for a write request.
Delete some smart large objects or add a chunk to the sbspace.


-12032	Smart Large Objects: Table is full.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12033	Smart Large Objects: Cannot insert SB_LOHD_SLOT.

You cannot insert a smart-large-object header page into the
smart-large-object header partition. Add a chunk to the smart-large-
object space with a metadata area.


-12034	Smart Large Objects: Invalid buffer size.

A smart-large-object read or write request specified an invalid length
for the input or output buffer. The length was likely less than 0.
Correct the smart-large-object application program.


-12035	Smart Large Objects: Invalid lock type.

You either passed an invalid lock type or tried to lock a byte range
exclusively after you opened the smart large object in read-only mode.

Check these two cases and use a valid lock type.


-12036	Smart Large Objects: Invalid sbspace name.

During a smart-large-object create operation, a nonexistent
smart-large-object space name was specified in the create
specification.

Create the specified smart-large-object space with the onspaces -c -S
command or ensure that the create specification used the correct sbspace
name.


-12037	Smart Large Objects: Invalid seek position.

During a smart-large-object read or write operation, a seek position
contained an invalid value. The value was likely less than 0. Correct
the smart-large-object application program so that it specifies a valid
read/write start position.


-12038	Smart Large Objects: Invalid access time flag combination.

During a smart-large-object CREATE or ALTER operation, a create
specification was provided that specified conflicting values for the
access time flag. Correct the smart-large-object application program.
Ensure that the create specification is set to the default NULL values
before you provide it to the smart-large-object subsystem. Use ifx_lo.


-12039	Smart Large Objects: Invalid whence value for seek.

The whence parameter for a smart-large-object seek or I/O operation
contains an invalid value. Set the whence parameter to the correct
value.


-12040	Smart Large Objects: Invalid truncate value for size.

The new size parameter supplied to a truncate operation for a smart
large object was invalid. The new size parameter was probably less than
zero. Correct the smart-large-object application program.


-12041	Smart Large Objects: Size of smart large object or buffer is too
big.

The size after a write or truncate operation exceeds the maximum size
limit for the smart large object. The system does not allow the size of
the smart large object to exceed the maximum number of bytes that the
application sets. This size limit was set by the CREATE or ALTER statement
for the smart large object.


-12042	Smart Large Objects: Size of page is too big.

The page size specified during an sbspace creation operation is too
big. Specify a page size that is less than the platform-dependent
maximum asynchronous I/O size or is greater than the subsystem
page-size limitation for the smart large object.


-12043	Smart Large Objects: Invalid create flags.

The smart-large-object create specification contains mutually
inconsistent flags. Fix the create specification flags in the
smart-large-object application program so that the flags do not
conflict. Before the create specification is used, ensure that the
create specification has been initialized to the appropriate default
values by using the function that the database server provides.


-12044	Smart Large Objects: Invalid integrity type flag combination.

The smart-large-object create specification contains conflicting flags
for the integrity field. Change the smart-large-object application
program so that no more than one integrity flag is set in the
smart-large-object create specification.


-12045	Smart Large Objects: Invalid logging mode combination.

The smart-large-object create specification contains conflicting flags
for the log-mode field. Change the smart-large-object application
program so that no more than one logging mode is specified in the
smart-large-object create specification. Before you use the create
specification, ensure that the create specification has been
initialized to the proper default values by using the functions that
the database server provides.


-12046	Smart Large Objects: Cannot enter critical section.

Call to isenter() failed.

Contact IBM Technical Support.


-12047	Smart Large Objects: sb_lo_map_offs failed.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12048	Smart Large Objects: unique ID does not match. Smart large object
probably deleted.

The smart large object being referenced by the smart-large-object pointer has
been deleted.

Ensure that the smart-large-object pointer is valid and that the smart large
object has not been deleted. If you are keeping a smart-large-object handle,
then the reference count for the smart large object must be greater than 0
or the database server deletes the smart large object at session end.


-12049	Smart Large Objects: No memory.

The system ran out of memory during a smart-large-object operation.

Add more virtual memory or determine the cause of the memory leak.


-12050	Smart Large Objects: dbm_bfget: Cannot get a memory buffer.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12051	Smart Large Objects: Smart large object was not opened for read.

You attempted to read a smart large object that was not open for
reading.

Change the smart-large-object application program so that it opens
the smart large object in read mode.


-12052	Smart Large Objects: Smart large object was not opened for write.

You attempted to write to a smart large object that was not open for
writing. Change the smart-large-object application program so that it
opens the smart large object for writing.


-12053	Smart Large Objects: No sbspace number specified.

No default sbspace was found, and the caller has not specified an sbspace
to use.

Either specify the smart-large-object space name in the
smart-large-object function call or set the SBSPACENAME onconfig
file parameter to the name of a valid smart-large-object space.


-12054	Smart Large Objects: Cannot open chunk adj partition.

The chunk might be down.

Ensure that the smart-large-object space chunk is up.


-12055	Smart Large Objects: Cannot open smart-large-object header
partition.

The chunk might be down.

Ensure that the smart-large-object space chunk is up.


-12056	Smart Large Objects: Cannot open sbspace.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12057	Smart Large Objects: Cannot open sbspace description partition.

The smart-large-object space is probably down, or an attempt was made
to open a space that should have been a smart-large-object space but
was not.

Ensure that the first chunk of the smart-large-object space is up.
Also ensure that an application program is not attempting to
perform TEXT or BYTE operations to a smart-large-object space.


-12058	Smart Large Objects: Cannot read chunk adjunct entry.

The smart-large-object space is corrupt or down.

If the space is down, perform the actions necessary to bring it back
online.


-12059	Smart Large Objects: open failed at read of smart-large-object
header.

Possibly you attempted to open a nonexistent or deleted smart large
object.

Ensure that the system is not collecting unreadable data in the
smart large object because of a zero reference count. Ensure that
the smart-large-object handle is not getting corrupted.


-12060	Smart Large Objects: Cannot read SB_LOMAP_SLOT.

The database server cannot read the extent map for the smart large
object.

Check to see if the smart-large-object space is corrupt or if
the chunk is down.


-12061	Smart Large Objects: Cannot read user data.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12062	Smart Large Objects: Error in user data free list.

User data free list cannot be manipulated.


-12063	Smart Large Objects: Cannot update SB_LOHD_SLOT.

Cannot read smart-large-object header page for smart large object. 
Cannot update smart-large-object header page for smart large object.


-12064	Smart Large Objects: Cannot update SB_LOMAP_SLOT.

Cannot update extent map for smart large object.


-12065	Smart Large Objects: Cannot update optimization data.

Optimization data cannot be put into the sbspace description entry.


-12066	Smart Large Objects Archive: Cannot build pre-image temporary
partition.

An attempt to create a temporary partition during an archive failed.

Ensure that the dbspace in which temporary partitions are placed is not
full and is accessible.


-12067	Smart Large Objects Archive: Cannot extend pre-image temporary
partition.

An attempt to lengthen a temporary partition during an archive failed.

Ensure that the dbspace in which temporary partitions are placed is not
full and is accessible.


-12068	Smart Large Objects Archive: Cannot drop pre-image temporary
partition during archive.

An attempt to drop the pre-image temporary partition failed. Ensure
that the dbspace in which temporary partitions are placed is
accessible.


-12069	Smart Large Objects Archive: Cannot write pre-image page to
temporary partition.

An attempt to write a pre-image page during archive failed. Ensure that
the dbspace in which the temporary partitions are placed is
accessible.


-12070	Smart Large Objects Archive: Cannot read pre-image page from
temporary partition.

An attempt to read a pre-image page during archive failed. Ensure that
the dbspace in which the temporary partitions are placed is
accessible.


-12071	Smart Blobs Archive: During restore, a page write failed.

During an archive restore, a page-write operation to the chunk failed.
Ensure that the device is accessible.


-12072	Smart Large Objects: Not implemented.

An unimplemented smart-large-object feature was accessed. Wait until the 
next release.


-12073	Smart Large Objects Archive: Archive already active on sbspace.

Another archive is already running on the same sbspace. Ensure that you
do not have another archive running on the same sbspace. Only one archive
operation on an sbspace at a time is permitted.


-12074	Smart Large Objects: Free extension list overflow.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12075	Smart Large Objects Archive: Cannot delete arch rec table.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12076	Smart Large Objects Archive: Cannot create arch space table.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12077	Smart Large Objects Archive: Unexpected exit condition.

During an archive, the database server detected that the number of
pages it expected to read from the chunk was not the number of pages
that actually could be read. Try restarting the archive.


-12078	Smart Large Objects Archive: Illegal level specified for archiving.

You specified an illegal archive level. You must specify an archive
level of 0, 1, or 2.


-12079	Smart Large Objects: Cannot decrement zero reference count.

The reference count for the smart large object is already 0. Attempts
to decrement the reference count to less than 0 are ignored.


-12080	Smart Large Objects Archive: Page is outside user data area.

An attempt was made to archive a page outside the user data area. If
this error recurs, note all circumstances and contact IBM Technical Support.


-12081	Smart Large Objects Archive: illegal control page type in arc.

The archive tape was corrupted either by a user error or a database
server malfunction. Ensure that the archive file was not corrupted
through user error. If the archive file is intact, the database server
malfunctioned. You can either try to create another archive of the same
sbspace, or you can remove the sbspace from the list of spaces to be
archived and try to archive the remaining spaces.


-12082	Smart Large Objects Archive: invalid state encountered.

The smart-large-object archive program encountered an archive record
that was out of sequence. Ensure that the archive file has not been
corrupted through user error. If the archive file is intact, the
database server malfunctioned. You can either try to create another
archive of the same sbspace, or you can remove the sbspace from the
list of spaces to be archived and try to archive the remaining spaces.


-12083	Smart Large Objects: Restore: END_DESC record found before
SB_ARC_CHUNK_RECS record.

The archive tape was corrupted either by a user error or a database
server malfunction. Ensure that the archive file was not corrupted
through user error. If the archive file is intact, the database server
malfunctioned. You can either try to create another archive of the same
sbspace, or you can remove the sbspace from the list of spaces to be
archived and try to archive the remaining spaces.


-12084	Smart Large Objects: Restore: NULL control info block ptr;
archive records out of order.

The archive tape was corrupted either by a user error or a database
server malfunction. Ensure that the archive file was not corrupted
through user error. If the archive file is intact, the database server
malfunctioned. You can either try to create another archive of the same
sbspace, or you can remove the sbspace from the list of spaces to be
archived and try to archive the remaining spaces.


-12085	Smart Large Objects: Restore: SB_ARC_END_DESC record not found
for this chunk.

The archive tape was corrupted either by a user error or a database
server malfunction. Ensure that the archive file was not corrupted
through user error. If the archive file is intact, the database server
malfunctioned. You can either try to create another archive of the same
sbspace, or you can remove the sbspace from the list of spaces to be
archived and try to archive the remaining spaces.


-12086	Smart Large Objects: open: invalid open flags detected at
smart-large-object open time.

A programmer entered conflicting smart-large-object open flags. For
instance, LO_LOG and LO_NOLOG cannot be set at the same time. Check
open-flag settings to ensure that conflicting flags are not being set.
In addition, ensure that the smart-large-object open-flag field is
initialized.


-12087	Smart Large Objects: alter: attempt to change physical
characteristics of a smart large object in sb_alter.

The database administrator attempted to perform an alter operation on
a smart-large-object column that requires physical reorganization or
relocation of the smart large objects.

Do not attempt to reorganize smart large objects physically.
As an alternative to physical reorganization, try using the LOCopy
function to copy smart large objects to a new location with different
physical attributes.


-12088	Smart Large Objects: create: number of estimate bytes < -1.

The application programmer has specified an invalid value for the
estimated number of bytes in a smart large object. If the number of
bytes in a smart large object is unknown, set the estimated-number-of-bytes
field to -1 or call ifx_lo_def_create_spec or the equivalent mi function
and then leave this field alone.


-12089	Smart Large Objects: create: size limit of smart large
object < -1.

The application programmer specified an invalid value for the size
limit of the smart large object. If the number of bytes in a smart
large object is unknown, set the estimated-number-of-bytes field to -1
or call ifx_lo_def_create_spec or the equivalent mi function and then
leave this field alone.


-12090	Smart Large Objects: create: invalid column parameters.

The database server received a smart-large-object create specification
that has invalid values in the column portion. Either the application
programmer forgot to call the ifx_lo_def_create_spec function or the
mi equivalent with create specification, or the create specification
data structure has been corrupted.


-12091	Smart Large Objects: the in-memory sbspace table doesn't exist.

Database server initialization error.


-12092	Smart Large Objects: sbspace exists but is currently down.

Either the database server or the database administrator brought the
smart-large-object space down. Look at the database server log to determine
why the sbspace is down. You might need to bring up the sbspace.


-12093	Smart Large Objects: archive failed to create a mutex and
aborted.

The system could be out of memory.


-12094	Smart Large Objects: bad temporary partition page number.

If this error recurs, note all circumstances and contact IBM Technical Support.


-12095	Smart Large Objects: create: Invalid Ext. size
(<number-of-kilobytes>) Ext. size < -1 or > MAXINT.

The application programmer specified an invalid value for the
estimated number of bytes in a smart large object. If the extent size
is out of range for a smart large object, set the estimated extent size
to -1 or call ifx_lo_def_create_spec or the equivalent mi function and
then leave this field alone.


-12096	Smart Large Objects: alter: New size limit < number of bytes in
the smart large object.

The application programmer specified an invalid value for the size
limit. The value must be greater than or equal to the current number
of bytes in the smart large object. If the new size limit is less than
the current number of bytes in the smart large object, do not alter the
value in the header.


-12097	Smart Large Objects: Invalid smart large object address or ID.

The most likely reason for this error message is that the smart large
object reference being used contains outdated information. The client
application might have passed an invalid smart large object reference to
the server: for example, a reference to a smart large object the
application deleted prior to the current reference attempt. If a smart
large object is deleted and then a new one created in its place, any
references to the old object are no longer valid, because the new object
will have a different ID even if it is stored in the same physical
location.


-12098	Smart Large Objects: Sbspace corrupted.

If this internal error code for access sequence recurs, note all
circumstances and contact IBM Technical Support.


-12099	Smart Large Objects: Archiver found a smart large object with a
corrupted header.

The archiver detected a smart large object missing an extent map slot 
or a header slot. The archive process is corrupted.


-12100	Smart Large Objects: A bad value was entered for the sbpage unit.

The page unit must be between 1 and the maximum asynchronous I/O size.
Re-execute the creation command with a correct page unit.


-12101	Smart Large Objects: A bad value was entered for the average
smart-large-object size.

You entered a bad value for avg_lo_size, in kilobytes, during the
creation of an sbspace. Re-execute the creation command with a
correct average smart-large-object size, in kilobytes.

   0 <= Smart Large Object < 2 Terabytes


-12102	Smart Large Objects: A bad Meta Data Area was entered for the
smart large object.

The metadata area received a bad value during the creation of a
smartblob sbspace. Re-execute the creation command with a correct
metadata size:

   0 <= metadata area size < chunk size


-12103	Smart Large Objects: Attempt to open a non-sbspace as an sbspace.

The smartblob subsystem detected an attempt to open a
smart-large-object space when the space specified was really a dbspace
or a blobspace. The application might be attempting to use the
smart-large-object application programming interface on a space that is
not a smart-large-object space. Ensure that you are only using the
smart-large-object commands and interface on a smart-large-object space
and on smart large objects. The smart-large-object API cannot be used
on TEXT and BYTE data types.


-12104	Smart Large Objects: Inconsistent LO map was encountered.

Contact IBM Technical Support.    


-12105	Smart Large Objects: An attempt to change the sbspace name was
made.

In an alter operation, an attempt was made to change the name of the sbspace
for the smart large object. You cannot change an sbspace name with the alter
operation.

Re-execute the alter operation with a NULL sbspace name in the
LO-specification structure or the name of the sbspace in which the smart
large object currently resides.


-12106	Smart Large Objects: Could not find delete Q for transaction.

This error is internal.

If the error recurs, refer to your Administrator's Guide to acquire
additional diagnostics. Contact IBM Technical Support with the
diagnostic information.


-12108	Smart Large Objects: Unknown version.

Server encountered an unknown version during conversion of smart-large-object
metadata. Make sure that you are converting/reverting to a supported version 
of the server.


-12109	Smart Large Objects: Conversion failed.

During conversion/reversion of server, conversion/reversion of sbspace
failed.

Your smart blob space might have been corrupted before conversion.

Run oncheck -cS and oncheck -ce on all sbspaces before conversion.
If an sbspace is corrupt, you might need to restore the sbspace from a
backup before conversion.


-12110	Smart Large Objects: Could not find suitable size extent.

Server could not find a suitable size extent for a smart large object.
A write request might not be complete.

Delete some smart large objects or add a chunk to the sbspace.


-12111	Smart Large Objects: Attempt to write to a smart large object
without closing light IO scan.

The user tried to write to a smart large object that is currently opened for
a lightweight I/O scan.

Close the open smart large object and open it again (without lightweight
I/O) before you write to the smart large object.


-12112	Smart Large Objects: Conversion from using buffers to light IO
not allowed.

The user tried to change the buffering mode of a smart large object from
buffered I/O to lightweight I/O.

This type of conversion is currently not allowed.


-12113	Smart Large Objects: Attempt to convert from using light IO to
buffers while LO is open.

The user tried to alter a smart large object with either ifx_lo_alter()
(ESQL/C) or mi_lo_alter() (DAPI) while some instances of the smart large
object are currently open.

Close all open instances of the smart large object before altering the
buffering mode with ifx_lo_alter() or mi_lo_alter().


-12114	Smart Large Objects: Archive not started.

This error is internal. The smart-large-object subsystem was asked to build
a user-data extent list before the archiving started.


-12115	The LO header page is a wrong length - probably corrupted.

An internal error probably occurred and corrupted the LO header.

Delete and recreate the smart large object or restore the sbspace from
an archive.


-12116	Smart Large Objects: Bad LO header.

LO header read from disk is bad. Refer to log file for LO id. Most likely
sbspace is corrupt. Restore the sbspace from backup.


-12117	Smart Large Objects: Bad LO header (encountered during deletion).

LO header read from disk is bad. Most likely sbspace is corrupt. Run
oncheck -ce on the sbspace. You might need to restore the sbspace
from an archive.


-12118	Smart Large Objects: Bad LO extent map.

The extent map record for the smart large object is corrupt. Most likely
the sbspace is corrupt. Run oncheck -ce on the sbspace. You might need
to restore the sbspace from an archive. 


-12119	Smart Large Objects: reversion of sbspace failed.

The database server reversion you attempted encountered an error during
the reversion of the sbspace.

You can find the reason for this failure in the log file. If the error is
recoverable, retry the reversion. If the error persists, contact IBM Technical Support.


-12120	Smart Large Objects: Duplicate key encountered in sbspace create.

During the creation of an sbspace, it was noticed that the sbspace number
was the same as some other sbspace number. The most common cause of the
problem is failure to create an sbspace in an earlier attempt.

Rebooting the database server will remove the entry from the internal table.


-12121	Smart Large Objects: The sbspace is flagged as dropped.

You are attempting an operation on an sbspace that someone else is trying
to drop. Perhaps they are using a forced drop command. Do not use sbspaces
that are being dropped. The force drop allows you to drop an sbspace that
contains data.


-12122	Smart Large Objects: drop of the sbspace chunk is already
occurring.

You are probably attempting an operation that might be in conflict with 
a chunk drop operation that is already occurring (for example, trying to drop
a chunk when sbspace is being dropped). Retry the operation later.


-12123	Smart Large Object: Metadata is full.

The metadata area in the smart-large-object space has insufficient
storage for a create or write request.

Delete some of the smart large objects or add a chunk with metadata
space to the sbspace. Use the -Ms option of onspaces to add additional
metadata space.


-12124	Smart Large Objects: The archive preimage partition doesn't
exist.

An internal error occurred in the archiver. The preimage partition 
should exist at this point but it does not.

If the error recurs, refer to your Administrator's Guide to acquire
additional diagnostics. Contact IBM Technical Support with the
diagnostic information.


-12125	Smart Large Objects: No more slots in LO header partition.

This is an internal code

If the error recurs, refer to your Administrator's Guide to acquire
additional diagnostics. Contact IBM Technical Support with the
diagnostic information.


-12126	Smart Large Objects: LO is not opened for byte range locking.

A call to one of the byte-range locking functions has attempted to specify a
byte-range lock:

    *   ESQL/C: ifx_lo_lock() or ifx_lo_unlock()

    *   DAPI: mi_lo_lock() or mi_lo_unlock()

The smart large object is currently opened for locking at the whole-object
level.

Close the smart large object, then reopen the smart large object 
with the LO_LOCKRANGE (ESQL/C) or MI_LO_LOCKRANGE (DAPI) lock-mode flag set.


-12127	Smart Large Objects: Invalid range size in byte range
lock / unlock call.

A call to one of the byte-range locking functions specifies a range size that
is invalid:

    *   ESQL/C: ifx_lo_lock() or ifx_lo_unlock()

    *   DAPI: mi_lo_lock() or mi_lo_unlock()

An invalid range size is either a negative value or has the following sum
that results in an INT8 overflow:

    offset + range size

Use a valid range size in the byte-range locking function.


-12128	Smart Large Objects: Invalid offset in byte range lock / unlock
call.

A call to one of the byte-range locking functions specifies an offset that is
invalid:

    *   ESQL/C: ifx_lo_lock() or ifx_lo_unlock()

    *   DAPI: mi_lo_lock() or mi_lo_unlock()

An invalid offset means that the provided combination of (offset, whence)
results in a negative value.

Use a valid (offset, whence) combination in the byte-range locking function.


-12129	Smart Large Objects: Failed to create condition variable in
smart-large-object open call.

The error might be generated when an out-of-memory condition occurs.

Check that you have closed all instances of smart large objects that are no
longer in use. Also check the memory available to ensure that you have
enough.


-12130	Smart Large Objects: Failed to create chunk because someone else
is also creating one.

You tried to create chunks concurrently and had a conflict.

Try to create the chunk again.


-12131	Smart Large Objects: Metadata area in the chunk contains data.

During a chunk drop, the metadata area in the chunk was not empty. The
metadata area must be empty for the chunk to be dropped without dropping
the sbspace. 

Try to empty the metadata area by deleting all the smart large objects in the
chunk. If you do not want the smart large objects, you can also "force" drop
the sbspace. 


-12132	Smart Large Objects: Invalid lock type for lock merge.

This message is an internal error code.

Contact IBM Technical Support to report the error. Try creating the sbspace again.


-12133	Smart Large Objects: During the creation of the sbspace, the desc
partition was not the first in the sbspace.

An internal database server error occurred. The sbspace is likely corrupt
or is not an sbspace.

Contact IBM Technical Support to report the error. Try creating the
sbspace again.


-12134	Smart Large Objects: During creation of the sbspace, the sbspace
desc record was not the first in the partition.

An internal error occurred.

Contact IBM Technical Support to report the error. Try creating the
sbspace again.


-12135	Smart Large Objects: Cannot initialize the smart-large-object
subsystem.

The most likely cause of this error is that you are out of memory.

Increase the amount of available memory.


-12136	Smart Large Objects:  smart-large-object space is valid.

This is an internal code

If the error recurs, refer to your Administrator's Guide to acquire
additional diagnostics. Contact IBM Technical Support with the
diagnostic information.


-12137	Smart Large Objects:  sbspace does not exist.

The sbspace entry has been removed while it was in use. Someone probably 
did a force drop of the sbspace.


-12138	Smart Large Objects: Attempt to open an LO with light I/O and
byte range locking.

At open time, you specified an unsupported combination of options.
Byte-range locking is not supported with light I/O. Check your program
and remove one of the blob open flags (MI_LO_NOBUFFER flag or
MI_LO_LOCKRANGE flag).


-12139	Smart Large Objects: Invalid option. 

An invalid option was specified for changing sbspace characteristics.
Certain characteristics of an sbspace cannot be changed, such as the chunk
offsets.

-12140	Smart Large Objects: Aborted by user.

No changes have been made to the sbspace. Utility aborted by user.


-12141	Smart Large Objects: sbspace is not fully recovered.

You are trying to access a smart large object created in an sbspace 
that is not recovered yet. When the system opens an sbspace, it must be
physically and logically restored before the open attempt.

Wait until the recovery is complete before accessing the smart large object.


-12142	Smart Large Objects: Invalid sbspace number.	

The sbspace ID number you specified is incorrect. It is either out of
range or does not refer to a valid smartblob space.

Correct the sbspace ID number and retry the operation.


-12143	Smart Large Objects: Invalid chunk number.


The chunk number in an LO handle is not valid. Either it is out of range,
or it does not exist. Most likely the LO handle is corrupt.
 
If you are getting this error in an ESQL program, make sure that the LO 
handle is valid. In addition, ensure that you did not force drop the chunk.


-12144	Smart Large Objects: Some space is allocated.

A chunk allocated to an sbspace is not empty. Some of its space is
allocated to either metadata or user data. This error is internal.

If the error recurs, refer to your Administrator's Guide to acquire
additional diagnostics. Contact IBM Technical Support with the
diagnostic information.


-12145	Smart Large Objects: sbspace is not fully recovered.

An attempt was made to archive an sbspace that is not recovered or
consistent. An sbspace must be online and consistent before a backup
is attempted.
 
Wait until the recovery is complete before backup. If the sbspace is online,
check the sbspace using oncheck -cS and oncheck -ce. If it is inconsistent,
you need to restore it from a backup first.


-12146	General Table Manager: No mvkey function provided.

The table manager did not find an mvkey function.


-12148	General Table Manager: No table allocated.

The table has not been created or was deleted.


-12149	General Table Manager: No memory.

Not enough memory was available.


-12150	General Table Manager: Mutex cannot be created.

No mutex (latch) is associated with the buffer, so it cannot be shared.


-12151	General Table Manager: Duplicate keys not allowed.

Table entries with the same key are not allowed.


-12152	General Table Manager: Table is full.

Table is full and cannot be extended.


-12153	General Table Manager: Entry is locked.

Entry of a table is already locked.


-12154	General Table Manager: Table is locked.

Table is already locked.


-12155	General Table Manager: No entry.

The required entry does not exist.


-12156	General Table Manager: Invalid entry specification.

Something in the table entry is incorrect.


-12157	General Table Manager: Invalid data specification.

One or more column values is incorrect.


-12201	Smart Large Objects: Non zero reference count.

You are trying to delete a smart large object whose reference count is not
zero.


-12202	Smart Large Objects: Non zero open count.

You are trying to delete a smart large object whose open count is not
zero.


-12203	Smart Large Objects: Cannot add LO to delete undo queue.

This error is internal.

If the error recurs, refer to your Administrator's Guide to acquire
additional diagnostics. Contact IBM Technical Support with the
diagnostic information.


-12204	RSAM error: Long transaction detected.

The database server ran out of log space in which to record this
transaction. A transaction that is not fully recorded cannot be rolled
back. To preserve database integrity, the database server ended the current 
operation that caused the long transaction.

Terminate the application and replan it so that it requires less log space
in a transaction. Alternatively, contact the database server administrator
to discuss increasing the number or the size of the logical logs. Be
prepared to talk about the number of rows being updated or inserted and
the size of each row.

-12205	Smart Large Objects: No free disk space for archive preimage
partition.

The database server ran out of space from rootdbs while extending the temp
archive preimage partition.

Add more space to rootdbs and restart the archive.

-12222	Cannot rename dbspace when checkpoint is in 
progress.

You cannot rename a dbspace during a checkpoint.

Retry renaming the dbspace after the checkpoint completes.

-12223	Rename dbspace on HDR secondary.

You cannot rename a dbspace on HDR secondary.

-12224	The partition needs to be archived.

If the table type is altered from non logging to logging, perform a backup
before you use the table in a transaction or modify data within the table.
Otherwise the table may not be fully recovered if the server crashes.

-12226	Cannot add dbspace.

When expanded chunk capacity mode is disabled, a dbspace with page size 
greater than the default page size cannot be added.

-12227	Page size mismatch.

Page size of the partition on tape is different from the page size of the 
target dbspace. Tape might contain a corrupt page (or) if you are executing 
onload command specify the correct DBspace name using the -d argument.


-12230	Cannot create blobspace blob.

You cannot create a blobspace blob on a secondary server.


-12233	Alter in progress on partition.

The partition is being altered. The session could not obtain access
to the requested table or index because it has been opened exclusively
by another user. This condition is normally transient, retry operation
after some delay.


-12234	Partition has been altered.

The partition has been altered and the table's data dictionary has been
marked dirty. DML operations are susceptible to this error when they
are referencing an older copy of the table's data dictionary information.
Most likely, the database server just completed a CREATE/DROP INDEX or
ALTER FRAGMENT operation on the table referred to by the DML operation.

This error is accompanied by SQL Error -710.


-12235	An online fragment operation is in progress on this table.

Only one online operations can be performed on a table at a time.
Wait until the online fragment operation is complete before reissuing another
online command.


-12240	Changed Data Capture: Generic Read Error.

The smart large object file descriptor you are using refers to a Changed
Data Capture (CDC) session.  An error has occurred while attempting to read
data.

Monitor the CDC subsystem to determine the cause of the error.


-12241	Changed Data Capture: The attempted operation is not supported.

The smart large object file descriptor you are using refers to a Changed
Data Capture (CDC) session.  Among the operations provided by the smart
large object interface, CDC sessions only support read operations, without
seeking.

Do not issue smart large object interface operations other than read on CDC
sessions.


-12242	Changed Data Capture: The CDC session must be closed.

The smart large object file descriptor you are using refers to a 
Changed Data Capture (CDC) session.  The CDC session can no longer be read
and must be closed.  The likely cause is an error in the CDC subsystem.

Issue the close operation provided by the Changed Data Capture interface on
the CDC session.  Monitor the CDC subsystem to determine the nature of the
error.


-12243	Changed Data Capture: Read size smaller than minimum allowed.

The smart large object file descriptor you are using refers to a Changed
Data Capture (CDC) session.  The amount of data you have requested to be
read from the CDC session is less than the minimum allowed.

Retry the read operation with a larger read size.  The minimum allowed read
size is 128 bytes.


-12244	Changed Data Capture: Object in incorrect state for attempted operation.

The smart large object file descriptor you are using refers to a Changed
Data Capture (CDC) session.  The operation on the CDC session encountered
internal structures in an incorrect state.

Report to IBM Support.


-12245	Changed Data Capture: Memory corruption detected.

The smart large object file descriptor you are using refers to a Changed
Data Capture (CDC) session.  The CDC subsystem has detected evidence of
memory corruption.  This is an internal error.

Report to IBM Support.


-12246	Smart large objects: You cannot put a temporary large object into a permanent table

You attempted to take a temporary smart large object and put it into a permanent
table. This large object can disappear leaving the permanent table with an invalid pointer. 
Checking for this behavior is controlled by onconfig parameter SB_CHECK_FOR_TEMP.  


-12247	Smart Large Objects: Processing failed because of an invalid buffer size from the client

The server uses the buffer size provided by the client to process smart large
object data. The buffer size that the client provided is not valid.

ACTION
If this internal error recurs, note all circumstances and contact IBM Software
Support.


-12800	Unsuspected internal error.

An inconsistency has been found in the data used to invoke access
method routines.


-12801	An attempt was made to invoke an access_method routine that does not
exist.

An SQL statement has been used that would normally cause a particular
access method routine to be invoked, but the routine is not defined for
that access method. Unless the routine is defined for the corresponding
access method purpose, the SQL statement cannot be used for that access
method.


-12802	Error in initializing an access_method routine execution sequence.

An access_method routine cannot be made ready to execute. For example,
the external name used in the CREATE FUNCTION statement that defined
the access method routine might not exist. Check that the routines used
for the access method are properly defined.


-12803	Error in executing an access_method routine execution sequence.

An error occurred when an attempt was made to execute an access_method
routine. Try the statement again.


-12804	Error indicated by an access_method routine.

An access_method routine returned MI_ERROR.


-12805	Improper return value from access_method routine.

An access_method routine returned a value that is not valid. Possibly a
bug exists in the access_method routine.


-12806	Unable to build row descriptor.

An error occurred in building a row descriptor to be used by an
access_method routine.


-14500	CSS: error <csm-error-number>

Communication Support Services internal error.

Contact IBM Technical Support or the CSM vendor and have the
following information available: CSS configuration files and sqlhosts
information for both the client and the database server.


-14501	CSS: out of memory

Not enough memory to run in this configuration.

Check the system parameters.


-14502	CSS: CSM <csm-name> not found.

Communication Support Services could not locate a Communications Support
Module with the given name.

Check the Communications Support Module definition in the concsm.cfg
file, and the CSM option field in the sqlhosts file.


-14503	CSS error loading <csm-name>

Communication Support Services failed to load the library that contains a
Communications Support Module.

Check the path name of the CSM library in CSS configuration file, and
Make sure it is a valid shared library.

If the problem persists, contact IBM Technical Support or the CSM
vendor and have the following information available: CSS configuration 
files and sqlhosts information for both the client and the database
server.


-14504	CSS: unsupported CSM version <version-number> in <csm-name>

Communication Support Services does not support the version of the
Communications Support Module interface that a given Communications
Support Module uses.

Make sure the database server or client application support the CSM
interface version in question.

If the problem persists, contact IBM Technical Support or the CSM
vendor and have the following information available: the version of the
database server or the client SDK.


-14506	CSS: CSM <csm-name>: unexpected return code <error-code>

A Communications Support Module returned an unusual completion status.

Contact IBM Technical Support or the CSM vendor and have the
following information available: CSS configuration files and sqlhosts
information for both the client and the database server.


-14507	CSS: cascade disconnected.

For Communications Support Module: the peer disconnected.

If the disconnection seems unexpected and the problem persists, contact IBM Technical Support or the CSM vendor and have the following
information available: CSS configuration files and sqlhosts information
for both the client and the database server.


-14508	CSS: error getting flags from CSM <csm-name>.

Communication Support Services internal error.

Contact IBM Technical Support or the CSM vendor and have the 
following information available: CSS configuration files and sqlhosts 
information for both the client and the database server.


-14509	CSS: CSM disconnected inside cascade.

For Communications Support Module: a Communications Support Module inside
the cascade disconnected.

If the disconnection seems unexpected and the problem persists, contact IBM Technical Support or the CSM vendor and have the following
information available: CSS configuration files and sqlhosts information
for both the client and the database server.


-14510	CSS: null buffer owner

Communication Support Services internal error.

Contact IBM Technical Support or the CSM vendor and have the 
following information available: CSS configuration files and sqlhosts 
information for both the client and the database server.


-14511	CSS: init function is not found in library <csm-name>.

A shared library that contains a Communications Support Module does not
export a Communications Support Module initialization function.

Contact IBM Technical Support or the CSM vendor and have the 
following information available: CSS configuration files and sqlhosts 
information for both the client and the database server.


-14512	CSS: shared library name is not specified.

The CSM library path name in the CSS configuration file is missing, or
there is an error.

Check the CSS configuration file.

If the problem persists, contact IBM Technical Support or the CSM 
vendor and have the following information available: CSS configuration 
files and sqlhosts information for both the client and the database
server.


-14513	CSS: CSM cannot finish a service operation.

A Communications Support Module is deadlocked. It requires more data 
without having an adequate data source. This is an internal error.

Contact IBM Technical Support or the CSM vendor and have the 
following information available: CSS configuration files and sqlhosts 
information for both the client and the database server.


-14551	CSS: CSM: no CSM name specified.

The user did not specify the name of a Communications Support Module 
to be used.

Check the CSM option field in the sqlhosts file, and the CSS
configuration file.


-14562	CSS: no buffer management function provided.

Communication Support Services caller did not provide a buffer management
function in I/O reference context to Communication Support Services.

Contact IBM Technical Support or the CSM vendor and have the 
following information available: CSS configuration files and sqlhosts 
information for both the client and the database server.


-14563	CSS: error writing data.

Communication Support Services internal error.

Failure performing data output.

Contact IBM Technical Support or the CSM vendor and have the 
following information available: CSS configuration files and sqlhosts 
information for both the client and the database server.


-14564	CSS: no output function provided.

Communication Support Services internal error.

Communication Support Services caller did not provide a data output 
function in I/O reference context to Communication Support Services.

Contact IBM Technical Support or the CSM vendor and have the 
following information available: CSS configuration files and sqlhosts 
information for both the client and the database server.


-14565	CSS: error reading data.

The database server or client's attempt to receive data to establish
Communication Support Services (CSS) context failed.

Probable causes of the error and corrective actions follow:

* This error usually occurs when the CSM option is turned on and the
  database server or the network is very busy, or when too many clients
  are trying to connect to the database server at once. The database 
  server might be taking so long to respond to a client that the client's
  connection request times out before the connection is complete. Or
  possibly a client terminates its connection attempt before the
  connection is completely established.

  Use the environment variable INFORMIXCONTIME or INFORMIXCONRETRY, or
  both, on the client side to increase the connection time and the number
  of retry attempts.

* Either the database server or the client application exits abnormally
  due to an error condition. The other side which is waiting for data
  from the failed side would report this error. Check the error on the
  failed side for the root cause of the problem.

  If the problem persists, contact IBM Technical Support or the CSM 
  vendor and have the following information available: CSS configuration
  files (concsm.cfg) and sqlhosts information for both the client and the
  database server.


-14566	CSS: no input function provided.

Communication Support Services internal error.

Communication Support Service caller did not provide a buffer management
function in reference context to Communication Support Services.

Contact IBM Technical Support or the CSM vendor and have the 
following information available: CSS configuration files and sqlhosts 
information for both the client and the database server.


-14567	CSS: buffer management function return code <error-code>.

Communication Support Services internal error.

Error while disposing of a data buffer provided by a Communication
Support Services caller.

Contact IBM Technical Support or the CSM vendor and have the 
following information available: CSS configuration files and sqlhosts 
information for both the client and the database server.


-14571	CSS: null CSS library context.

Communication Support Services internal error.

Communication Support Services caller passed a null library context to
Communication Support Services.

Contact IBM Technical Support or the CSM vendor and have the 
following information available: CSS configuration files and sqlhosts 
information for both the client and the database server.


-14572	CSS: null I/O reference context.

Communication Support Services internal error.

Communication Support Services caller passed a null I/O reference
context to Communication Support Services.

Contact IBM Technical Support or the CSM vendor and have the 
following information available: CSS configuration files and sqlhosts 
information for both the client and the database server.


-14573	SS: bogus iterator direction.

Communication Support Services internal error.

Contact IBM Technical Support or the CSM vendor and have the 
following information available: CSS configuration files and sqlhosts 
information for both the client and the database server.


-14574	CSS: error processing initialization string: <parameter-string>.

Communication Support Services could not get access to a Communications
Support Module configuration provided by a Communication Support
Services caller.

Check whether concsm.cfg exists. Check the configuration file, and
the CSM option field in the sqlhosts file. If the problem persists,
contact IBM Technical Support or the CSM vendor and
have the following information available: CSS configuration file (concsm.cfg)
and sqlhosts information for both the client and the database server.


-14575	CSS: invalid run-time parameters.

There is an error in the CSS configuration file (concsm.cfg).

Check CSS configuration file, and the CSM option field in the sqlhosts 
file. If the problem persists, contact IBM Technical Support or the
CSM vendor and have the following information available: CSS
configuration files (concsm.cfg) and sqlhosts information for both the
client and the database server.


-14576	CSS: null CSS context.

Communication Support Services internal error.

Communication Support Services caller passed a null context to
Communication Support Services.

Contact IBM Technical Support or the CSM vendor and have the 
following information available: CSS configuration files (concsm.cfg)
and sqlhosts information for both the client and the database server.


-14577	CSS: no registered output buffer owner.

Communication Support Services internal error.

Contact IBM Technical Support or the CSM vendor and have the 
following information available: CSS configuration files (concsm.cfg)
and sqlhosts information for both the client and the database server.


-14578	CSS: null output buffer owner.

Communication Support Services internal error.

Contact IBM Technical Support or the CSM vendor and have the 
following information available: CSS configuration files (concsm.cfg) 
and sqlhosts information for both the client and the database server.


-14579	CSS: unspecified buffer type.

Communication Support Services internal error.

Contact IBM Technical Support or the CSM vendor and have the 
following information available: CSS configuration files (concsm.cfg) 
and sqlhosts information for both the client and the database server.


-14581	CSS: CSM descriptor: syntax error.

The Communications Support Module descriptor contains a syntax error.

Check the Communications Support Module descriptor in the concsm.cfg
file. If the problem persists, contact IBM Technical Support or 
the CSM vendor and have the following information available: CSS 
configuration files (concsm.cfg) and sqlhosts information for both 
the client and the database server.


-14582	CSS: CSM descriptor: CSM redefinition.

A Communications Support Module with this name has already been defined.

Check CSS configuration file, and the CSM option field in the sqlhosts 
file.


-14583	CSS: CSM descriptor: CSM not defined.

The cascade descriptor refers to a Communications Support Module that
is not defined.

Check CSS configuration file, and the CSM option field in the sqlhosts 
file.


-14584	CSS: CSM descriptor: link method undefined.

Communication Support Services internal error.

Contact IBM Technical Support or the CSM vendor and have the 
following information available: CSS configuration files (concsm.cfg) 
and sqlhosts information for both the client and the database server.


-14585	CSS: CSM descriptor: unknown error <error-number>

Communication Support Services internal error.

Contact IBM Technical Support or the CSM vendor and have the 
following information available: CSS configuration files (concsm.cfg) 
and sqlhosts information for both the client and the database server.


-14586	CSS: CSM descriptor: nameless CSM!

A Communications Support Module descriptor does not specify the
Communications Support Module name.

Check CSS configuration file, and the CSM option field in the sqlhosts 
file.


-14587	CSS: CSM descriptor <csm-name>: <self-reference>.

Cascade descriptor recursively refers to itself.

Check CSS configuration file, and the CSM option field in the sqlhosts 
file.


-14588	CSS: CSM descriptor <csm-name>: CSM link type undefined.

Communications Support Module library name is not specified.

Check CSS configuration file, and the CSM option field in the sqlhosts 
file.


-14589	Cannot open <concsm-file> configuration file.

Check whether the CSS configuration file exists.


-14590	CSS: failed to acquire sync object.

Communication Support Services internal error.

Contact IBM Technical Support or the CSM vendor and have the
following information available: CSS configuration files (concsm.cfg) 
and sqlhosts information for both the client and the database server.


-14591	CSS: failed to release sync object.

Communication Support Services internal error.

Contact IBM Technical Support or the CSM vendor and have the 
following information available: CSS configuration files (concsm.cfg) 
and sqlhosts information for both the client and the database server.


-16300	Identifier is too long.

An identifier in this statement is too long for its context. Check if
you have omitted a separator between two identifiers, or select a
shorter identifier.


-16301	A syntax error has occurred.

A syntax error has been detected in a Debugger command. Check that you
have not misspelled or omitted a keyword or identifier, included an
extra command argument, or placed keywords out of sequence. Check if
you have omitted parentheses after a function name in a CALL command or
included them in a VIEW command. To display a two-page synopsis of all
the commands, enter help all.


-16302	An illegal character has been found in the command.

Characters in Debugger commands are restricted to letters, numbers,
blanks, underscores, and the special characters that are listed in the
section "Conventions for Command Syntax Notation" in the Debugger
manual. You might have pressed a key inadvertently, or you might have
introduced illegal characters when you edited a file that provided
input to a READ command. If you create or modify a .4db file with a
word-processing program, be sure to save it in nondocument or text-only
mode.


-16303	An illegal integer has been found in the command.

Your expression or search pattern includes a numeric string of more
than 50 characters. Repeat the command, specifying a shorter expression
or search pattern.


-16304	An illegal floating point number has been found in the command.

Your expression or search pattern includes a floating-point numeric
string of more than 50 characters or includes more than one decimal
point. Repeat the command, specifying a shorter expression or search
pattern, or fewer decimal points.


-16305	Memory allocation failed.

Not enough system memory is available to execute your command. Repeat
the command at another time, when other users are making smaller
demands on system memory. On DOS systems, you will need to free some
disk space.


-16306	Found a quote for which there is no matching quote.

You might have omitted a quotation mark from a name or string, or
included an extraneous quotation mark. Repeat the command, using an
even number of single (') or double (") quotes.


-16307	Quoted string is too long.

The maximum length of a quoted string is 256 characters. Repeat the
command with a shorter string.


-16308	Missing function name.

You must specify the name of a function in a CALL command. Repeat the
command, specifying the name of a function followed by left and right
parentheses. If the function requires arguments, include the list of
arguments within the parentheses, separating multiple arguments by
commas.


-16309	Internal buffer limit exceeded.

Your command has too many characters. A Debugger command can include no
more than 256 characters. If you are specifying an ALIAS, BREAK, or
TRACE command that includes many command lines within braces, you might
consider using nested aliases. You can cause a function key or a short
string to stand for hundreds of keystrokes by specifying it as the
alias of a list of aliases, each of which represents fewer than 256
characters. Another alternative is to use READ commands, rather than
aliases, to enter multiple commands.


-16310	Keyword expected.

You have omitted a required command option. Enter help all to display
the names of all the Debugger commands or refer to the manual.


-16311	Command name is not recognized.

You have misspelled the name of the command or improperly abbreviated
it. Enter help to see a display of the names of all the Debugger
commands. If the string name appears to be a valid command name, you
might have also pressed a nonprinting key when you entered it.


-16312	Missing or misplaced = sign.

The LET command always requires an equal sign (=) as does ALIAS
without the asterisk option. Repeat the command and be sure to use the
equal sign in the appropriate place.


-16313	Missing module line number.

In a BREAK or TRACE command, you specified the name of a module,
followed by a dot, followed by a noninteger. The module name must be
followed by a dot and a line number that is an integer.


-16314	Missing filename.

If the Debugger is already loaded, you have not specified a filename
after a READ command or after a command to redirect output to a file.
Repeat the command, specifying the name of an input or output file.

If you were at the system prompt, you used the -F command-line option
to invoke the Debugger, but you did not specify the name of an
initialization file. Repeat the command, but this time either omit the
-F option or specify the name of a .4db initialization file following
the -F option.


-16315	Missing ).

Either you omitted a right parenthesis from a command argument, or you
included a superfluous left parenthesis.


-16316	A small integer is expected.

You must supply a positive or negative integer as an argument of a GROW
command. Repeat the command, specifying the number of lines to be added
to the size of the window. The sum of this integer and the current size
must be in the range from 1 to L-6, where L is the number of lines that
your terminal can display (often 24).


-16317	Program variable name expected.

A Debugger LET command requires three arguments:

    *   The identifier of a program variable

    *   An equal sign (=)

    *   An expression whose value is assigned to the variable

The identifier could not be recognized in the command that you
entered.


-16318	Positive number or name expected.

The ENABLE, DISABLE, NOBREAK, and NOTRACE commands all require an
argument. This argument can be a breakpoint or tracepoint name,
reference number, function name, or the ALL option. If the argument
that you entered in the Command window looks valid, you might have also
pressed a nonprinting key.


-16319	Internal error - illegal command.

This message reflects an unexpected condition in the command-parsing
module of the Debugger. If the error recurs, note all
circumstances and contact IBM Technical Support.


-16320	Missing left brace.

You must use left and right brace characters ({ and }) in balanced
pairs.


-16321	Alias alias-name is an existing command keyword.

The name of an alias cannot be the complete form of a Debugger
command. (However, you can assign an abbreviated form of a command
keyword as an alias.) Repeat the command using another alias
identifier.


-16322	Missing directory list.

You used the -I command-line option when you invoked the Debugger, but
you did not specify a source-file search path. Repeat the command, and
either omit the -I option or specify a search path with it.


-16323	User cannot specify more than one directory list.

You can use the -I option only once on the command line. However, you
can specify more than one search path in the list following -I. Repeat
the command, listing all the desired source-file search paths,
separated by commas, following a single -I option.


-16324	User cannot specify more than one file name.

You can use the -F option only once on the command line. Repeat the
command specifying only one initialization file. After the Debugger
starts, you can enter READ commands to execute additional .4db files.


-16325	Missing or extra parameter.

You omitted or repeated a command-line option. Repeat the command after
you check the description of the fgldb command in the Debugger manual.

This message also appears if you attempt to pass parameters to the
program that is being debugged. The correct way to give command-line
parameters to the subject program is to include them with the run
command when you start the program.


-16326	Missing program name.

If you invoke the Debugger at the system prompt, you must include as an
argument the name of a compiled 4GL program (or else, in UNIX, use the
option -V to indicate that you want a display of only the software
version number). Repeat the command, specifying the name of a compiled
program this time.


-16327	Cannot locate file filename.

Possibly you omitted or misspelled the filename of a .4db input file
(either in a READ command or following the -F command-line option), or
you misspelled the filename or pathname of a .4gl source file in a VIEW
command or on the command line.

If filename is spelled correctly and names a file that exists, then you
might need to specify a complete pathname. You must specify the full
pathname of a file when you refer to a .4db file that is not in the
current directory, or to a .4gl source file that is not in the 
current directory or any directory that you specify with the 
-I command-line option.


-16328	Cannot read initialization file filename.

Although the Debugger found the file that you specified with the -F
parameter, it encountered an error when it tried to read from the
file. Check for operating-system error messages that might provide
more details. If the problem is not a hardware error, make sure that
your account has read access to the file (for instance, by displaying
its contents).


-16329	Pathname too long.

The Debugger will accept pathnames of up to 70 characters.


-16330	Cannot open file filename for reading.

Make sure that you specified the correct filename in your READ or VIEW
command, or after the -F option when you invoked the Debugger from the
command line. If the name was correct, the file might be damaged or
read protected. If you do not have permission to read it, refer to the
discussion of access privileges in your operating-system documentation,
or contact your system administrator.


-16331	Too many recursive aliases.

In some debugging tasks, aliases that reference other aliases can save
time or circumvent limits on the number of characters in a Debugger
command line. For example, you can specify alias1 to be a substring of
alias2, which can be a substring of alias3, and so forth up to alias5.
However, you cannot specify more than five levels of aliases between
your keystrokes and the fully expanded commands for which they stand.


-16332	Duplicate function name function-name.

The function name shown was found in a module that was being loaded.
However, a function of that name had already been seen in a module that
was loaded earlier. This situation is not allowed. Change the
application so that all functions in it have unique names.


-16333	Duplicate module name module-name.

The module whose name is shown is being loaded, but a module of that
name had already been loaded. Use the Program menu of the Programmer's
Environment to make sure that the program that is being debugged is
composed of only one copy of each module.


-16334	Internal error - null keyword encountered.

This message reflects a condition that was expected never to occur. If
the error recurs, note all circumstances and contact
IBM Technical Support.


-16335	Window can't be adjusted by number of lines specified.

The minimum number of lines in the Source window or in the Command
window one, not counting the Source window line that displays the
current module name. On a standard 24-line terminal, the maximum number
of lines in either window is 18, or L-6 where L is the number of lines
that the terminal supports.

The argument of a GROW command is not the new window size but the
increment to the current window size. To change the size of a window in
the Debugger screen, enter a GROW command to produce window sizes
within this range.


-16336	User must specify source file to view.

The VIEW command requires the name of a 4GL source file.


-16337	No previous search pattern.

You cannot enter a Search command without specifying a search pattern,
unless earlier in the same debugging session you specified a search
pattern. Repeat the command, specifying a valid search pattern.


-16338	Cannot continue execution.

You cannot invoke CONTINUE or STEP commands unless a 4GL program has
begun (but not terminated) execution. If the program is terminated
normally or by a fatal error, use CALL or RUN. After execution begins,
you must then suspend execution by a breakpoint (or, in UNIX
environments, by an Interrupt command) before you can invoke CONTINUE
or STEP. See also the section on "Active Functions and Variables" in
the Debugger manual.


-16339	Break or trace name name is not unique.

A name that you assign to a breakpoint or tracepoint in a BREAK or
TRACE command cannot duplicate the name of any existing reference point
(including disabled breakpoints or tracepoints). This message will also
appear after a READ command that sets a named breakpoint or tracepoint
if you read the same input file twice.


-16340	Invalid backslash encountered.

Your command includes a backslash symbol that cannot be interpreted as
a command-line continuation symbol. Repeat the command without invalid
backslashes.


-16341	Line number line-number not in specified module.

Your BREAK or TRACE command cannot specify a line number that is
greater than the line number of the last executable statement in the
specified module. If you specified no module name, the line number
cannot be greater than the last executable statement in your current
module. Check that you specified the correct module and line number.


-16342	Internal error - cannot set breakpoint.

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


-16343	Invalid module name module-name specified.

You specified a module that is not part of the current 4GL
program.Possibly you misspelled the name, or you are confusing the
names of modules or functions from different programs. Repeat the
command, specifying a valid name.


-16344	Invalid function name function-name specified.

You specified a function that is not part of the current 4GL program.
Possibly you misspelled the name, you are confusing the names of
modules or functions from different programs, or you neglected to
compile a program module that contains this function. Repeat the
command, specifying a valid name.


-16345	Cannot set breakpoint in 4GL library function or user C function.

You can set a breakpoint only at a function written in 4GL, not at a
function that is written in another language such as C or ESQL/C, and
not at the name of a built-in function.

To suspend program execution when a C function is called, set a
breakpoint by specifying the line number of the 4GL statement that
calls the C function, rather than specifying the name of the function.


-16346	Cannot open output file filename.

Check if the output file already exists but is damaged or write
protected. In UNIX, check that you have permission to write in the
specified directory (or in the current directory if you specified no
pathname).


-16347	Invalid breakpoint or tracepoint number or reference name specified.

You cannot specify a reference number in an ENABLE, DISABLE, NOBREAK,
or NOTRACE command with a zero or negative value, or a value for which
no corresponding breakpoint or tracepoint currently exists. You can
enter list break trace to display your current reference numbers.


-16348	Breakpoint or tracepoint name is not active.

You asked the DISABLE command to deactivate a breakpoint that is
already disabled. Check that you named the breakpoint that you
intended. You can enter list break trace to display your current
breakpoints and tracepoints.


-16349	Use nobreak for breakpoints and notrace for tracepoints.

You specified a breakpoint to the NOTRACE command or a tracepoint to
the NOBREAK command. Each command can deal only with its own objects.


-16350	Breakpoint/tracepoint already disabled/enabled or can't be determined.

The Debugger cannot find a corresponding breakpoint or tracepoint on
which to carry out your ENABLE or DISABLE command. You can enter list
break trace to display all your current reference points.


-16351	Variable variable-name could not be located.

The Debugger cannot reference a variable unless it is defined in a 4GL
module. For 4GL variables, check that you entered the variable name
correctly. If the variable is not in the current function or module,
you must qualify its name. See the section on "Scope of Reference" in
the Debugger manual. (This message can appear if you enter what you
intend to be a module name in a BREAK or TRACE command, but you omit
the dot at the end of the name.)


-16352	File filename has been modified. (.4gl is newer than .4go).

The Debugger executes the .4go module, but it displays lines from the
.4gl source file. Because the source file has been changed since the
module was compiled, the lines that the Source window displays might
not correspond to the statements in the compiled program.

If you change the source code in a .4gl file, you must recompile it. If
your program includes several modules, you must also concatenate the
compiled modules before you start debugging. Also check if files exist
with both the .4go and .4gi suffixes for this program. Even if your
.4go file is the appropriate recompiled version, the Debugger first 
attempts to interpret the .4gi version.


-16353	Executable command is invalid when executing tracepoint commands.

The list of command lines in your TRACE command includes a CALL,
CONTINUE, RUN, or STEP command. These commands are not supported within
a TRACE command.


-16354	Function function-name not found.

You specified a function that is not part of the current 4GL program.
Check if you have misspelled the name or if you are confusing the names
of functions from different programs. Make sure that your 4GL source
code defines and calls the function that you want to execute.


-16355	Function function-name requires parameters.

The function that the CALL command names is defined as taking one or
more parameters. You must enter a matching number of parameters in the
parentheses following the name of the function. If you are not sure
what parameters should be passed to the function, use a VIEW command to
display its source code.


-16356	Too many parameters passed to function function-name.

Your argument list in a CALL command includes more parameters than the
function is defined as receiving. If you are not sure how many
parameters should be passed to the function, you can use a VIEW command
to display the source code of the function.


-16357	Function function-name is not active.

You can display only variables that are defined in the active function.
This variable is defined in function name, which is not active.


-16358	Variable name expected.

A LET command requires as its first argument a variable name. Do not
put quotes around the name.


-16359	Cannot assign values to records; Assignments must be to record members.

A LET command can assign a value to a simple variable or to a specific
member of a record, but not to a whole record.


-16360	Cannot assign values to arrays; Assignments must be to array elements.

A LET command can assign a value to a simple variable or to a single
element of an array that a subscript in brackets designates. Enter help
let to see an example.


-16361	Invalid variable name variable-name.

The identifier variable-name is not the name of a variable. The
VARIABLE command requires the name of a variable. Check the spelling of
the name.


-16362	No current function.

No current 4GL function exists if you have not yet invoked a RUN or
CALL command. Even after RUN or CALL, no current function exists if
execution terminated normally, rather than being stopped by a
breakpoint, by an Interrupt or STEP command, or by a fatal error. Use
RUN or CALL to begin or restart program execution.


-16363	Variable in function function-name is not active.

You named a variable whose value is assigned by a function that has not
yet been called or by a function that has already returned. A LET or
PRINT command can refer to only an active variable; that is, one global
or assigned in a function that is currently executing (a function that
a WHERE command lists). When you enter a CALL command, you must
substitute a literal value for an expression that needs an inactive
variable.


-16364	Unknown option option.

The Debugger cannot identify an argument option in your command. Repeat
the command, specifying option differently. Enter help turn to display
the many options of TURN.


-16365	Breakpoint or tracepoint name is already active.

The ENABLE command has no effect on breakpoints or tracepoints that are
already enabled. Check that you entered the name or reference number
that you intended. If you did, and you still feel that name should have
been inactive, use list break trace or search the command buffer to see
if a previous DISABLE command deactivated the wrong breakpoint or
tracepoint.


-16366	Error occurred while trying to write to a file.

Either your file system is full, or a hardware error occurred. Use the
Escape feature to display the space that remains on your current
drive.


-16367	Need to specify a specific record member or array element.

You cannot use the name of an array as an argument of a CALL command.
You cannot use the unqualified name of an array or record in an
expression or as the object of a breakpoint or tracepoint. In all these
cases, you must use a subscript in brackets to specify a particular
array element, or the full name of a member of a record.


-16368	Expression contains variables from different functions.

You cannot combine variables from different functions in the same
expression. If you need to know the value of such an expression, you
must use PRINT to evaluate the variables from each function separately.
Then enter these values as constants in the BREAK, LET, or PRINT
command in place of the names of the variables.


-16369	Cannot initialize application device device-name.

You must specify the name of another terminal that has the same termcap
or terminfo entries as the terminal from which you invoked the
Debugger. The second terminal must be logged in under your account
name.


-16370	No application device specified.

You must specify the name of another terminal that has the same termcap
or terminfo entries as the terminal from which you invoked the
Debugger. (However, it cannot be the name of the device from which you
invoked the Debugger.) Enter tty from the terminal that you want to use
as your application device. Its screen will display its terminal
pathname. Repeat the APPLICATION DEVICE command, specifying an
appropriate terminal device name.


-16371	Read file not specified.

You must specify the name of a .4db file in a READ command.


-16372	Variable or expression expected.

You must identify what you want the Debugger to display in a PRINT
command. Repeat the command, specifying the name of a variable, record
or array, or an expression.


-16373	Cannot print or make assignments before execution has started.

You cannot use a LET command to assign a value to a variable, or a DUMP
or PRINT command to display information about a variable or function
until after execution starts. The same restriction applies after
execution has terminated normally or after a CLEANUP command. Invoke
the RUN or CALL command to begin execution and then repeat the
command. (You might have to set a breakpoint or, in UNIX, press the
Interrupt key to prevent normal termination.)


-16374	Break command contains 'if' without having a condition specified.

An expression must follow the IF keyword in a BREAK command. The
breakpoint has no effect while the condition is false (zero). Repeat
the command without IF, or with IF and a condition.


-16375	Cannot view C-library function function-name.

The VIEW command cannot display the source code of C functions or
ESQL/C functions. To examine C source code, you must use the Escape
feature and use an operating-system command that displays the C source
file.


-16376	Break or trace name name does not begin with an alpha character.

The first character in the name of a breakpoint or of a tracepoint must
be a letter. The subsequent characters can be letters, numbers, or
underscores ( _ ). Single apostrophes ( ' ) or double-quote characters
( " ) must enclose the name. Repeat the command, specifying a valid
name enclosed in quotes.


-16377	Cannot retrieve values of global variables before execution begins.

A PRINT command cannot display the value of a global program variable
until after execution begins. Invoke the RUN or CALL command to begin
execution and then repeat the PRINT command. In this situation, you
can specify constants or the names of global variables as arguments of
CALL. (You might have to set a breakpoint or press the Interrupt key
to suspend the program before normal termination.)


-16378	A small positive integer is expected.

You cannot enter a TIMEDELAY command without an argument, or with a
negative number as the argument. Repeat the command, specifying zero or
a positive integer as the number of seconds delay in the Source window
or Command window.


-16381	Cannot set breakpoint or tracepoint - no current module.

You cannot set a breakpoint or tracepoint without referencing a module
or function unless a program module is in the Source window. You
probably ignored an error message that appeared when you were unable to
load a 4GL source file.


-16382	Command file filename is currently being processed.

You used a READ command, either nested in an initialization file or in
the input file of another READ command, that refers to one of the
following:

    *   To itself

    *   To a previous READ command input file

    *   To a .4db initialization file that has not yet completed
        execution

You cannot execute a READ command that might create an infinite loop.


-16383	Number of nested read commands limit exceeded.

You started a READ command that invoked another, which invoked another,
and so on for more than ten nested READ commands. You must simplify
your arrangement of .4db command files.


-16384	Line in .4db file exceeds maximum length.

You cannot have more than 256 characters in a single Debugger command
line. If you are using semicolon (;) command separators, break the line
into separate commands.

Avoid Debugger commands that have more characters in a single line than
your screen or list device can display. Use the backslash continuation
symbol to divide long command lines into shorter segments, or use
aliases.


-16385	Call to function function-name failed.

The logic in your 4GL or C language function might be defective or
might not support the argument list that you specified in a CALL
command. Use the VIEW command to examine the source code of a 4GL
function. Use the Escape feature to examine the source file of a C
function.


-16386	Search string exceeds maximum length.

The maximum length of a search pattern specification whose first
character is a quote (") is 80 characters. The maximum length is 50
after any other first character. Check if you unintentionally pressed a
Search command key (? or /). Repeat the Search command, but specify a
shorter pattern.


-16387	Program is not currently being executed.

A WHERE command cannot display your active functions until after
execution begins. Invoke the RUN or CALL command to begin execution,
and then repeat the command. (You might first have to set a breakpoint
to suspend execution before normal termination.) See the topic "Active
Functions and Variables" in the Debugger manual.


-16388	Cannot create Debugger window.

You are probably out of memory. Take whatever steps your operating
system permits to increase the amount of available memory.


-16389	File name exceeds maximum length.

A filename cannot exceed 80 characters. If the name exceeds this length
(if the message is not the result of some mistake in punctuation), you
must rename it before you use it with the Debugger.


-16390	Error occurred while reading file filename.

The Debugger encountered an error while it was trying to read a 4GL
source file. Look for other messages (from the operating system, for
example) that provide more details about the failure. Check that the
file exists and that you have read permission.


-16391	Internal error - attempt to highlight invalid line number.

Repeat the command. If the error recurs, note all circumstances,
and contact IBM Technical Support.


-16392	No database name specified.

The database command requires the name of a database as its argument.


-16393	Expression or variable contains invalid substring.

The Debugger cannot interpret a reference to a substring of a character
value. Two numbers in square brackets specify a substring, as in the
following expression:

charvalue[n1,n2]

The name charvalue must be the CHAR(n) data type; n1 specifies the
first character of the substring, and n2 specifies the last. This error
message appears when n1 is larger than n, the length of the character
value, or when n1 is greater than n2.


-16394	Cannot access the help messages.

The Debugger help messages are in the file fgldb.iem. The INSTALL
program copies this file into the msg directory to which the
INFORMIXDIR environment variable points. Probably the file was damaged,
deleted, or read protected. Ask the system administrator to restore
your access to it.


-16395	Cannot compare BLOBs to any other value.

You asked the Debugger to compare a TEXT or BYTE variable in an
expression. You cannot use variables of these types for comparisons.
(However, you can refer to a substring of a TEXT variable.)


-16396	Cannot use BLOBs in this expression.

You asked the Debugger to use a TEXT or BYTE variable in an
expression. Variables of these types can only be displayed with PRINT
or DUMP statements, or assigned null values using the LET statement.


-16397	Can print only BLOB variables with program =.

The PROGRAM = clause of the PRINT statement is used to specify an
external program (for instance, a text editor) that can display the
contents of a BYTE or TEXT value. The clause is not relevant with any
other type of data.


-16398	Illegal BLOB file name. Null name not permitted.

The 4GL LOCATE statement has located the BYTE or TEXT variable in a
file. However, the filename for the variable is a null string. Because
the file does not exist, the Debugger cannot do anything with it.


-16399	No program name specified.

The PROGRAM = clause of the PRINT statement is used to specify an
external program (for instance, a text editor) that can display the
contents of a BYTE or TEXT value. In this command, the keyword was
specified, but no program name followed it.


-16400	Bad file name name.

The filename that is shown is not appropriate for its intended use. It
is too long, contains improper special characters, or is null. Enter an
appropriate filename.


-16401	No program loaded.

A program was unloaded with the command UNLOAD PROGRAM, but no program
was subsequently loaded with the command LOAD PROGRAM.


-19800	Role name already exists as a user or role.

You cannot create a role name identical to any user that is known to
the system or a user or role that is known to the database. Change the
name of the role.


-19801	Role name cannot be <reserved word>.

You cannot create a role name that is a reserved word. The reserved
words are connect, resource, dba, dbsecadm, select, update, delete, insert,
index, references, alter, execute, default, none, null, and public.
Change the name of the role.


-19802	Name cannot appear as both the role grantor and the role grantee.

A role cannot be granted to itself, either directly or indirectly.
Verify if the role grantor and grantee are the correct roles. Check for
roles already granted to the role that is being granted.

-19803	Only the DBA, or a user granted the role with the WITH GRANT OPTION can
grant, revoke, or drop a role.

Check your privileges and permissions. Only a DBA can grant, revoke, or drop a
default role to a user.

For example, a DBA can grant the default role to a user by running the following statement:
GRANT DEFAULT ROLE privilege TO user1;

A user who is granted a role with the WITH GRANT OPTION can
grant, revoke, or drop a role, optionally with the WITH GRANT OPTION to another user.

For example, a DBA can grant a privilege with the WITH GRANT OPTION to a user by running the following statement:
GRANT privilege TO user1 WITH GRANT OPTION;

Then that user can grant privileges to other users, for example, by running the following statements:
GRANT privilege TO user2 WITH GRANT OPTION;
GRANT privilege TO user3;

However, a non DBA user cannot grant the default role to a user. For example,
the following statement fails:
GRANT DEFAULT ROLE privilege TO usr2;

-19804	The role does not exist.

For a role to exist, the DBA must first use the CREATE ROLE statement
to create the role. For a list of roles, see the informix.sysusers
table.


-19805	No privilege to set to the role.

Check your privileges and permissions. A user or role must be granted a
role using the GRANT statement before the role can be set.


-19806	Cannot grant database privileges or default role to a role.

A role cannot be granted database-level privileges. Use the GRANT
statement to grant database-level privileges to the user or to PUBLIC.

A default role cannot be granted to a role. Use the GRANT DEFAULT ROLE
statement to grant default role to the user or to PUBLIC.

-19807	Cannot grant privileges to a role WITH GRANT option.

A user that is granted a role with the WITH GRANT option cannot in turn
grant the role to a user and include the WITH GRANT option. Use the
GRANT statement without the WITH GRANT option.


-19808	User name already exists as a rolename in the database.

A user cannot open a database as a role name that is the same as the
user name. Role names and user names must be unique in the database. If
you want to access the database, contact the DBA of the database. The
DBA can drop the role if necessary.


-19809	Invalid password to access the database.

Use the correct password.


-19810	Cannot set database password for a role.

You can set a database password only for a user.


-19811	DBpassword should not exceed 8 characters.

Choose a database password with a length that does not exceed eight
characters.


-19812	Illegal usage of replication shadow columns.

The specified operation cannot be performed on the replication shadow
columns.


-19813	Cannot add CRCOLS when table already has replication shadow columns.

The specified table was created with the WITH CRCOLS syntax and
therefore already has the replication shadow columns defined. You
cannot alter this table to add CRCOLS to it.


-19814	Cannot drop CRCOLS when table does not have replication shadow columns.

The specified table was not created with the WITH CRCOLS syntax, or it
has not been altered to include the CRCOLS. You cannot alter this table
and drop the CRCOLS because these columns do not exist on this table.


-19815	Cannot create a temp table with CRCOLS.

You cannot create a temporary table to include the replication shadow
columns.


-19816	Cannot perform this operation on a table defined for replication.

The specified operation cannot be performed on a table if Enterprise
Replication is defined on the table. If you want to perform the 
specified operation, you must delete all replicates defined on this table.

If the table is being captured using the Change Data Capture interface,
then you must use CDC API functions to stop data capture and disable 
full row logging on the table.


-19819	An ON-clause has an invalid table reference.

One of the ON clauses that you specified refers to a table that is not
within the scope of the join to which the ON clause belongs.

Check that the tables that you specify in the join criteria and join
filters of each ON clause are applicable to the join of which they are
a part.


-19820	Informix OUTER JOIN and ANSI JOIN in the same query block.

You cannot have Informix OUTER JOIN and ANSI JOIN in the same query
block. Informix OUTER JOIN and ANSI JOIN are two different mechanisms
and should not be combined in a single query. You can use only one of
these.


-19821	Cannot rename a table using a synonym.

You cannot rename a table using a synonym. Specify the <table-name> instead.

If you intend to rename the synonym, then drop the existing synonym and
create a new one.


-19822	Cannot alter or truncate a table or drop a table or view using a synonym.

You cannot perform an alter or drop on a table or view using a
synonym. Specify the <table-name> or <view-name> instead.

Or, to drop or alter the table or view using the synonym, first unset the environment variable USETABLENAME.

If you intend to drop the synonym, specify DROP SYNONYM <synonym-name> instead.


-19823	Cannot use EXECUTE PROCEDURE INTO with the INSTEAD OF trigger.

You cannot use EXECUTE PROCEDURE INTO with the INSTEAD OF
trigger.


-19824	Cannot use BEFORE or AFTER action with INSTEAD OF trigger.

You cannot use  BEFORE or AFTER with the INSTEAD OF trigger.  You
must use FOR EACH ROW with an INSTEAD OF trigger.


-19825	Cannot use WHEN clause if INSTEAD OF trigger is defined.

You cannot use the WHEN clause with INSTEAD OF triggers since you cannot
specify trigger restrictions for INSTEAD OF trigger statements.  The
trigger will always replace the specified action.


-19826	Cannot create INSTEAD OF trigger for a select event.

You can create an INSTEAD OF trigger for an insert, update, or delete
event, but not for a select event.


-19827	Cannot create an INSTEAD OF trigger on a table.

You can create an INSTEAD OF trigger on a view only and not on a base
table or synonym.


-19828	ORDER BY column or expression must be in SELECT list in this context.

You cannot omit the ORDER BY column or expression from the SELECT list in
the following situations:

*   The UNIQUE or DISTINCT operator is used.
*   The UNION, INTERSECT, or MINUS operator is used.
*   The query selects into a temporary table (SELECT ... INTO TEMP).
*   A distributed query references a server and requires ORDER
    BY columns to be in the SELECT list is used.
*   The query uses the GROUP BY clause with aggregate expressions. 
*   The expression uses an alias to a column substring.

Revise the SQL statement to follow these rules.


-19829	LVARCHAR column size is too big.

This statement specifies a width for a LVARCHAR column that exceeds 32,739. Use the TEXT,
BYTE or CLOB data type, which allow character strings of 2 gigabytes (TEXT
or BYTE)or 4 terabytes (CLOB)for a column.   

Otherwise, check the statement for typographical errors.


-19830	This operation is not allowed on a table where the type is raw.

An unsupported operation (for example, trying to create a constraint) was 
attempted on a RAW table.

You must alter the RAW table to a STANDARD table if you want to
perform an operation that RAW tables do not support. 


-19831	Referential constraints are not allowed on tables of type raw.

The CREATE TABLE statement contains constraints that are not allowed for RAW 
tables. Check your statement to make sure you do not define these kinds of 
constraints on RAW tables.
This error could also occur if you try to alter a STANDARD table to RAW but 
the table has referential constraints.

You must alter the RAW table to a STANDARD table if you want to use 
referential constraints.


-19832	Cannot alter table type in combination with other alter table
options.

You cannot alter the table type in combination with other ALTER 
TABLE options.

You must use separate statements to alter the table type with an ALTER
TABLE statement. It cannot be done in combination with other ALTER
TABLE options.


-19833	Table type raw not allowed together with access method.

You cannot associate a user-defined primary access method with a raw 
(nonlogging) table.

If you want to associate a user-defined primary access method with your
table, omit the keyword RAW from the CREATE TABLE statement. If you want
a raw table, omit the USING <access_method> clause from the CREATE TABLE
statement.


-19834	Error in unload due to invalid data : row number.

The column in a row that is being unloaded through an UNLOAD statement
has invalid characters for the current locale settings. The output file
that is specified in this UNLOAD statement has invalid data on the specified
line. 

Take corrective action before you can use the unload file for loading the data back into the database.
Delete or repair the row under consideration.


-19835	Cannot create an attached index with a collation different from
that of DB_LOCALE.

You cannot create an attached index when the collation set differs from
that of DB_LOCALE.

Use set collation to change the collation value to the DB_LOCALE value before
attempting to create an attached index.


-19836	Extent size is too large.  Maximum size of an extent is %sk.

The maximum size specified for a disk extent (either the EXTENT SIZE or
the NEXT SIZE clause) is 16 MB pages on 9.40 and the maximum size of a chunk
on 9.3x and lower.


-19837	Invalid PDQ priority value specified.

The value of PDQPRIORITY must range from -1 to 100.


-19838	Invalid partition was accessed by dirty reader.

The application had a dirty reader that tried to access an invalid
partition. The partition does not exist or was dropped when trying to
lock it.


-19839	Invalid OPTCOMPIND value specified.

The value of OPTCOMPIND must range from 0 to 2.


-19840	Invalid session environment variable.

The identifier cannot be set in a session using the SET ENVIRONMENT command. 

-19841	Error In Specifying Automatically (Server) Generated Keys.

Possible causes are: column does not exist in table, or column is not
a SERIAL or SERIAL8 or BIGSERIAL. Other causes are null String, null 
array, empty array or unknown constant. (Valid constants are 
NO_GENERATED_KEYS or RETURN_GENERATED_KEYS).

-19842	Invalid value specified for the USELASTCOMMITTED parameter.

You can set the USELASTCOMMITTED configuration parameter to one of the
following values : 'Dirty Read', 'Committed Read', 'All' or 'None'.

-19843	Invalid IFX_AUTO_REPREPARE value specified.

The value of IFX_AUTO_REPREPARE must be either 0, 'off', or 'OFF' (to disable 
the Auto Re-prepare feature) or else 1, 'on', or 'ON' (to enable this feature, so 
that the database server automatically re-prepares a prepared object or 
re-optimizes an SPL routine, after a table that the prepared object or SPL 
routine references has been renamed or after its schema has been modified.

-19844	Tables of type RAW are not allowed in a logged database on an HDR primary
server.

DML statements on RAW tables are not logged, and therefore not replicated to
the HDR secondary server. If you need RAW tables on an HDR primary server,
you must temporarily disable HDR. To use RAW tables on an HDR primary server:
1. Stop replication by shutting down the HDR secondary server.
2. Convert the HDR primary server into standard mode with the onmode -d standard command.
3. Create or alter the appropriate tables to type RAW.
4. Perform the required DML statements on the RAW tables.
5. Convert the RAW tables back to STANDARD tables.
6. Perform a level-0 archive. 
7. Convert the server to an HDR primary server with the onmode -d primary command.
8. Physically restore the secondary server from the level-0 archive.
9. Restart replication by running the onmode -d secondary command on the secondary server.

-19845	You cannot alter the logging mode of a table in a logged database on a primary server.

You cannot change a logged table in a logged database on a primary server 
into a RAW, nonlogging table because changes to that table would no longer
be replicated to secondary servers. You cannot change a RAW, nonlogging 
table to a logged table in a logged database on a primary server because 
the secondary servers would not be able to process replicated transactions 
for that table.

-19846	You cannot access a nonlogging table (%s) in a logged database on a secondary server.

Nonlogging tables are not replicated to secondary servers and are therefore
not available on secondary servers.

-19847	Incorrect session optimization environment variable.

The specified identifier cannot be set in a session using the SET OPTIMIZATION
ENVIRONMENT statement. 

-19848	Incorrect STAR_JOIN value specified.

The value for the STAR_JOIN optimization environment must be 'DISABLED',
'ENABLED', or 'FORCED'. Use the value 'DISABLED' to prevent star joins in this
session.  Use the value 'ENABLED' to allow star joins in this session. Use the
value 'FORCED' to favor star joins for all queries whenever possible in this
session.

-19850	Invalid OPT_SEEK_FACTOR value specified.

The value for OPT_SEEK_FACTOR must range from 0 to 25.

-19851	Invalid OPT_CPUCOST_FACTOR value specified.

The value for OPT_CPUCOST_FACTOR must range from 0 to 20.

-19990	Use of CRCOLS must be consistent across the table hierarchy.

If the parent table in a table hierarchy has been created with the
WITH CRCOLS option for replication shadow columns, then all
subtables must also be created with the WITH CRCOLS option.
Similarily, if the parent table in the table hierarchy has not been
created with the WITH CRCOLS option, then all subtables cannot
be created with the WITH CRCOLS option.

-19989	Enterprise Replication is not in active state

The specified operation cannot be performed on a table defined for
replication if Enterprise replication is not in active state.
If you want to perform the specified operation, you must start Enterprise
Replication.

-19991	Table is not in Enterprise Replication alter mode

The specified operation cannot be performed on a table defined for
replication if the table is not in Enterprise Replication alter mode.
If you want to perform the specified operation, you must put the table
in Enterprise Replication alter mode.

This error can also be returned when user attempts to modify primary key
constraint of a replicated table without setting alter mode manually 
using 'cdr alter --on DB1:OWNER1.TABLE1' command. Make sure to close the
current transaction before attempting manual alter mode.

-19992	Cannot perform insert/delete/update operations on a replicated table while the table is in alter mode

The specified operation cannot be performed on a table defined for
replication if the table is in Enterprise Replication alter mode.
If you want to perform the specified operation, you must unset the
Enterprise Replication alter mode.

-19993	Cannot modify a replicated column

The specified operation cannot be performed on a table defined for
replication. If you want to perform the specified operation,
you must remove the column from the replicate definition, alter the column
then add the column again to the replicate definition through
Enterprise Replication remastering process.

-19994	Cannot drop a replicated column while the column is part of replicate definition

The specified operation cannot be performed on a table defined for
replication. If you want to perform the specified operation,
you must remove the column from the replicate definition through
Enterprise Replication remastering process.

-19995	Enterprise Replication error encountered while setting alter mode. See the message log file to get the Enterprise Replication error code.

Enterprise Replication error encountered while performing the
specified operation. See the message log file to get the
Enterprise replication error code. If you want to perform the
specified operation, correct the Enterprise Replication problem
and reattempt the operation.

-19996	Enterprise Replication error encountered while unsetting alter mode. See message log file to get the Enterprise Replication error code

Enterprise Replication error encountered while performing the
specified operation. See the message log file to get the
Enterprise replication error code. Correct the problem and clear
the alter mode manually through cdr command line utility.

-19997	Cannot alter table type to STANDARD, failed to write a log record.

The table type could not be altered to STANDARD because the
system failed to write a log record for this operation.
Check the accompanying ISAM error code for more information.

-21000	Invalid byte in codeset conversion input.

Code-set conversion cannot recognize data that is being passed between
the server and the client. Check DB_LOCALE and CLIENT_LOCALE settings
in your initialization file or your environment.


-21001	Incomplete character at end of codeset conversion input.

Code-set conversion cannot recognize data that is being passed between
the server and the client. Check DB_LOCALE and CLIENT_LOCALE settings
in your initialization file or your environment.


-21002	Codeset conversion output buffer too small.

An internal error occurred during code-set conversion. Note all
observed behavior and any other error message. Check with the system
administrator to ensure that the system is functioning properly.


-21003	Cannot open codeset conversion file.

The system could not open a code-set-conversion file. Check that
INFORMIXDIR points to a valid directory that contains the proper
code-set- conversion subdirectory.


-21004	Internal error in codeset conversion.

An internal error occurred during code-set conversion. Note all
observed behavior and any other error message. Check with the system
administrator to ensure that the system is functioning properly.


-21005	Inexact character conversion during translation.

One or more characters were translated using a substitution character. 
Translation in the reverse direction would not produce the original string.
Make sure that the values of the CLIENT_LOCALE and DB_LOCALE environment variables are compatible.


-21400	brand: Invalid serial number and/or key.

Check that the serial number and key you entered during installation
correspond with those on the keycard. Restart installation, or contact IBM Technical Support for verification of your serial number
and key.


-21401	brand: Cannot open file -- file probably not in current directory.

The file might not have been transferred correctly from media. Reload
the product from the media and reinstall. If the error recurs,
note all circumstances and contact IBM Technical Support.


-21402	brand: Location is incorrect for file.

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


-21403	brand: file already branded.

For some products, installation cannot be restarted unless you reload
files from the media. Reload files from the media before you run the
installation script.


-21404	brand: Identifier string multiply found in file.

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


-21405	brand: Serial number is wrong length in file.

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


-21406	program: Cannot open file.

The file might not have been transferred correctly from media. Reload
the product from the media and reinstall. If the error recurs,
note all circumstances and contact IBM Technical Support.


-21407	Error reading from file.

The file might not have been transferred correctly from media. Reload
the product from the media and reinstall. If the error recurs,
note all circumstances and contact IBM Technical Support.


-21408	Error writing to file.

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


-21410	verstamp: Cannot create stream for file.

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


-21411	verstamp: Identify string not found in file.

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


-21412	verstamp: Warning: string found number times in file.

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


-21413	Cannot open file; system error number.

The file might not have been transferred correctly from media. Reload
the product from the media and reinstall. If the error recurs,
note all circumstances and contact IBM Technical Support.


-21414	Unexpected EOF on file.

The file might not have been transferred correctly from media. Reload
the product from the media and reinstall. If the error recurs,
note all circumstances and contact IBM Technical Support.


-21501	ISAM error: SE/C-ISAM was unable to insert a row because the file
already contains 2^31 -1 (2147483647) rows.

You have reached the maximum number of rows for this file.

Delete some rows before you add more rows.


-21502	ISAM error: The transaction log-file format is
incompatible with the SE/C-ISAM version being used.

This could be because the transaction log file was created using an older
version of SE/C-ISAM.

Ensure that the transaction log file is used by the same version of
SE/C-ISAM that created it, so that log-file format is compatible.


-21524	ISAM error: Cannot create a temporary operating system 
file to use in a sort.

The database server could not create a temporary operating
system file for this sort. 

Consider setting the PSORT_DBTEMP environment variable to a secure directory 
with a minimum of 200 MB of free space.


-21525	ISAM error: Cannot write to a temporary operating system 
file during a sort.

The database server could not write to the temporary operating system file, 
most likely because the file directory is out of space.


-21600	Usage: mkmessage [-v] [-dMACRO] input_file output_file.

This message indicates an internal error. You probably used incorrect
syntax in the command line. Check the usage that the message indicates,
and try again. If the error recurs, note all circumstances and
contact IBM Technical Support.


-21601	Source and object files the same, would overwrite 'filename'.

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


-21602	Input file could not be opened.

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


-21603	Output file could not be created.

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


-21604	Error writing to result file filename.

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


-21605	Error writing to output file filename.

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


-21606	Error reading from temporary text file.

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


-21607	Number of errors counted: number.

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


-21608	You have exceeded the limits of 8 defines. Extra defines will be
ignored.

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


-21609	Unmatched ^ELSE at line line-number.

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


-21610	Unmatched ^ENDIF at line line-number.

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


-21611	Syntax error at line line-number. Expect ifdef, ifndef, else or endif
after '^'.

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


-21612	Unexpected EOF. Expected an ^endif.

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


-21613	Syntax error at line line-number. Expect ifdef, ifndef, else or endif.

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


-21614	Expected identifier not found following ^ifdef or ^ifndef at line
line-number.

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


-21615	Output file could not be opened for read/write.

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


-21616	Temporary text file could not be created.

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


-21617	Temporary text file could not be opened for read/write.

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


-22201	variable-name is not a unique record component.

The name in the record has already been used, so it is not unique.
Change the name of the record variable and try again.


-22202	This feature is not supported in this preprocessor.

The IBM Informix ESQL/COBOL preprocessor does not support the feature that
this statement requests. Check the IBM Informix ESQL/COBOL
Programmer's Manual for information on preprocessor functionality in
this version.


-22203	Invalid keyword name on the PICTURE clause.

The PICTURE clause contains an illegal keyword, as the error message
specifies. Check the syntax of the variable declaration for the PICTURE
clause and try again.


-22204	COBOL group USAGE clause contradiction (variable OF record).

The USAGE clause for a record component does not match the USAGE clause
of the record group to which it belongs. Usage clauses for the elements
of a record are inherited from the group record declaration. A mismatch
causes an error.


-22205	COBOL group SIGN clause contradiction (variable OF record).

The SIGN clause of the record component does not match the SIGN clause
of the record group to which it belongs. Sign clauses for the elements
of a record are inherited from the group record declaration. A mismatch
causes an error.


-22206	INTERNAL ERROR: Bad COBOL function call.

Check that the CALL syntax is correct and verify whether data is
corrupted before you call IBM Technical Support for assistance.


-22207	Host variables may only be 01-49 or 77 level.

ESQL/COBOL supports only level 01 through level 49 COBOL variables and
record types, plus COBOL variable level 77 if your COBOL compiler
supports it. Check the level number of the host variable to see if it
is valid.


-22208	Host variables may not be USAGE INDEX.

Change the USAGE clause for the host variable so that it is not USAGE
IS INDEX and try again. IBM Informix ESQL/COBOL does not support USAGE
INDEX.


-22209	No hyphen allowed in SQL object identifier, cursor name, or
statement id.

You must change the name of the object identifier, cursor, or statement
ID so that it does not contain a hyphen.


-22210	Repeated data item variable-name is not expanded.

The ESQL/COBOL preprocessor does not expand the record that contains
repeated data items. Change the record and try again.


-22227	Invalid COBOL compiler compiler-name.

The compiler that is specified is not supported. Check the
IBM Informix ESQL/COBOL Programmer's Manual for information on compilers
that this version supports.


-22229	Host object variable-name not declared.

The specified host variable was accessed but was not declared. You must
declare the host variable in the declaration section and try again.


-22230	Identification error on host symbol variable-name.

The host variable has been declared more than once. Check for the
duplicate variable declaration and redeclare one of the variables.


-22231	Record nesting limit exceeded.

The maximum number of levels for valid record nesting is 100. Reduce
the number of nested records and try again.


-22232	variable-name is not a component of record-name.

The variable name is not part of the components of the record. Check
the record declaration and its components to verify that you have
correctly declared the variable with this name.


-22233	compiler-name does not allow array elements to be passed as parameters.

Unless you are using either the Ryan McFarland RM/COBOL 85 compiler or
the Micro Focus COBOL/2 compiler, you cannot pass array elements as
parameters. Use one of the specified compilers, or rewrite this section
of code that involves arrays.


-22234	Buffer provided by user is too small. Result will be truncated to fit
buffer.

The buffer that is used to store the result of the operation of the
function is too small to hold the entire result. As much of the result
as possible was copied, and extra characters were truncated. Increase
the buffer declaration so that it can hold larger strings.


-22245	Invalid BCD type (rvalhlvar).

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


-22246	INTERNAL ERROR: BCD buffer too small (rhlvarval).

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


-22247	Invalid BCD type (rhlvarval).

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


-22248	Date conversion error: rfmtdate in toadate.

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


-22249	Internal error: Invalid integer size (toaint).

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


-22250	BCD buffer length is too small.

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


-22251	Error in decimal conversion (frombcd: deccvasc).

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


-22252	Error in decimal conversion (frompbcd: deccvasc).

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


-22253	Error in C var to val conversion (frombcd).

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


-22254	DATE type variable size is too large.

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


-22255	Date conversion error: rdefmtdate.

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


-22256	Error in C var to val conversion (fromadate).

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


-22257	Error in C var (short) to val conversion.

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


-22258	Error in C var (int) to val conversion.

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


-22259	Error in C var (long) to val conversion.

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


-22260	Internal Error: Invalid integer size.

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


-22261	Error in decimal conversion (valtoasc: deccvasc).

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


-22262	Error in decimal conversion (valtoasc: dectoasc).

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


-22263	Internal error: Invalid C type (valtoasc).

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


-22264	Host data items must not be alphanumeric or numeric edited items.

Change the declaration of the PICTURE clause to one of the following
valid categories for host variables: alphabetic, numeric, or
alphanumeric. IBM Informix ESQL/COBOL does not support alphanumeric edited
or numeric edited items.


-22265	A sign clause was specified for an unsigned numeric type.

If you have a SIGN clause but did not specify "S," the compiler cannot
process the data type. Check whether the variable is signed or
unsigned and declare it accordingly.


-22266	Type not supported by ESQL/language-name for compiler-name.

The type that is specified for the variable is not supported for the
compiler name that is used. Check your compiler documentation for valid
type declarations.


-22268	P in the PICTURE clause not implemented.

Currently, IBM Informix ESQL/COBOL does not support the declaration P
(decimal scaling position) in a PICTURE clause.


-22274	Host variables may not be USAGE POINTER.

Change the USAGE clause for the host variable so that the host variable
is not a pointer and try again.


-22275	INTERNAL ERROR: Temporary buffer length has been exceeded.

The string or buffer parameter to the function is longer than the
internal buffer. Change the string or buffer declaration so that the
string or buffer has a smaller maximum size.


-22276	Floating point variables are not allowed.

This compiler does not support floating-point numbers.


-22277	Invalid storage mode. Assuming byte-storage mode.

Micro-Focus COBOL/2 has either byte or word storage mode for USAGE
COMP/BINARY variables. Check the current storage mode. To specify byte
or word storage, set the INFORMIXCOBSTORE environment variable, as the
IBM Informix Guide to SQL: Reference discusses.


-22278	Cannot open COBOL 'whenever' file file-name.

The directory in which the COBOL temporary files are being created
(usually /tmp or whatever is specified when the DBTEMP environment
variable is set) is full. No room is available to open new files. Check
this directory and free some space. Since Version 5.01, the
IBM Informix SE database server uses the DBTEMP environment variable, but
IBM Informix Dynamic Server and IBM Informix OnLine Dynamic Server do not.


-22279	Cannot open COBOL temp file file-name.

The directory in which the COBOL temporary files are being created
(usually /tmp or whatever is specified when the DBTEMP environment
variable is set) is full. No room is available to open new files. Check
this directory and free some space. Since Version 5.01, the
IBM Informix SE database server uses the DBTEMP environment variable, but
IBM Informix Dynamic Server and IBM Informix OnLine Dynamic Server do not.


-22280	Line is too long.

The SQL string in the EXEC SQL statement is too long to fit in the
internal buffer. The maximum SQL string length should be less than
32,767.


-22281	FILLER variables can only be used as fields in a record.

In IBM Informix ESQL/COBOL, the FILLER keyword must identify all filler
items. Filler variables can only be used as fields in a record and must
also have a PIC clause associated with them. Check the declaration of
the variable and change its name.


-22282	Invalid numeric data length.

The length and precision of the data is too large or otherwise
incorrect. The length cannot be greater than 18, and the precision
cannot be greater than the length.


-22283	Numeric value from database cannot be stored in COBOL data item.

In IBM Informix ESQL/COBOL, a number of conditions can cause this error
message to appear. The value is too large, data cannot contain a
negative value, a signed value cannot be stored in an unsigned data
item, or a float overflow has occurred.


-22284	Incorrect levels of indirection on variable variable-name.

A pointer variable is used with the wrong number of level indirection.
Check the indirection levels in the ESQL statement.


-22285	Incorrect dimension on table variable variable-name.

An entry in a multidimensional array is illegally accessed. Indexes for
multidimensional arrays must be specified when used. For example,
suppose a host variable is declared in ESQL/COBOL as follows:

  01 VARA X(10) OCCURS 3 TIMES.

It will return an error if it is used in an SQL statement as follows
because you must specify the index into which you want to insert (that
is, VARA(1)):

INSERT INTO TAB VALUES ($VARA)


-22554	Field type field-type-name has been used out of context.

This error is generated when, for example, the field type TYPE is used
where COUNT is expected. Check the syntax and usage for
system-descriptor field names in the discussion of the ALLOCATE
DESCRIPTOR and GET DESCRIPTOR statements in the IBM Informix
Guide to SQL: Syntax. For a discussion of the system-descriptor area,
see the manual for your embedded-language product.


-22555	The type of host-variable does not match the expected type for this
field.

This error is generated when a variable is expected to have a certain
type but does not. For example, an TYPE field accepts only integer
types when a value is assigned to it or retrieved from it. If the
variable type is not integer, an error is generated. Check the syntax
and usage for system descriptor field names in the discussion of the
ALLOCATE DESCRIPTOR and GET DESCRIPTOR statements in the
IBM Informix Guide to SQL: Syntax. For a discussion of the system
descriptor area, see the manual for your embedded-language product.


-22558	This feature is not supported in the IBM Informix Dynamic Server.

The IBM Informix Dynamic Server does not support this feature. Check the IBM Informix ESQL/C Programmer's
Manual or IBM Informix Guide to SQL Syntax for information on the DESCRIBE
statement functionality of this server version.


-22559	SQLUNKNOWN is invalid data type, need to be set valid data type.

If the database server cannot infer the type of parameter in an
expression, the DESCRIBE INPUT statement returns SQLUNKNOWN as
the data type.  Before statement execution, you must set a valid
SQL data type to replace SQLUNKNOWN.


-22600	Invalid SQL type type-name. Internal error.

For this IBM Informix ESQL/FORTRAN preprocessor error, check the data type
of the symbol. Type-name must be a valid SQL data type.


-22601	Whenever raise not supported by ESQL/FORTRAN.

You cannot specify RAISE in a WHENEVER statement. Delete the statement,
or substitute a valid option.


-22602	Whenever perform not supported by ESQL/FORTRAN.

You cannot specify PERFORM in a WHENEVER statement. Delete the
statement, or substitute a valid option.


-22617	STRUCTURE declaration not supported.

This message indicates an IBM Informix ESQL/FORTRAN preprocessor error.
The STRUCTURE statement is supported only with the Green Hills and Sun
versions of FORTRAN that include the VMS FORTRAN extensions.


-22618	RECORD statement not supported.

This message indicates an IBM Informix ESQL/FORTRAN preprocessor error.
The RECORD statement is supported only with the Green Hills and Sun
versions of FORTRAN that include the VMS FORTRAN extensions.


-22619	UNION declaration not supported.

This message indicates an IBM Informix ESQL/FORTRAN preprocessor error.
The UNION statement is supported only with Green Hills and Sun versions
of FORTRAN that include the VMS FORTRAN extensions.


-22620	Host object host variable not declared.

This message indicates an IBM Informix ESQL/FORTRAN preprocessor error. An
SQL statement contains a host variable that has not been declared. Host
variables are declared in the same way as other FORTRAN variables
except that the declaration must be contained in a declaration block
between a pair of EXEC SQL BEGIN DECLARE SECTION and EXEC SQL END
DECLARE SECTION statements. You cannot use the SQL data types to
declare host variables. You must specify a FORTRAN data type or one of
the IBM Informix ESQL/FORTRAN data types when you declare a host variable.
The data type of the host variable should reflect the data type of the
database column to which it corresponds.


-22621	Out of Memory for symbol table.

This message indicates an IBM Informix ESQL/FORTRAN preprocessor error.
The preprocessor is unable to allocate more memory for the symbol
table. If possible, reduce the number of processes that are running at
the same time as the preprocessor or reduce the number of symbols that
your FORTRAN program defines.


-22622	Type type-name is unknown.

This message indicates an IBM Informix ESQL/FORTRAN preprocessor error.
The symbol is not a declared type. Declare type-name and try again.


-22623	Data type length must be greater than zero.

This message indicates an IBM Informix ESQL/FORTRAN preprocessor error.
The length that is specified for the data type is less than zero.
Assign a length to the data type and try again.


-22624	INTEGER type length must be 2 or 4.

This message indicates an IBM Informix ESQL/FORTRAN preprocessor error. A
FORTRAN host variable of type INTEGER must be declared as INTEGER*2 or
INTEGER*4. Correct the length of the INTEGER declaration and try
again.


-22625	REAL type length must be 4 or 8.

This message indicates an IBM Informix ESQL/FORTRAN preprocessor error. A
FORTRAN host variable of type REAL must be declared as REAL*4 or
REAL*8. Correct the length of the REAL declaration and try again.


-22626	Empty SQL statement.

This message indicates an IBM Informix ESQL/FORTRAN preprocessor error.
SQL statements and precompile instructions that are embedded in a
FORTRAN program must be preceded by the keywords EXEC SQL. No statement
terminator is required, except when you specify a multiple-statement
object in a PREPARE statement.


-22628	Record component component-name not declared.

This message indicates an IBM Informix ESQL/FORTRAN preprocessor error.
Examine the related structure declaration for this record. The
component-name element does not exist as it is typed within the
structure declaration.


-22635	INTERNAL ERROR. Temporary buffer length has been exceeded.

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


-22645	Incorrect dimension on array variable.

This message indicates an IBM Informix ESQL/FORTRAN preprocessor error.
The symbol is not an array variable or the dimension is incorrect.


-22646	Incorrect levels of indirection.

This message indicates an IBM Informix ESQL/FORTRAN error message. An
incorrect index has been accessed in your array. Check the usage of
your array. See error message -33203 for a similar message in
IBM Informix ESQL/C.


-22647	Use of non-SQL descriptors not supported by ESQL/FORTRAN.

This message indicates an IBM Informix ESQL/FORTRAN preprocessor error. In
ESQL/FORTRAN, only system descriptor areas that have been allocated
with the ALLOCATE DESCRIPTOR statement can be used in a DESCRIBE
statement.


-22648	Line is too long.

This message indicates an IBM Informix ESQL/FORTRAN preprocessor error.
The SQL statement is too long (greater than 32 kilobytes). In standard
FORTRAN format, any nonblank character, except for zero, in column 6 is
a continuation symbol. In UNIX-style FORTRAN format, an ampersand in
column 1 is the continuation symbol. Shorten the SQL statement and try
again.


-22649	Unmatched END statement-name statement.

This message indicates an IBM Informix ESQL/FORTRAN preprocessor error. An
END STRUCTURE/UNION/MAP statement does not have a corresponding
STRUCTURE/UNION/MAP statement. Check that each END STRUCTURE/UNION/MAP
statement is paired with a corresponding STRUCTURE/UNION/MAP statement
and try again.


-22650	Missing END statement-name statement.

This message indicates an IBM Informix ESQL/FORTRAN preprocessor error. A
STRUCTURE/UNION/MAP statement does not have a corresponding END
statement. Check that each STRUCTURE/UNION/MAP statement is paired with
a subsequent END statement and try again.


-23075	Unable to open the log file.

The ESQL processor cannot open the log file that is specified on the
command line. The log files are specified after the -log option. Check
that you have specified the log file correctly.


-23076	Incompatible file extension for '-e' option.

The filename that is specified after the -e option on the command line
for the ESQL processor has an incompatible file extension. Verify the
file extension and try again.


-23077	Missing target file name.

No output filename has been specified after the -o option on the
command line for the ESQL processor. Re-enter the command and
specify an output file.


-23078	Incompatible file extension for '-c' option.

The filename that is specified after the -c option on the command line
for the ESQL processor has an incompatible file extension. Verify the
file extension and try again.


-23079	Missing log filename.

No log filename has been specified after the -c option on the command
line for the ESQL processor. Enter the command again and specify a log
file.


-23080	Memory model conflict.

More than one memory model option has been specified on the command
line for the ESQL processor. Try again and specify only one memory
model option.


-23081	Compiler option conflict.

More than one compiler option has been specified on the command line
for the ESQL processor. Try again and specify only one compiler
option.


-23082	Missing list filename.

No list filename has been specified for the -f option on the command
line for the ESQL processor. Enter the command again and specify a
list file.


-23083	Application option conflict.

More than one application option has been specified on the command line
for the ESQL processor. Try again and specify only one application
option.


-23084	Cannot open ESQL response file 'file-name'.

The ESQL processor cannot open the ESQL response file that is specified
on the command line.


-23085	Unable to allocate memory.

The ESQL processor cannot allocate memory dynamically.


-23086	Unable to spawn the preprocessor.

The ESQL processor cannot spawn the ESQL preprocessor.


-23087	No source or object file.

You have not specified either a source file or an object file on the
command line for the ESQL processor. Re-enter the command and
specify either a source file or an object file.


-23088	Windows application or DLL needs a module definition file.

No module definition file has been specified on the command line for
the ESQL processor. Re-enter the command and specify a module
definition file.


-23091	Cannot open file 'file-name'.

The ESQL processor cannot open the specified file. Check that you have
specified the file correctly.


-23092	Unable to spawn the compiler.

The ESQL processor cannot spawn the compiler.


-23093	Unable to spawn the linker.

The ESQL processor cannot spawn the linker.


-23094	Unable to spawn the resource compiler.

The ESQL processor cannot spawn the resource compiler.


-23095	Unable to create the temporary file.

The ESQL processor cannot create the temporary file. Delete the
temporary files that start with "eq" in the specified directory.


-23096	Missing command line parameter file.

No command-line parameter file has been specified for the ESQL
processor. Try again and specify a command-line parameter file.


-23097	Too many parameters.

Too many parameters were specified on the command line for the
ESQL processor. Re-enter the command and specify fewer parameters.


-23098	No source file.

No source file has been specified on the command line for the ESQL
processor. Re-enter the command and specify a source file.


-23099	'file-name' has incompatible file format.

The specified list file or response file has an incompatible file
format for the ESQL processor.


-23100	Compilation errors.

The ESQL processor has terminated processing due to one or more
compilation errors.


-23101	Unable to load locale categories.

An invalid locale name was supplied for the locale initialization.
The environment variable specifying the locale category has a wrong
value. 

Check the value of the corresponding environment variable,
CLIENT_LOCALE or DB_LOCALE. If this error was encountered when using 
the "SET COLLATION" statement, check that the value passed to the 
statement is a valid locale. If this error was encountered when using
the "SET NO COLLATION" statement, check that the session's default 
locale file is still available. Also check if INFORMIXDIR points to
a valid directory where IBM Informix products are installed.  

If a client application receives this error when it requests a database
server connection, check that the client and database locales are
compatible. They are compatible if a valid locale exists on the server
computer with the name lg_tr.codeset@mod, where lg_tr (language and
territory) and mod (locale modifier) are from the CLIENT_LOCALE and
codeset is from the database locale (from the DB_LOCALE, if it is set,
or as stored in the database).



-23102	Memory allocation failed during locale processing.

The program cannot allocate enough memory for the internal code-set
conversion buffer or control table. Only a client process returns this
error. Rerun the program after you free some memory.


-23103	Code-set conversion function failed due to an illegal sequence or
invalid value.

Illegal or invalid characters occur in the character string. The
program could not execute the code-set conversion on the characters
that this string contains. Reexamine the input string for illegal or
invalid characters and reexecute the program.


-23104	Error opening required code-set conversion object file.

No object code-set conversion (definition) file exists for the two
given code sets. The environment variables DB_LOCALE or CLIENT_LOCALE
might have been set to the wrong value, which caused an error condition
to be generated. The files might also be missing, or the information
that they contain might be garbled. Check the value of the environment
variable CLIENT_LOCALE or DB_LOCALE. The object conversion files
usually have the .cvo extension.

When accessing via drda protocol, this error may also mean that the client 
application is trying to bind a value which is in a different encoding than 
database locale.  Set environment variable GL_USEGLU=1 prior to bringing
up the server to initialize the appropriate converters required to handle
the codeset conversions. (for example, when using setCharacterStream() 
interface to bind the LOB data through JCC, the input data may come with 
double byte encoding and may mismatch with DB_LOCALE)


-23105	The current database engine does not support code-set conversion.

The code-set conversion in the database server is not yet implemented.
Check the value of the CLIENT_LOCALE, SERVER_LOCALE, or DB_LOCALE
environment variable.


-23106	Invalid argument for the code-set conversion initializing function.

An invalid argument has been passed to the internal code-set conversion
initializing function. Check the logic of your application program.


-23107	DBLANG and CLIENT_LOCALE environment variables are incompatible.

DBLANG is the environment variable that points to the location where
the message files are stored. Usually, the value of DBLANG corresponds
with that of CLIENT_LOCALE. The value of DBLANG could be en_US.8859-1
or a value set according to X/Open standards for locale definitions.
The locale is a set of files that defines the characteristics of a
particular language (for example, French or Japanese), a particular
territory (for example, France or Japan) and a particular code set (for
example, MS Windows Code Page 1251 or ISO 8859-1). An example of a
locale name for the French language in Canada that is encoded using ISO
8859-1 would be fr_CA.8859-1, and a locale name for the Japanese
language that is encoded using EUC (Extended Unix Code) would be
ja_JP.ujis.

Reexamine the value of the environment variables, DBLANG and
CLIENT_LOCALE.


-23108	An error occurred during locale structure creation.

The locale initialization failed. The program cannot allocate enough
memory for the internal locale table. The memory might be exhausted due
to the execution of too many processes. Rerun the program after you
free some memory.


-23109	Invalid locale specification.

A locale, with which all locale-sensitive processing occurs, is
established on both the client and database server side. This
processing locale is set with information from environment variables
and from data that is stored in the database. An internal function
could not compose the long form of the NLS locale in its internal
array. Not all the categories (LC_COLLATE, LC_CTYPE, LC_MONETARY,
LC_NUMERIC, LC_TIME) could be composed. Check the value of the
environment variables CLIENT_LOCALE and DB_LOCALE. Also check the value
of INFORMIXDIR.


-23110	An error occurred during environment variable processing.

The GLS initialization function encountered an error while it was
processing the list of environment variables. The environment variables
are read onto a stack for further use by various internal functions.
The environment variable values are read either from resource files or
directly as shell environment variables. While the GLS initialization
function was processing these values, it might have been encountered
the following exceptions: end-of-file, not-found, illegal-value,
unknown-value, null-value, max-path exceeded. Any of these exceptions
can cause this error. Check the semantics and contents of the defined
environment variables.


-23111	Internal error. Illegal argument for locale initialization.

An internal function used an illegal argument while it was initializing
the GLS structures. The arguments can only be one of the following:
FE_PROC, BE_PROC, or SESS_PROC. If the error recurs, see your
Administrator's Guide or Reference to acquire additional diagnostics and
contact IBM Technical Support with the diagnostic information.


-23112	Place holder for invalid GCV argument.

During code-set conversion, if both the input buffer and the output
buffer are of NULL length, code-set conversion does not proceed, and
the conversion process terminates after this error is returned. Check
the logic of your application program.


-23113	Place holder for unknown GCV error.

During code-set conversion, if the input buffer is of NULL length, this
error is returned. Code-set conversion requires an input buffer and an
output buffer. The input buffer is the string passed to the database
server from the application program as a result of an insert or update.
Check the logic of your application program.


-23114	Place holder for GCV truncation.

During code-set conversion of tuple data, if the output buffer is not
large enough to hold the result of a code-set conversion, and the
resultant string could not be truncated into the available buffer
successfully, this error is returned. This error occurs in the SQL
interface layer between the application program and the database
server. Increase the size of the host variable that will hold the
possibly expanded string that is returned after code-set conversion
from a SELECT or FETCH statement.


-23115	Code sets of the locale categories are not the same.

On the client side or database server side, the locale is established
with the following precedence of announcement mechanisms, the
CLIENT_LOCALE, LANG, LC_*, and the English locale, en_US.8859-1. Given
this precedence, the six categories of the processing locale are set in
the following way: COLLATION, CTYPE, TIME, MONEY, NUMBER, MESSAGES.

The GLS initialization function returned this error because an invalid
locale was specified. The locale specifier is usually the environment
variables. Check the value of INFORMIXDIR and CLIENT_LOCALE.
INFORMIXDIR should point to a valid directory where the IBM Informix
products are installed. This directory should also contain
the /gls directory where the locale and code-set files reside.


-23190	Multibyte database name is not allowed in this system.

The SE server does not allow a multibyte database name in the specified
environment. Change the database name.


-23194	Code-set conversion restore failed.

The database server has failed to restore the code-set conversion table
to the previous state. Not enough memory is available to hold table
information. Reexecute the program after you free some memory.


-23195	Reset locale failed. Connection refused.

The database server failed to change the database processing locale
to en_US.8859-1. The server refused the connection. Not enough
memory is available in the server for the new locale table. Reexecute
the program after you free some memory.


-23196	Unknown locale in selected database.

The locale information that is stored in the system catalog systables
of the selected database does not match the value that the DB_LOCALE
environment variable specifies. Check the value of DB_LOCALE. If it is
correct, drop the database and re-create it with the correct value of
DB_LOCALE.


-23197	Database locale information mismatch.

The locale information GL_CTYPE or GL_COLLATE in the system catalog of
the specified database does not match the locale information in the
specified environment variable DB_LOCALE. Check the value of
DB_LOCALE.


-23198	GL-COLLATE information is missing from the system catalogs.

No locale information GL_COLLATE exists in the system catalog. The
system catalog systables might be missing or corrupted. Drop the
database and re-create it with the correct value for DB_LOCALE.


-23199	GL_CTYPE information is missing from the system catalogs.

No locale information GL_CTYPE exists in the system catalog. The system
catalog systables might be missing or corrupted. Drop the database and
re-create it with the correct value for DB_LOCALE.


-23501	CM error: Operation not supported on secondary coservers.

A Configuration Manager (CM) service that can be requested only on a 
CM coserver was made on a non-CM coserver. Contact IBM Technical 
Support.


-23502	CM error: Cannot allocate memory.

The database server detected an error when it attempted to acquire a block 
of virtual memory from the operating system.

Contact IBM Technical Support.


-23503	CM error: No such dbspace.

A request for information about a dbspace, to delete a dbspace, to
either add or drop a chunk from a dbspace, or to read dbspace
information during startup failed because of an invalid or unused
dbspace name.

Correct the name of the dbspace and resubmit the request. Contact IBM Technical Support.


-23504	CM error: dbspace already exists.

An attempt to create a dbspace failed because a dbslice or dbspace of
that name already exists.

Select a name that is not in use and resubmit the request using the new
name, or drop the existing dbspace or dbslice and resubmit the request
using the same name.


-23505	CM error: dbspace table overflow.

A new dbspace or dbslice was requested, but the maximum number allowed
is already in use. Drop one or more obsolete dbspaces or dbslices and
resubmit the request.


-23506	CM error: No such chunk.

A request to drop a chunk or to read chunk information during
startup failed because the specified pathname and offset do not
match any existing chunk.

Correct the pathname and offset of the chunk and resubmit the request.
If necessary, contact IBM Technical Support.


-23507	CM error: Chunk already exists.

A request to add a chunk to a coserver failed because the specified
pathname and offset are already configured for an existing chunk.

To add a new chunk in addition to the existing one, either choose a
different pathname for it or specify an offset beyond the end of the
existing chunk within the same pathname.


-23508	CM error: Chunk table overflow.

An attempt to create a new chunk failed because the maximum allowed
number of chunks is already in use.

Drop one or more obsolete chunks and resubmit the request.


-23510	CM error: Cannot drop first chunk.

An attempt to delete the first chunk in a dbspace failed because
deleting the first chunk in a dbspace is an invalid operation.

Check which chunk should be dropped. To drop the dbspace after the
chunk, simply drop the dbspace.


-23511	CM error: No such dbslice.

A request for information about a dbslice, to delete a dbslice, to
identify a dbslice as the basis for a logslice, or to read dbslice
information during startup failed because the referenced dbslice
is not in use.

Correct the name of the dbslice and resubmit the request. If
necessary, contact IBM Technical Support.


-23512	CM error: dbslice already exists.

A request for a new dbslice failed because a dbslice of that name
already exists. Select a name that is not in use and resubmit the
request with the new name.


-23513	CM error: dbslice table overflow.

A request for a new dbslice failed because the maximum allowed number
is already in use. Drop one or more obsolete dbslices and resubmit the
request.


-23514	CM error: No such cogroup.

A request for information about a cogroup, to delete a cogroup, to add
a coserver to a cogroup, to drop a coserver from a cogroup, to obtain a
list of the coservers in a cogroup, or to read corrupted cogroup
information during startup failed because the cogroup or coserver name
is invalid.

Correct the name of the cogroup and resubmit the request. If
necessary, contact IBM Technical Support.


-23515	CM error: Cogroup already exists.

An attempt to create a new cogroup failed because the name of the new
cogroup is already being used by another cogroup. Choose a cogroup name
that is not already in use and resubmit the request.


-23516	CM error: Cogroup table overflow.

An attempt to create a cogroup or add a coserver to a cogroup fails
because the maximum allowed number is already in use.

Drop one or more obsolete cogroups or cogroup members and resubmit the
request.


-23517	CM error: Cannot drop or alter a system defined cogroup.

A request to drop cogroup_all fails because cogroup_all cannot be
dropped.

Avoid requests to drop cogroup_all.


-23518	CM error: No such coserver.

An invalid coserver ID caused the failure of a request to acquire
information about a named coserver, to add or delete a coserver, to add
a dbspace on a coserver, or to read coserver information during
startup.

Correct the name or ID of the coserver and resubmit the request. If
necessary, contact IBM Technical Support.


-23519	CM error: Coserver already exists.

A request to add a new coserver failed because the coserver with that ID
is already in use by the current instance of the database server.

Recheck the coserver ID before proceeding.


-23520	CM error: Coserver table overflow.

A request to create a coserver fails because the maximum allowed number
is already in use.


-23521	CM error: An illegal identifier was specified.

A request fails because it uses an invalid identifier for cogroup or
cogroup member (coserver).

For valid Identifier syntax, refer to your Administrator's Guide or
the Feature Enhancements Guide for your database server.

-23522	CM error: An illegal range identifier was specified.

A request incorrectly specifies the range for a cogroup or coserver name. 
The correct format for the range component is %r(first..last), with 'first' 
a lower number than 'last'. Embedded white space is not allowed.
Correct the specification and resubmit the request.


-23523	CM error: An uneven number of cogroup members was specified.

A request to create a range of cogroups from a range of coservers
specified a count of coservers that is not an even multiple of the
number of cogroups to create.

Adjust the numbers in the range of existing coservers or in the desired
cogroups and resubmit the request.


-23524	CM error: Nested cogroups not supported.

A request to create one or more cogroups specified at least one cogroup
member that is actually a cogroup, rather than a coserver. Cogroup
nesting is not supported.

Determine which of the cogroup members specified are themselves
cogroups, replace their names with valid coserver names, and resubmit
the request.


-23525	CM error: All available IDs for fragmented tables are in use.

A request to create a fragmented table failed because the maximum
allowed number is already in use.

Drop one or more obsolete fragmented tables and resubmit the query.


-23526	CM error: Unable to create a mutex.

Contact IBM Technical Support for help in addressing this internal
error.


-23527	CM error: No such logslice.

A request for information about a logslice, to delete a logslice, or to
read logslice information during startup failed because an invalid or
unused logslice name was specified.

Correct the name of the logslice and resubmit the request. If
necessary, contact IBM Technical Support.


-23528	CM error: Logslice already exists.

A user attempted to create a logslice when a logslice of that name
already exists.

Select a name that is not in use and resubmit the request using the new
name, or drop the existing logslice and resubmit the request using the
same name.


-23529	CM error: Logslice table overflow.

A request to create a new logslice failed because the maximum number
allowed is already in use.

Drop one or more obsolete logslices and resubmit the request.


-23530	CM error: No such DBspace or DBslice.

You have issued a command to the CM system to perform an operation on
a dbspace or dbslice with the given name, but the system cannot find
it. Make sure you have identified the dbspace or dbslice correctly,
and that you are not using some other object name where a dbspace or
dbslice name is required.


-23547	CM error: This would create two chunks that would overlap
each other.

You have issued a command to the CM system that tries to create
two chunks that will overlap.

Examine your command and re-issue it so that the two chunks are not
overlapping.


-23548	CM error: This would create two chunks with the same name
and offset

You have issued a command to the CM system that tries to create
two chunks that have exactly the same name and offset. This happens
most commonly when you create chunks on different coservers (you might
want to use "%c" formatting).

Examine your command and re-issue it so that the two chunks have
distinct names.


-23549	CM error: This would create a chunk that would overlap its
own mirror.

You have issued a command to the CM system that tries to create a chunk
that overlaps its mirror chunk.  This happens most commonly because of  
arithmetic mistakes in offset calculation.

Examine your command and re-issue it so that the chunk and its mirror
will not overlap.


-23550	CM error: This would create a chunk that would overlap an
existing chunk.

You have issued a command to the CM system that tries to create a chunk
that would overlap an existing chunk.

Review the location and extent of existing chunks to find the overlap,
and change your command so that it will not overlap any existing chunk
space.


-23551	CM error: Cannot alter a Logslice whose Dbslice has not
been altered.

You have issued a command to alter a logslice that resides in a dbslice
that has not been altered. This happens most commonly because of an
incorrect logslice name, or because of being mistaken about whether a
dbslice has been altered.


-23552	The specified dbspace (%s) does not exist.

The specified dbspace (%s) does not exist. You have issued a command
to the CM system to perform an operation on the specified dbspace, but
the system cannot find it.

Make sure you have identified the dbspace correctly, and that you are
not using a dbslice name, or some other object name, where a dbspace
name is required.


-23553	CM error: Number of read-locks held is less than zero.

This internal error should not occur. If the error recurs, note
all circumstances and contact IBM Technical Support.


-23554	CM error: Number of write-locks held is less than zero.

This internal error should not occur. If the error recurs, note
all circumstances and contact IBM Technical Support.


-23555	CM error: Number of write-options held is less than zero.

This internal error should not occur. If the error recurs, note
all circumstances and contact IBM Technical Support.


-23556	CM error: Attempt to get write-lock without write option.

This internal error should not occur. If the error recurs, note
all circumstances and contact IBM Technical Support.


-23557	CM error: Attempt to drop write-lock without write option.

This internal error should not occur. If the error recurs, note
all circumstances and contact IBM Technical Support.


-23558	CM error: Attempt to drop write option without having it.

This internal error should not occur. If the error recurs, note
all circumstances and contact IBM Technical Support.


-23559	CM error: CM activity detected during reversion.

CM activity (table, dbspace, dbslice, logslice, or chunk creation or 
deletion) detected during CM reversion. No such activity should be
taking place. If it is, the reversion might not succeed.

Check whether there are any unintended connections to the database
server and then restart reversion.


-23561	CM error: Can't delete a Coserver ID that is not the highest ID.

You cannot delete a coserver if another coserver has a higher coserver ID.

Delete specific-purpose coservers in the reverse of their coserver ID
number order.


-23562	CM error: Can't delete a Coserver ID that exists in the
$ONCONFIG file.

You cannot delete a coserver if it is still defined in the $ONCONFIG
file.

Before you can use onutil to remove a coserver, you must edit
the $ONCONFIG file and remove the COSERVER section that defines
the coserver you want to delete.


-23563	CM error: Can't enable a capability on a coserver configured
as fully capable.

Fully capable coservers do not have capabilities that you can enable
or disable.


-23564	CM error: Can't disable a capability on a coserver configured
as fully capable.

Fully capable coservers do not have capabilities that you can enable
or disable.


-23565	CM error: Capability is not configured on coserver.

The coserver you specified is not configured with the capability you
specified.

You cannot enable or disable this capability for this coserver.


-23566	CM error: Coserver counts are inconsistent, only the delete
coserver command is allowed.

The number of coservers specified in the $ONCONFIG file is less
than the number of coservers that the database server discovered.

You must delete one of the coservers.


-23567	CM error: Dynamic Coserver Management is not currently
supported.

The IFMX_DCM_ENABLED environment variable is not set to 'Y'.

To enable Dynamic Coserver Management, set the IFMX_DCM_ENABLED environment
variable to 'Y'.


-23568	CM error: Deleting fully-capable coserver is not supported.

You can delete only coservers configured with specific capabilities.


-23569	CM error: Permanent dbspaces are not supported on a target
coserver.

The target coserver is a specific-purpose coserver that cannot host
permanent table data.


-23570	CM error: XTM must start in idle state to allow removing
coservers from the system.

Global transactions were left running when you shut down the
database server.

Global transactions must be complete before you shut down the database
server to remove specific-purpose coservers.


-23571	CM error: Coserver 1 must be a fully-capable coserver.

You cannot define coserver 1 as a specific-purpose coserver.


-23572	CM error: The Capabilities for coserver <coserver-id> have
changed.

The coserver definition in the $ONCONFIG file does not match the
capabilities stored in the safewrite area when the coserver was
added. You cannot change the defined capabilities of a
specific-purpose coserver just by editing the $ONCONFIG file.

You must first return the $ONCONFIG file to its previous coserver
definitions and then remove the coserver, using the documented
method. After you remove the coserver, you can add it again,
using the documented method to define the capabilities you
want it to have.


-23573	CM error: The coserver type specified is invalid.

This error is internal and indicates that some function querying
the CM subsystem for information about coservers has supplied an
invalid coserver qualifier.

If the error recurs, note all circumstances and contact
IBM Technical Support.


-23600	Backup Manager Error: Out of memory.

This could be caused by either not enough main (operating system) memory or not
enough internal (database server) memory. Refer to your operating-system
documentation or increase the virtual memory size (SHMVIRTSIZE), the size of 
the added segments SHMADD) or your total shared memory size (SHMTOTAL).


-23601	Backup Manager Error: A coserver can support at most one storage
manager.

A coserver id has been used for the BAR_WORKER_COSVR onconfig file parameter
in more than one storage manager section. Edit the onconfig file so that the 
values of BAR_WORKER_COSVR for each storage manager section do not overlap.
 

-23602	Backup Manager Error: A dbspace backup/restore is already active for
this dbspace.

An attempt was made to backup or restore a dbspace that was already queued
in the Backup Manager. Check the status of backup and restore sessions using 
"onstat -g bus" and "onstat -g bus_sm".


-23603	Invalid session name.

The specified backup or restore session name is invalid. This
error displays if you use an invalid session name in the 
onbar [off | on | -d] session_name command, onbar -q session_name
command, or onutil EBR block command.

Use onstat -g bus to list the valid backup and restore session names and
retry the previous command with a valid session name. 


-23604	Backup Manager Error: This coserver does not support a storage manager.

An attempt was made to start an onbar_w process on a coserver where no
storage manager was configured. Check the BAR_WORKER_COSVR parameters in 
the onconfig file to determine where onbar_w processes can execute. You can 
also use onstat -g bus_sm to obtain this information. 


-23605	Backup Manager Error: An unrecognised worker id was supplied.

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


-23606	Backup Manager Error: This worker is already waiting or busy.

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


-23607	Backup Manager Error: Wait on a session which is already waiting.

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


-23608	Backup Manager Error: No object allocated to worker.

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


-23609	Backup Manager Error: Type different to that allocated to worker.

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


-23610	Backup Manager Error: Internal error - No workers ready to run.

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


-23611	Backup Manager Error: Internal error - Object not allocated.

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


-23612	Backup Manager Error: Internal coding error.

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


-23613	Backup Manager Error: The session id is already in use by another
session.

A session ID supplied to onbar is the same as a currently active
session ID. Resubmit the onbar command using a different session ID. 


-23614	Backup Manager Error: Priority must be between 0 and 100.

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


-23615	Backup Manager Error: Unrecognised event type. 

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


-23616	Backup Manager Error: The set placement failed for this object.

The storage manager where the backup for an object was taken could not
be determined at restore time. Make sure the storage manager configuration is 
the same as it was when the backup was taken.


-23617	Backup Manager Error: That session is already suspended.

An attempt was made to suspend a session that is currently suspended. Check
the status of current backup and restore sessions using onstat -g bus.


-23618	Backup Manager Error: That session is not suspended.

An attempt was made to resume a session that was not suspended. Check the
status of current backup and restore sessions using onstat -g bus.


-23619	Backup Manager Error: The supplied placement does not match a
configured storage manager.

The storage manager that was used to back up an object is no longer configured.
Make sure the storage-manager configuration is the same as it was when the
backup was taken.


-23620	Backup Manager Error: The supplied timestamp value disagrees with
another existing value.

The point-in-time value for a logical restore is different than the
point-in-time value of a restore that is currently active. Check currently 
active backup and restore operations using onstat -g bus and onstat -g bus_sm.


-23621	Backup Manager Error: The session has been aborted.

An attempt was made to modify a backup and restore session that was 
aborted. Check currently active backup and restore operations using 
onstat -g bus and onstat -g bus_sm.


-23622	Backup Manager Error: Internal error: mt_create_mutex failed.

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


-23623	Backup Manager Error: Internal error: mt_create_thread failed. 

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


-23624	Backup Manager Error: Internal error: xmf_bf_alloc failed. 

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


-23625	Backup Manager Error: Internal error: xmf_reqt failed. 

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


-23626	Backup Manager Error: Internal error: xmf_resp failed. 

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


-23627	Backup Manager Error: The Dbspace is unknown to the system. 

The dbspace that you have specified does not exist in your system.
Is the storage space that you specified a dbslice instead of a dbspace?
Create the necessary dbspace or, if you have a dbslice, modify your statement 
and try again.


-23628	Backup Manager Error: Internal error: cm_dbs_info failed. 

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


-23629	Backup Manager Warning: There are no storage managers configured. All
operations will be queued.

No storage managers are configured in the onconfig files. Backup and restore
requests will be queued by the Backup Manager but will not be processed
until a storage manager is configured. Configure at least one storage manager 
in the onconfig file.


-23630	Backup Manager Error: Internal error: xmf_send failed. 

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


-23631	Backup Manager Error: A worker onbar died while processing this object. 

Refer to the OnBar logs for more information about this error.


-23632	Backup Manager Error: There are running backups/restores on a
specified coserver - all coservers can't be blocked.

You cannot block the coserver because backups or restores are currently active.

Wait until the backup or restore completes and retry the onutil EBR BLOCK
command.


-23632	The backup manager cannot do any backups or restores while
LOG_BACKUP_MODE is set to NONE. 

Change the setting of the LOG_BACKUP_MODE parameter in your configuration 
file to MANUAL or CONT and retry the request.


-23633	The specified logfile does not exist.

An invalid logstream or logid was specified for a backup or restore. Check 
command-line parameters to onbar and retry the operation.


-23634	Multiple storage managers backing up a single logstream is currently
not supported.

A logstream ID has been used for the BAR_LOG_COSVR onconfig file parameter
in more than one storage manager section. Edit the onconfig file so that 
the values of BAR_LOG_COSVR for each storage manager section do not overlap.


-23635	BACKUP Manager Error (23635)

The start_worker.sh shell script file in the etc sub-directory is
missing or its execute permission is revoked. The Backup Manager
cannot start a worker to process ON-Bar commands because it cannot
execute the start_worker.sh file.

Make sure start_worker.sh exists and can be executed by informix or root.


-23636	Invalid coserver ID.

The specified coserver ID is invalid. This error can occur with an
onutil EBR block, logical-log backup, or restore command. 

Use xctl onstat - to list the valid coserver IDs and retry the previous 
command with a valid coserver ID.


-23637	Unable to block the coserver. Backups and restores are
currently active.

An external backup or restore is already in progress. Only one external
backup or restore at a time is allowed. 

Use onstat - to see whether the database server is blocked and
onstat -g bus to see which sessions are active. When the external backup
or restore completes and the database server is unblocked, retry your
external backup.


-23638	Backup Manager Error: Invalid dbspace.

An invalid dbspace name has been submitted as part of a backup or
restore command.

Check the command line for the backup or restore operation.


-23700	Could not write to file: coserver-number, errno, filename.

An error occurred when the database server tried to write to the reject file.

Look for operating-system messages that might give more information.
Possible causes include a full disk or a disk quota limit.


-23701	PLOAD: could not exclusively lock external table.

Another user is currently using the external table.
Wait for the external table to be unlocked before you proceed.


-23702	PLOAD: could not close external table.

An error occurred when the database server tried to close the external 
table lock. Note all circumstances and contact IBM Technical Support.


-23705	Could not open file: coserver-number, errno, filename.

An error occurred when the database server tried to open the file. Check the
accompanying errno for more information. Possible causes include missing
file or incorrect permissions.


-23706	Could not close file: coserver-number, errno, filename.

An error occurred when the database server tried to close the file. Look
for operating-system messages that might give more information.
Possible causes include a full disk or hardware errors.


-23707	Failed to read from file: coserver-number, errno, filename.

An error occurred when the database server tried to read from the file.
Check the accompanying errno for more information.


-23709	File specified as a FILE type but is not: (cosvr, file)=(%s).

The file named in the external table was called a "FILE" file type,
but it is not. If this file is a UNIX named pipe, change the file type in
the external table to "PIPE". When the file type is declared as FILE,
the server is expecting a disk file.


-23710	File specified as a PIPE type but is not: (cosvr, file)=(%s).

The file named in the external table was called a "PIPE" file type,
but it is not. If this file is a disk file, change the file type in
the external table to "FILE". When the file type is declared as PIPE,
the server expects to open a UNIX named pipe.


-23712	Illegal AIO buffer status coserver-number, errno, filename.

An error occurred when the database server tried to read or write from an
internal AIO buffer. Note all circumstances and contact IBM Technical
Support.


-23724	Could not remove file: coserver-number, errno, filename.

An error occurred when the database server tried to remove the
indicated file. Look for operating-system messages that might give 
more information. A likely cause is improper permissions.


-23725	PLOAD internal error in coserver-number, errno, filename.

Note all circumstances and contact IBM Technical Support
regarding this internal error.


-23726	PLOAD (load or unload) failed to start an AIO operation errno,
coserver-number, filename.

An error occurred when the database server tried to read or write to a
datafile. Check the accompanying errno for more information.


-23730	PLOAD (unload): conversion failure.

A conversion failure occurred when the database server tried to convert 
the data to ASCII or EBCDIC format.

Check that the external table columns have enough space reserved to
write the ASCII or EBCDIC representation of the data and that the
columns in the external table are compatible with the data selected.


-23731	PLOAD (unload): datafile full.

An error occurred when the database server tried to write to the unload 
data file. No more space is available for writing additional data.

Allocate more space and try again.


-23732	PLOAD (unload): datafile AIO write error errno.

An error occurred when the database server tried to write to the unload
datafile. Check the accompanying errno for more information.


-23733	PLOAD (unload): all data files are either full or bad.

An error occurred during the unload. Look for operating-system messages
that might give more information. Possibly all disks are full where
data files are being written or hardware problems occurred.


-23734	PLOAD: row size of target table is too large coserver-number, errno,
filename.

The target table for the load has a row size that is too large. The
largest row size must be the page size minus 32 bytes.


-23735	PLOAD conversion error: coserver-number, errno, filename.

When the database server tried to load from the file, it encountered an 
error. Unless a reject file is specified in the external table, the
database server returns the error message, and the load job ends without 
saving loaded data.

Check for conversion errors, rows that violate constraints defined on
the external table, or null columns that were defined as NOT NULL.


-23736	PLOAD failed to access file: coserver-number, errno, filename.

An error occurred when the database server tried to write to the reject file.

Check the accompanying operating-system error indication for more information.


-23737	PLOAD could not find record end: must abort.

An error occurred when the database server tried to find a record delimiter 
in the delimited load file.

Check to see that the file has record delimiters (normally new-line
characters) and that the external table has defined the correct record
delimiter.


-23738	PLOAD (unload) cannot undo partial write to filename when detecting
disk full.

An error occurred when the database server tried to continue after running 
out of space for one data file. When the database server detects the disk-full
condition, it writes to the data file a partial record, which cannot be
truncated.

Look for operating-system messages that might give more information.


-23739	Cannot open PLOAD log file.

An error occurred when the database server tried to open the log file
for a load or unload operation.

This situation occurs when one of the directories in the specified
log-file name does not exist, or the directory is write protected.

Check that the directory path is valid and that group informix can
write to the directory.


-23740	CREATE EXTERNAL TABLE: Too many keyword keywords in USING clause.

The CREATE EXTERNAL table statement (or SELECT...INTO EXTERNAL
statement) contains more than one occurrence of a keyword expected in
the USING clause.

Review the statement. If you meant to use another keyword, correct the
statement before you reissue it.


-23741	CREATE EXTERNAL TABLE: Invalid value for keyword.

The CREATE EXTERNAL TABLE statement (or SELECT...INTO EXTERNAL
statement) contains an invalid value for one of the USING clause
keywords.

Review the statement to see if the value of the keyword is misspelled.
For the MAXERRORS keyword, make sure the value is a valid number.


-23742	CREATE EXTERNAL TABLE: Invalid DATAFILES entry.

A DATAFILES entry does not have the correct format. The format for an
entry is filetype:coserver-info:rooted-path-name.

Check that the file type is a valid type (DISK or PIPE), that the
second item names a cogroup or a coserver number, and that the last
item names a file that can be accessed by the coserver that manages
it.


-23743	CREATE EXTERNAL TABLE: Missing DATAFILE entries.

The DATAFILES entry in the CREATE EXTERNAL TABLE statement (or
SELECT...INTO EXTERNAL statement) is missing. Add a DATAFILES entry
and reissue the statement.


-23744	CREATE EXTERNAL TABLE: Cannot use SAMEAS for FIXED format tables.

The CREATE EXTERNAL TABLE statement does not allow SAMEAS for FIXED
format tables. The column entries must also define an external type to
describe how to access (or write) the data in the fixed file.

Revise the CREATE EXTERNAL TABLE statement to enumerate the column
information and reissue the statement.


-23745	CREATE EXTERNAL TABLE: Internal column types must be defined
column-name.

The CREATE EXTERNAL TABLE statement requires a column type for each
column enumerated in the statement.

Revise the statement. Add the appropriate column type and then reissue
the statement.


-23746	CREATE EXTERNAL TABLE: Invalid external column type column-name.

The CREATE EXTERNAL TABLE statement contains an invalid external column
type.

Make sure the external-column types are valid: CHAR, PACKED, ZONED, or
BINARY. CHAR data must be enclosed in quotes.


-23747	CREATE EXTERNAL TABLE: FIXED or DELIMITED columns must be external
chars column-name.

The CREATE EXTERNAL TABLE statement contains an external column type
that is invalid. If the table describes a FIXED format file, the valid
external- column types are CHAR, PACKED, ZONED, and BINARY. CHAR data
must be enclosed in quotes.

If the table describes a DELIMITED format file and includes
external-column types, then the type must be CHAR. A table that
describes DELIMITED format files does not need to include
external-column-type information.


-23748	CREATE EXTERNAL TABLE: Missing external-column-type column-name.

The CREATE EXTERNAL TABLE statement is missing the external-column-
type information. This information is required for tables that describe
FIXED format files.

Add the column-type information and resubmit the statement.


-23749	CREATE EXTERNAL TABLE: Only FIXED format columns can declare null
column-name.

The CREATE EXTERNAL TABLE table statement has found a column defining a
null string with the NULL "null-string" syntax that is invalid. Only
tables that describe FIXED format files can have a null value defined
with the NULL keyword.

Rework the statement and resubmit it.


-23750	Invalid file type in DATAFILES string datafile entry.

An error occurred when the database server tried to expand the DATAFILES
entries in an INSERT or SELECT statement for an external table. The
external table has a DATAFILES entry with an illegal file type. Only
DISK and PIPE file types are allowed for external tables.

Examine the external-table entry, drop the external table, and reissue
a corrected CREATE EXTERNAL TABLE statement to correct this error.


-23751	Could not replace n macro in filename entry.

An error occurred when the database server tried to expand the node 
host-name macro in the filename in a DATAFILES entry in an INSERT or 
SELECT statement for an external table.

If the error recurs, note all circumstances and contact
IBM Technical Support.


-23752	Could not find coserver name for coserver coserver-number,  errno,
filename.

An error occurred when the database server tried to expand the data
files entries in an INSERT or SELECT statement for an external table.
The error occurred when the database server tried to find the coserver
name in order to expand the node host-name macro in the filename.

If the error recurs, note all circumstances and contact
IBM Technical Support.


-23753	Could not replace %r macro in filename entry.

An error occurred when the database server tried to expand the DATAFILES
entries in an INSERT or SELECT statement for an external table. The 
error occurred when the database server tried to expand the %r macro in 
the filename. Check that the syntax for the %r() macro is correct.


-23754	Could not replace c macro in filename entry.

An error occurred when the database server tried to expand the DATAFILES
entries in an INSERT or SELECT statement for an external table. The
error occurred when the database server tried to expand the
coserver-number macro in the filename.

If the error recurs, note all circumstances and contact
IBM Technical Support.


-23755	Missing delimiter at end of coserver item coserver-number, errno,
filename.

An error occurred when the database server tried to expand the
DATAFILES entries in an INSERT or SELECT statement for an external
table. The external table has a DATAFILES entry that does not have the
expected colon separators between entries. The format for an entry is
filetype:coserver-info:rooted-path-name.

Examine the external tables entry, drop the external table, and reissue
a corrected CREATE EXTERNAL TABLE statement.


-23756	Unknown coserver coserver number.

An error occurred when the database server tried to expand the DATAFILES
entries in an INSERT or SELECT statement for an external table. The
external table has a DATAFILES entry that does not have a known coserver
number.

Examine the external tables entry, drop the external table, and reissue
a corrected create external statement.


-23757	Unknown cogroup cogroup name.

An error occurred when the database server tried to expand the DATAFILES
entries in an INSERT or SELECT statement for an external table. The
external table has a DATAFILES entry that does not have a known cogroup 
name.

Examine the external tables entry, drop the external table, and reissue
the CREATE EXTERNAL TABLE statement.


-23758	Could not parse %r macro in filename entry.

An error occurred when the database server tried to expand the DATAFILES
entries in an INSERT or SELECT statement for an external table. The
error occurred when the database server tried to expand the %r macro in
the filename. Check that the syntax for the %r() macro is correct.


-23759	None of the DATAFILES strings name valid data files.

An error occurred when the database server tried to expand the 
DATAFILES entries in an INSERT or SELECT statement for an external 
table. No valid filenames were found in the DATAFILES entries.

Examine the external tables entry, drop the external table, and reissue
a corrected CREATE EXTERNAL TABLE statement.


-23760	File name is too long (file_name).

The name of the file in the external table is too long (after expanding
all the file macros). Check to see that the full path name of the
file is less than 257 characters long.


-23761	Cannot select from multiple external tables.

Only one external table can be used in a select query. For unions/intersects
/minuses, each union/intersect/minus contributor can have one external table. 
External tables are allowed as participants in joins and subqueries along with
other database tables.

Check that the FROM clause contains only one external table.


-23762	Null string longer than external column length or of bad format
string.

The CREATE EXTERNAL TABLE statement has a column with invalid NULL
"null-string" syntax. The NULL string for this column is longer than
the external column length declared or is not a recognized format for
the external type. If "null-string" is used to declare a NULL on a PACKED
or ZONED decimal, it must conform to the formats allowed. BINARY external
types must contain valid numeric values.

Check the CREATE EXTERNAL TABLE statement to make sure that the NULL
"null-string" length agrees with the size and format defined for the 
external column type.


-23763	Cannot use a FOR UPDATE or FIRST n clause with a SELECT into an
external table.

The SELECT statement contains a FOR UPDATE or FIRST n clause. When
the database server unloads to an external table, these clauses are not
allowed.

Check the SELECT statement or when the SELECT cursor was defined, and
make sure you do not include either of these clauses.


-23764	Insert into an external table must provide values for all columns in
the table.

The INSERT statement does not list all the columns that the external
table defines. When the database server unloads to an external table, all
columns must have values described by the SELECT list.

Check the INSERT statement to make sure that all columns are included
in the INSERT clause and that every column has a value supplied by the
SELECT list.


-23765	Cannot use a FOR UPDATE clause with a select from external table.

The SELECT statement contains a FOR UPDATE clause. When the database server
selects from an external table, this clause is not allowed.

Check the SELECT statement or the cursor declared to make sure you do
not include this clause.


-23766	Illegal use of an external table tablename in query.

This statement describes an illegal operation on an external table. The
types of operations allowed for external tables are CREATE TABLE,
SELECT, SELECT INTO, INSERT, DROP TABLE, GRANT, REVOKE, CREATE SYNONYM,
RENAME COLUMN, and RENAME TABLE.


-23767	Column too long for fixed field.  (Val = value, Col = colno,
Len = converted length, Max = maxLen).

When the database server tries to convert the column to FIXED file format, the
size of the converted value was longer than the maximum size defined
for the fixed- size field.

Check that the external table description defines enough space in the
external column type to hold the data selected after conversion.


-23768	External table must be fixed format for external column type
column-name.

An external column type of PACKED, ZONED or BINARY was found for an
external table that is not defined as a FIXED-format file.

Only FIXED-format files can define external-column types that are not
CHAR.


-23769	Unknown external column type column-name.

The CREATE EXTERNAL TABLE statement contains an external-column type
that was not recognized. Valid external-column types are CHAR, PACKED,
ZONED, and BINARY. CHAR values must be in quotes.

Check the CREATE EXTERNAL TABLE statement to make sure that the
external-column types are valid.


-23770	Only check constraints can be defined for external tables.

The CREATE EXTERNAL TABLE statement contains one or more types of
constraint that are not allowed.

Check the statement for primary-key, referential, or unique constraints
on a column or for the table.


-23771	Internal type must be a numeric type column-name.

The CREATE EXTERNAL TABLE statement contains external-column types that
do not agree with the internal-column type. Whenever the external-
column type is PACKED, ZONED or BINARY, the internal type must be a
numeric type such as INTEGER, SMALLINT, FLOAT, or DECIMAL.

Check the CREATE EXTERNAL TABLE statement to make sure any external-
column types agree with the internal-column type.


-23772	Internal type must be a small integer or integer column-name.

The CREATE EXTERNAL TABLE statement contains external-column types that
do not agree with the internal-column type. Whenever the external-
column type is BINARY, the internal type must be SMALL INTEGER or
INTEGER.

Check the CREATE EXTERNAL TABLE statement to make sure any external-
column types agree with the internal-column type.


-23773	Reached max error during load coserver-number, errno, filename.

When the database server tried to load the data from the external table,
one of the coservers reached the MAXERRORS limit defined for the 
external table.


-23774	Create external table for table_name failed.

The CREATE EXTERNAL table encountered an error trying to create
the catalog entry for the table. Check the accompanying ISAM error 
code for further information about the failure.


-23800	An internal error has occurred in the XTM facility.

Note all circumstances and contact IBM Technical Support
regarding this internal error.


-23801	A memory allocation error has occurred in the XTM facility.

The database server needed to allocate data-space memory to process the
query, but none was available. This situation might reflect a hardware
limit, an operating-system configuration limit, or a temporary shortage
of space.


-23802	A request to idle an XTM participant has failed. Transactions are in
an inconsistent state.

A nonrecoverable internal error occurred within the transaction-
management system.

Note all circumstances and contact IBM Technical Support.


-23803	An XMF send has failed within the XTM facility.

An internal error occurred within the transaction-management system.

Note all circumstances and contact IBM Technical Support.


-23804	An XMF receive has failed within the XTM facility.

An internal error occurred within the transaction-management system.

Note all circumstances and contact IBM Technical Support.


-23805	An unknown transaction ID was encountered in the XTM transaction
management system.

A nonrecoverable error occurred within the transaction-management
system.

Note all circumstances and contact IBM Technical Support
regarding this internal error.


-23807	The backup information for the XTM coordinator is corrupted.

A nonrecoverable error occurred within the transaction-management
system.

Note all circumstances and contact IBM Technical Support
regarding this internal error.


-23808	The creation of the XMF port for the XTM facility failed.

A nonrecoverable error occurred within the transaction-management
system.

Note all circumstances and contact IBM Technical Support
regarding this internal error.


-23850	Table type specified twice.

The CREATE TABLE statement contains more than one table type.

Check the statement to make sure that only one table type is defined.


-23851	This operation is not allowed on a table where the type is raw or
scratch.

An illegal operation (for example, trying to create an index) has been
attempted on a RAW or SCRATCH table.

You might want to alter the table type to a type that supports the
operation.


-23852	This operation is not allowed on a table where the type is static.

The statement issued tries to modify data in the table with an UPDATE,
INSERT, or DELETE statement. Data modification is not allowed on tables
of type STATIC. You might want to alter the type to one of the other
types that support data modification.


-23853	Unable to change the type of table tablename.

An error occurred when the database server tried to alter the type of the
table. Possibly you tried to alter the table type to RAW when indexes
are defined on the table, or you tried to change a table to STANDARD
when an archive has not been made.


-23854	Indexes and constraints are not allowed on tables if type is raw
or scratch.

This error could occur if you try to alter a STANDARD table to
RAW or SCRATCH but the table has indexes or referential constraints.
The CREATE TABLE statement contains indexes or constraints that are not
allowed for RAW or SCRATCH tables. Check your statement to make sure
you do not define these kinds of constraints or indexes on RAW or
SCRATCH tables. 

You must alter the RAW or SCRATCH table to a STANDARD
table if you want to use indexes and referential constraints.


-23855	Express mode loads are not permitted for this type of table.

An error occurred when the database server tried to execute an
express-mode load on an external table created with the EXPRESS
keyword.  This error can happen if the external table contains
blob columns or if the internal table requires logging inserts.
An internal table will require logging inserts whenever it has
the type STANDARD or has referential or unique constraints.

If the internal table requires logged inserts or the external table
contains blob columns, re-create the external table description
without the EXPRESS keyword.


-23857	This operation is not allowed on tables where the type is raw or static.

An illegal operation (for example, trying to do an alter table for
anything but table type) has been attempted on a RAW or STATIC table.

You might want to alter the table type to a type that supports the
operation. Do the operation that failed. Alter the table back to the
original type.


-23858	This operation is not allowed on a temporary table (<tabname>).

The specified table is a temporary table, and the attempted operation
is not allowed on a temporary table.

Specify a table that is not temporary and retry the operation.


-23859	This operation is not allowed on a violations/diagnostics
table (<tabname>).

The specified table is a violations or diagnostics table, and the
attempted operation is not allowed on such a table.

Specify a table that is not a violations or diagnostics table and retry
the operation.


-23860	This operation is not allowed on a duplicated table (<tabname>).

The specified table has been duplicated with the CREATE DUPLICATE
statement. The attempted operation is not allowed on a duplicated
table.

To perform the operation, first issue a DROP DUPLICATE statement
for <tabname>. After you perform the operation against the
nonduplicated table, consider whether you need to issue another
CREATE DUPLICATE command to duplicate the table again.


-23900	freeshdic FAILED: non-exclusive access dic <tablename> ref
<referenceCnt> lk <lockCnt> possible memory loss.

An error occurred when the database server tried to free memory for a
shared dictionary entry. If this internal error recurs, note all
circumstances and contact IBM Technical Support.


-23901	Index name (index_name) with leading byte 0x20 not allowed.

In some situations, such as when a constraint is defined, the database 
server creates indexes internally. These indexes, by convention, always
have a leading ASCII blank (hex 20) as the first byte of their name. To 
avoid a conflict, user-created indexes cannot have an ASCII blank (hex 20)
as the first byte of their name. This rule is enforced regardless of the
locale. This rule is also enforced regardless of the use of the
DELIMIDENT environment variable.


-23901	Alter table is not allowed in a multi-statement transaction.

Try separating the ALTER TABLE statement into its own single-statement
transaction.


-23902	Operation is not supported in SMI database (%s).

UPDATE STATISTICS cannot be run on the sysmaster database. Check
your statement and make sure that the table on which you are running update
statistics is not in the sysmaster database.


-23903	The EXPLAIN output file name must be a NON-NULL CHAR or VARCHAR.

The name given to the EXPLAIN output file is null. Provide a name for
the EXPLAIN output file.


-23904	Attached table (tabname) has an incompatible hash column
specification.

The hash column specification of the table named in the error message 
is not compatible with that of the surviving table or a prior table 
in the attach list. All tables involved in the attach that have hash-column
specifications must have identical hash-column specifications.


-23905	Attached table (tabname) has an incompatible table type.

The table type (standard, raw, etc.) of each attached table must 
match that of the surviving table.


-23906	Dbslice lookup failed.

This code indicates that the dbslice specified in the operation
(for example, in the IN clause of the CREATE TABLE ... FRAGMENT BY
statement) has not been defined. Make sure that the specified
dbslice is indeed the name of an existing dbslice and not of a dbspace.
You can run the onstat utility with the -d option to see the names of
defined dbspaces. Names ending with .number are dbspaces that belong
to a dbslice (for example, dbsl.1 and dbsl.2 are two spaces in the
dbslice dbsl).


-23907	Column columnname for hash fragmentation doesn't exist.

The column name specified for hash or hybrid fragmentation was not found
in the table.


-23908	Alter Fragment option not supported for hash fragmentation.

The surviving table has hash fragmentation and an ALTER FRAGMENT ON TABLE 
option other than INIT or ATTACH was specified. INIT and ATTACH are the 
only supported options for hash-fragmented tables.


-23910	Result types from case expression must be compatible.

The case expression has a result type that is incompatible with other
result types in this expression. Only one type can be returned in
a case expression. Review the data types in your case expression
and make sure that only compatible result types are returned.


-23911	Cannot update a row twice in a joined-row update.

If you do an update join, the join condition and any filters
must be sufficiently strict so that no row of the update target table
is produced more than once for updating. The error occurred because
the same row came around twice. The query was terminated abnormally.

Either clean the data source or sources, or make the query more restrictive
so that no target table row is produced more than once for updating.


-23913	SAMPLE/LOCAL specifiers apply to tables. <identifier> is not a table.

The select statement includes a SAMPLE or LOCAL keyword, but the
table_name specified in the FROM clause is not a database table.
Check to see that the tables specified by the SAMPLE or LOCAL
keyword in the FROM clause are not VIEWS or EXTERNAL TABLES.


-23914	Operation not supported on secondary coservers.

An operation that can only be performed on the MDM Primary coserver
was attempted from another coserver. This is an internal error.
Note all circumstances and contact IBM Technical Support.


-23915	Alter Fragment option not supported for hybrid fragmentation.

The surviving table has hybrid fragmentation and an ALTER FRAGMENT ON TABLE
option other than INIT, ATTACH, or DETACH was specified. INIT, ATTACH,
and DETACH are the only supported options for hybrid-fragmented tables.


-23916	Attached table (tabname) has an incompatible fragmentation
scheme.

The fragmentation scheme of the table named in the error message is not a 
kind that can be attached to the surviving table in the ALTER FRAGMENT ON
TABLE command.


-23917	Unable to lock row for hold cursor.

When a lock is required for a row in a hold cursor, it must be a
special type of lock so that it is not released prematurely. This error
indicates that the hold cursor lock attribute could not be acquired.

The accompanying ISAM error code might indicate the reason.


-23918	Cannot create detached cluster index.

Fragmentation scheme cannot be specified when creating cluster index.


-23920	Could not create bitmap index due to outstanding in-place alter.

A create index using bitmap statement was specified on a table that has
outstanding in-place alters. The in-place alter must complete before
such an index can be created. A dummy update of the entire table will
cause the in-place alter to complete.

An example of a dummy update is an update that changes all the
rows in the table and specifies that a column be set to itself.


-23921	Cannot alter table type in combination with other alter table
options.

You must use separate statements to alter the table type with an ALTER
TABLE statement. It cannot be done in combination with other ALTER
TABLE options.


-23922	Serial column usage incompatible with fragmentation scheme.

A table can be fragmented on a serial column only if the table is fragmented
by hash and the serial column is the only column in the key. Tables fragmented
by expression or hybrid that use serial columns in the fragmentation are not
valid. Neither are hash-fragmented tables that have any columns in addition
to the serial column used for fragmentation.


-23923	HAVING clause should be accompanied by a GROUP clause or with
aggregates on all columns in the SELECT clause.

The HAVING clause in a query should be accompanied by a GROUP BY clause or
by a SELECT clause containing only AGGREGATES on columns or
column-expressions. The HAVING clause is used to apply filter expressions on
a "grouped" result. A grouped result is obtained either by using a GROUP BY
clause or by using only AGGREGATES in the SELECT clause. In the latter case,
the result involves only one group and the result contains only one
aggregated row.


-23925	Second arg of dbinfo(dbspace/coserverid) cannot specify a view.

The dbinfo() function call has either 'dbspace' or 'coserverid' as the first
argument and the second argument specifies a column name. Column names
qualified by view names are not supported.

Check to see that the second argument specifies a column name qualified by a
table name.


-23926	Second arg of dbinfo(dbspace/coserverid) must specify a column.

The dbinfo() function has either 'dbspace' or 'coserverid' as the first
argument and the second argument does not specify a column.

Check to see that the second argument specifies a column name qualified by a
table name.


-23927	Third arg of dbinfo(dbspace/coserverid) must be string
'currentrow'.

The dbinfo() function was called with either 'dbspace' or 'coserverid' as
the first argument followed by a column name as the second argument and an
invalid third argument.

Check to see that the third argument corresponds to the quoted string
constant 'currentrow'.


-23929	Cannot set memory resident status for a view.

The memory residency status for views cannot be changed.


-23930	GK-index creation syntax error:  (message)

The database server cannot create a general-key index for the reason 
stated in the error message. Correct the CREATE GK INDEX statement.


-23931	GK-index creation: FROM clause must contain LOCAL, STATIC BASE tables
only.

The database server cannot create a general-key index because one of the
tables in the FROM clause is either a remote table, a non-static table,
or a view. Correct the CREATE GK INDEX statement.


-23932	GK-index creation:  indexed table missing in the SELECT statement.

The FROM clause must include the table on which the index is defined. The 
indexed table in the FROM clause cannot be aliased. Rewrite the FROM clause 
of the statement.


-23933	GAM sanity error: (message)

If this internal error recurs, note all circumstances and contact 
IBM Technical Support. Be sure to record the information 
given in the error message.


-23934	GAM internal error: (error_number)

If this internal error recurs, note all circumstances and contact  
IBM Technical Support. Be sure to record the information 
given in the error message.


-23935	GAM: HCNF not supported yet.

This error indicates that the SELECT clause cannot be transformed into the
Hybrid Conjunctive Normal Form (HCNF), an internal query representation 
that checks whether the index can be applied to the current query.


-23936	There are GK-indexes depending on a table in the statement.

This statement cannot be executed because general-key indexes exist
that depend on a table or tables involved in the statement. Drop the
general-key index that depends on the table.

To determine which GK indexes need to be dropped to correct this error,
run the following query on the system catalog table:

SELECT sysindexes.idxname, sysindexes.owner
        FROM systables, sysindexes, sysnewdepend
        WHERE systables.tabname = "<table_name>"
        AND systables.tabid = sysnewdepend.destid1
        AND sysnewdepend.srcid2 = sysindexes.tabid
        AND sysnewdepend.srcid1 = sysindexes.idxname

When a particular column of the GK index is involved (for example, in the
case of a RENAME COLUMN statement), run the following query to determine
which GK indexes need to be dropped:

SELECT sysindexes.idxname, sysindexes.owner
        FROM sysindexes, systables, syscolumns, sysnewdepend
        WHERE systables.tabname = "<table_name>"
        AND syscolumns.colname = "<column_name>"
        AND systables.tabid = sysnewdepend.destid1
        AND syscolumns.colno = sysnewdepend.destid2
        AND sysnewdepend.srcid2 = sysindexes.tabid
        AND sysnewdepend.srcid1 = sysindexes.idxname

 
-23937	GK-index creation: table (table_name) isn't join-on-key to
the indexed table.
 
The error message shows the name (table_name) of the table that is not 
correctly joined in the WHERE clause of the statement. Change the WHERE 
clause to include an equality test.


-23950	XBAR error: Error during dbspace backup.

Refer to the ONBar activity log and server message log for more information.


-23951	XBAR error: Error during logical log backup.

Refer to the ONBar activity log and server message log for more information.


-23952	XBAR error: Error during physical restore.

Refer to the ONBar activity log and server message log for more information.


-23953	XBAR error: Error during logical log restore.

Refer to the ONBar activity log and server message log for more information.


-23954	XBAR error: No such dbspace.

The dbspace that you have specified does not exist in your system. Check that 
the dbspace supplied on the onbar command line is valid.


-23958	XBAR error: Invalid argument.

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


-23959	XBAR error: Internal error - Error %d from DFM %s at
file %s line %d.

The Data Flow Manager (DFM) has reported an error to the XBAR subsystem.

Contact product support.


-23960	XBAR error: Internal error - Unexpected message type %d
received at file %s line %d.

The XBAR subsystem recieved an unexpected message for another XBAR thread.

Contact product support.


-23961	XBAR error: Not all buffers have been backed up.

A backup client requested to commit a backup without reading all of
the backup data from the database server.

Contact product support.


-23962	XBAR error: Detected error on local xplan thread. Remote
thread aborting.

An XBAR thread detected an error on the client connection coserver.

Examine the server log and onbar activity logs for the error that
preceded this error.


-23963	XBAR error: Memory allocation failed.

The XBAR substem was unable to perform a memeory allocation.


-23964	XBAR error: Internal error - Error %d from SCH %s at
file %s line %d.

The Scheduler (SCH) has reported an error to the XBAR subsystem.

Contact product support.


-23965	XBAR error: Internal error - Error %d from XPL %s at
file %s line %d.

The Xplan (XPL) subsystem has reported an error to the XBAR subsystem.
Contact product support.


-23966	XBAR error: Interrupt received.

The XBAR subsytem detected that its user session was interrupted.
This can occur when the client has recieved a signal or when the
session was terminated using onmode.

Retry the operation that was interrupted.


-23967	XBAR error: XPLAN has been aborted.

An Xplan thread has detected that Xplan was aborted.  

Consult the server message log and client message log for 
more information.


-23968	XBAR error: Internal error - Error %d from RSAM %s at
file %s line %d.

The RSAM subsytem has reported an internal error to the XBAR subsytem.

Contact product support.


-23969	XBAR error: Invalid argument to %s: %s.

An invalid argument was supplied to an XBAR interface routine.

Check the command that resulted in the error to ensure it contains
valid arguments.


-23970	XBAR error: Internal error - session control block is NULL.

An internal data structure that the XBAR subsytem needs to execute
an operation does not exist.

Check the server log and client message logs for preceding errors.
Contact product support.


-23971	XBAR error: Internal error - operation control block is
NULL.

An internal data structure that the XBAR subsytem needs to execute
an operation does not exist.

Check the server log and client message logs for preceding errors.
Contact product support.


-23972	XBAR error: Fatal error detected on xplan.

An Xplan thread has detected that Xplan was aborted.  

more information.


-23973	XBAR error: Internal error - Error %d from CM %s at
file %s line %d.

The Configuration Manager (CM) has reported an error to the 
XBAR subsystem.

Contact product support.


-23974	XBAR error: Invalid transport buffer.

The XBAR subsytem was unable to allocate the first transport buffer
for a restore.

Make sure transport buffers are configured properly. Contact 
product support.


-23975	XBAR error: Internal error - Error %d from MT %s at
file %s line %d.

The MT subsytem has reported an error to the XBAR subsystem.

Contact product support.


-23976	XBAR error: At least one dbspace must be specified for
this operation.

No dbspace was specified for an Archecker operation.  


-23977	XBAR error: Internal error - Fatal error executing
external restore. Not all dbspaces are complete.

An external restore operation finished, but not all dbspaces specified
were restored.

Check the server message log and client message log for more
information.


-23979	XBAR error: Invalid coserver id.

An invalid coserver ID was specified for backup or restore.

Make sure that the coservers specified on the command line for backup
or restore are valid. Check the server message log and client message
log for more information.


-23980	XBAR error: Duplicate coserver id.

A duplicate coserver ID was specified for backup or restore.

Make sure that the coservers specified on the command line for backup
or restore do not contain duplicates. Check server message log and
client message log for more information.


-23981	XBAR error: Allocate transport buffer failed.

An error occurred when the database server tried to allocate the transport
buffers.

Note all circumstances, save a copy of the ON-Bar activity log and
database server message log, and contact IBM Technical Support.


-23982	XBAR error: Free transport buffer failed.

An error occurred when the database server tried to free the transport
buffers.

Note all circumstances, save a copy of the ON-Bar activity log and
database server message log, and contact IBM Technical Support.


-24100	Cannot alter index lock mode.

An attempt to alter the lock mode of an index has failed.

Check the accompanying ISAM error code for more information.


-24101	Cannot specify lock mode for an index on a temporary table.

The temporary tables are session specific, which implies that there
will not be any locking contention between different users. For this
reason, altering the lock mode of an index on such tables is not
deemed necessary.


-24112	Cannot update column (%s).

This error is generated when a user tries to update a column that
is not from the target table. For example:

   create table tab1 (col1 int, col2 int);
   create table tab2 (col3 int, col4 int);
   update tab1 set col4 = col3 + 1 from tab1, tab2 where col1 = col4;

This will generate the following error because the column col4 is not
from the target table tab1:

   24112: Cannot update column (col4).
   Error in line 1
   Near character position 1


-24113	Table (<tabname>) is not a duplicated table.

The attempted operation is valid only for duplicated tables.
<tabname> is not a duplicated table.

Specify a duplicated table and retry the operation.


-24114	Number of dbspace lists does not match number of fragments
in table.

In the CREATE DUPLICATE statement, the number of supplied dbspace
lists must match the number of fragments in the original table.

Rewrite the CREATE DUPLICATE statement and specify a list
of dbspaces for each original fragment of the table.


-24115	Number of dbspaces per dbspace list must be identical.

In the CREATE DUPLICATE statement, the number of dbspaces in each
dbspace list must be the same.

Rewrite the statement to satisfy this criterion. Remember that
dbslices are expanded into their component dbspaces, excluding
a dbspace that the original table uses.


-24116	Duplicate dbspace (<dbsname>) detected in CREATE DUPLICATE
specification.

A dbspace name occurs more than once in this statement. In a CREATE
DUPLICATE you cannot specify a dbspace name more than once.

Rewrite the statement using only unique dbspace names. Remember that
dbslices are expanded into their component dbspaces, excluding a dbspace
that the original table uses.


-24117	Dbspace (<dbsname>) in CREATE DUPLICATE specification already
exists in table.

The specified dbspace already contains a fragment of the table,
so you cannot use the dbspace name in the CREATE DUPLICATE command.

Rewrite the statement to avoid specifying any dbspace that the original
table already uses.


-24118	This ddl operation is not allowed due to deferred
constraints pending on this table and dependent tables.

This transaction is running with constraint checking deferred.
After executing a DML command (INSERT/UPDATE/DELETE), a DDL command
was executed on the same table. To check the pending constraints, the
schema of the table cannot be changed. DDL commands can change the
schema of the table; therefore, they are not allowed. If this table
has a primary key and there is a foreign key referencing it, 
schema changes are not allowed on the table containing the foreign
key. This is to check pending referential constraints. The table
containing the foreign key is also referred to as a dependent table.

If you would like to change the schema of the table, first set the
constraint mode to immediate and then retry the failing DDL command.


-24120	Cannot use dbinfo function in HAVING clause.

The dbinfo function cannot be used in the HAVING clause of a query.


-24121	Data Dictionary locking error (%s).

This error can occur when there is a conflict between a DML statement
running on a given table and a concurrent DDL statement trying to
modify that same table. The table name is specified in the error
message. This conflict can occur between 2 different users, or even
with a single user if that single user has an open cursor on the table
being modified. In the latter case, the ISAM error code will be set
to -106, non-exclusive access. The combination of SQL error
code -24121 and ISAM error code -106 will uniquely indentify this
situation.

The corrective action is to first close any cursors that reference
the table being modified. The ISAM error code can give further details
on the particular conflict resolution in the event the problem
is multi-user related. For example, the error code might indicate that
a timeout has occurred. In that case, the corrective action might be
to increase the wait time (set by the command SET LOCK MODE TO WAIT).
Other error codes can indicate that a deadlock has occurred and you
can look up the recommendations for the ISAM error code for
descriptions and corrective actions.

This situation is not influenced by ISOLATION LEVEL and can occur at
any isolation level. This internal locking that occurs is necessary
to enforce consistent metadata. Without this consistency, a variety of
unpredictable and inconsistent, potentially fatal, errors can occur.


-24122	Column not specified for hash/hybrid fragmentation and there is
no primary key for the table.

When a table is created with hash or hybrid fragmentation, if no
column is specified as the hash key in hash or hybrid fragmentation, then
the database server uses the primary key for the table as the hash key.
This error occurred because there is no primary key for the table and no
hash column was specified.

For example, the following statement will get error -24122:

   create table tab (
       c1 int,
       c1 int,
       c2 char(10)
   ) fragment by hybrid expression
           c1 < 1000 in db1,
           remainder in db2;
  
There are two ways to fix this statement. 
  
   1). Add a hybrid column:
   
          create table tab1 (
              c1 int,
              c2 char(10)
          ) fragment by hybrid(c2) expression
                  c1 < 1000 in db1,
                  remainder in db2;
  
   2). Add a primary key:
   
          create table tab2 (
              c1 int primary key,
              c2 char(10)
          ) fragment by hybrid expression
                  c1 < 1000 in db1,
                  remainder in db2;


-24123	Blobs are not allowed in the "Union" clause.

You selected a TEXT or BYTE column in a UNION query. The SELECT clause
of each query cannot include any TEXT or BYTE columns. These columns
are not allowed in a UNION clause because TEXT and BYTE columns cannot
be tested for equality. A UNION ALL clause, however, can include TEXT
and BYTE columns (in a standalone SELECT statement or in a UNION view).


-24134	XA transaction aborted.

Statements that were active when the transaction aborted will fail and
will be rolled back.

No action is required.


-24135	Cannot prepare XA transaction.

The database server cannot prepare a distributed transaction.
The transaction has been aborted.

Report this error to your DBA or DBSA.


-24136	CREATE DATABASE: dbspace '<dbsname>' not found on coserver one.

In a version 8.x database server, you can only create databases  in
dbspaces on the first coserver.

Check the dbspace name you specified for the correct spelling. If the
spelling is correct, see your database server administrator for the name
of a dbspace that exists on coserver one. If you do not specify a
dbspace in the CREATE DATABASE statement, the database server uses the
dbspace specified in the ONCONFIG file parameter DBCREATE_DBS.


-24142	Permission denied: User cannot set mutability for environment variables.

Only a user with DBA privileges can set the mutability property of a session environment variable.
The statements that set mutability for environment variables are typically used by DBA in a sysdbopen() procedure 
to affect a user session.


-24143	Session environment variable <varname> is immutable. Contact DBA.

DBA has made this session environment variable immutable. Contact DBA to have
this property changed.

-24145	Only permanent(base) tables can be moved.

Only user-created permanent tables can be moved across databases. The 
following table types cannot be moved:
    * TEMP and SCRATCH tables
    * System catalog tables
    * Active violation tables
    * Views


-24146	Username and rolename have conflicting permissions.

During the execution of the MOVE TABLE command, one of the following 
situations may have occurred:

    * A rolename in the source database conflicts with a username in 
      the destination database
    * A username in the source database conflicts with a  rolename in 
      the destination database.

To correct this error:
    * Do not use the ROLES option in the WITH clause of a MOVE TABLE 
      command
    * Do not use the WITH clause with the MOVE TABLE command
    * Revoke these conflicting permissions manually before executing
      a MOVE TABLE command.


-24147	Source and destination database must be different.

Use the MOVE TABLE command to move a table to a different database. 
Use the RENAME TABLE command to move a table within the same database.


-24148	Cannot move a table from the sysmaster and sysutils databases.

You cannot move a table from either 'sysmaster' or 'sysutils' system
databases.


-24149	Owner name conflicts with role name in the destination database.

During execution of the MOVE TABLE command, a conflict occurred between the target owner name and 
the existing role name in the destination database.

To correct this error:
    * Drop the conflicting role from the destination database.
    * Use the RENAME option with the MOVE TABLE command to specify a 
      different target owner name, as in the following example:
          - MOVE TABLE 'o1'.t1 TO DATABASE destdb RENAME '02'.t1;


-24150	Only users with DBA privileges can move the table.

Only users with DBA privileges on both the source and destination 
databases are allowed to execute the MOVE TABLE statement.


-24200	RQM Error: Cannot find the session.

This error is reported when rmfindsession cannot find a session
according to a session ID.


-24201	RQM Error: Cannot find statement sdb.

This error is reported when the parent statement descriptor
cannot be found for UPDATE CURRENT.


-24300	Column (%s) not found in the target table.

This error is generated when a user tries to insert into a column that
is not from the target table. For example:

        create table bonus (id int, bonus int);
        create table emp(id int, salary int);

        MERGE INTO bonus D
        USING emp S ON D.id = S.id
        WHEN MATCHED THEN UPDATE SET bonus = bonus + salary*.01
        WHEN NOT MATCHED THEN INSERT (id, salary) VALUES (S.id, salary);

This will generate the following error because salary in the insert column
list is not from the target table, bonuses:

        24300: Column (salary) not found in the target table.
        Error in line 4
        Near character position 41


-24301	Table (%s) is not the target table.

This error is generated when a user tries to insert into a column that
is not from the target table. For example:

        create table bonus (id int, bonus int);
        create table emp(id int, salary int);

        MERGE INTO bonus D
        USING emp S ON D.id = S.id
        WHEN MATCHED THEN UPDATE SET bonus = bonus + salary*.01
        WHEN NOT MATCHED THEN INSERT (id, emp.bonus) VALUES (S.id, salary);

This will generate the following error because the emp.bonus table name is not
the bonus target table:

        24301: Table (emp) is not the target table.
        Error in line 4
        Near character position 47


-24302	Column (%s) not found in the source table.

This error is generated when a user tries to insert into the target table using
a column from the target table. For example:

        create table bonus (id int, bonus int);
        create table emp(id int, salary int);

        MERGE INTO bonus D
        USING emp S ON D.id = S.id
        WHEN MATCHED THEN UPDATE SET bonus = bonus + salary*.01
        WHEN NOT MATCHED THEN INSERT (D.id, D.bonus) VALUES (S.id, bonus);

This will generate the following error because in the VALUE clause the
bonus column is not from the emp source table:

        24302: Column (bonus) not found in the source table.
        Error in line 4
        Near character position 66


-24303	Table (%s) is not the source table.

This error is generated when a user tries to insert into the
target table using the column from the target table. For example:

        create table bonus (id int, bonus int);
        create table emp(id int, salary int);

        MERGE INTO bonus D
        USING emp S ON D.id = S.id
        WHEN MATCHED THEN UPDATE SET bonus = bonus + salary*.01
        WHEN NOT MATCHED THEN INSERT (D.id, D.bonus) VALUES (D.id, salary);

This will generate the following error because the salary column in the VALUE clause
is not from the source table, emp:

        24303: Table (d) is not the source table.
        Error in line 4
        Near character position 61


-25539	Invalid connection-type.

The connection-type is invalid for the database server. This message appears when
the database server is configured to address specific connection requests, for example for an
ER or HDR connection.


-25546	Invalid network association control.

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


-25548	Too many active connections.

If this sqlexecd internal error recurs, note all circumstances
and contact IBM Technical Support.


-25553	Sqlhosts file not found or cannot be opened.

The sqlhosts file is required to determine information to establish
connection to a local or remote server. Create an sqlhosts file in the
directory $INFORMIXDIR/etc according to the format that the manual for
your database server product describes.


-25554	INFORMIXSERVER environment variable too long.

The value of INFORMIXSERVER is too long for a database server name. The
maximum length for database server names depends on the  database server.
In IBM Informix Dynamic Server 9.2 or later, the maximum length is 128 characters. 
In other Informix database servers, the maximum length is 18 characters.

Set the INFORMIXSERVER environment variable to a database server name that
does not exceed the maximum length and try again.


-25555	Server server-name is not listed as a dbserver name in sqlhosts.

The database server name that is mentioned in the current command is
not listed in the sqlhosts file. Check the server name for accuracy.
Check that all database servers to be accessed are included in the
sqlhosts file.

If you are using IBM Informix SE, your current working directory might be
an NFS-mounted directory. Change your current working directory to a
local directory, or add appropriate local directories to your DBPATH.


-25556	Invalid sqlhosts file format.

Check that each field in the $INFORMIXDIR/etc/sqlhosts file is correct
and contains supported values or that the sqlhosts information in the
Windows registry is correct. If you are using IBM Informix Dynamic Server,
IBM Informix Universal Server, or IBM Informix OnLine Dynamic Server, check the
DBSERVERNAME, DBSERVERALIASES, and NETTYPE parameters in the $ONCONFIG
configuration file or the informixserver entries in the registry. If you are
using IBM Informix SE, check the dbservername, nettype, hostname, and servicename
fields in the sqlhosts file to make sure that you have entered the correct
values. For additional information, refer to your Administrator's Guide.

For ESQL/C: If you receive this message from an ESQL/C application in a
Windows environment, check the information in the network parameters
that the client computer defines. For information on setting the
parameters, refer to the IBM Informix ESQL/C Programmer's Supplement for
Microsoft Windows Environments.

For ESQL/COBOL: If you receive this message from an ESQL/COBOL
application in a Windows environment, check the information in the
network parameters that the client computer defines. For information on
setting the parameters, refer to the IBM Informix ESQL/COBOL Programmer's
Supplement for Microsoft Windows Environments.


-25557	Network internal error.

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


-25558	The NFS/RFS host host-name is not listed as a dbserver name in sqlhosts.

The database server that is mentioned in the current command resides on
an NFS- or RFS-mounted file system. However, no entry exists with the
NFS or RFS host for the dbservername that is listed in the sqlhosts
file. Ask your Informix database administrator to add the entry to the
sqlhosts file. If you are using IBM Informix SE, be sure that an sqlexecd
daemon is running on the NFS or RFS host.


-25559	DBPATH server server-name is not listed as a dbserver name in sqlhosts.

The database server that your DBPATH environment variable setting
specifies is not listed in the $INFORMIXDIR/etc/sqlhosts file. Check
that every database server that is mentioned in DBPATH corresponds to
an entry in the sqlhosts file.


-25560	Environment variable INFORMIXSERVER must be set.

The INFORMIXSERVER environment variable must specify a default database
server. Use a setenv command in C shell or a set command in Bourne
shell to set INFORMIXSERVER.


-25561	Invalid authentication type.

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


-25565	Cannot get process information.

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


-25566	System time error.

See the system administrator regarding this operating-system error.
Check that the system clock is set correctly.


-25567	Internal communications buffer management error detected.

Memory corruption or incorrect use of buffer-management routines
usually causes this error. Check that no memory corruption problem
exists in the current process space. If the error recurs, note
all circumstances and contact IBM Technical Support.


-25568	Debugging utility error.

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


-25570	Network driver cannot execute the fork system call.

A system call has failed. See the system administrator for assistance.


-25571	Cannot create a user thread.

The database server cannot create or spawn a user thread for a client
that is trying to establish a connection.

Probable causes of the error and corrective actions include:

   *   The database server cannot allocate system resources for the
       user thread at the moment. The client can retry the connection
       later. When other clients finish their work, some system resources
       should become available again. Check to see if the user is the right
       person to execute the utility or the program. For information about
       who can use what utilities, refer to the Trusted Facility Manual or
       your Administrator's Guide.

   *   A user who is not allowed to use a particular client application
       to connect to the database server tried to use the utility
       to connect. Client applications include SQL APIs, DB-Access,
       and all the database server utilities.

   *   A request for a Global Language Support (GLS) structure failed.
       Refer to the corrective actions for errors -23100, -23101, -23102,
       -23104, -23108, and -23110 for possible solutions.

   *   A user attempting to connect to the database server does not
       belong to the database server user group, as defined in 
       $INFORMIXDIR/dbssodir/seccfg on a UNIX system or in the registry
       on a Windows system. Make sure that the user belongs to a user
       group that can access the database server. For more information
       about DBSSO users, see the Trusted Facility Manual.


-25572	Network driver cannot bind a name to the port.

A system call has failed. The sqlexecd daemon or database server cannot
access the network port that is specified by the servicename in the
sqlhosts file. This situation might occur because the network port is
already in use by another sqlexecd, database server, or other
application. Use a different servicename on the command line (prior to
Version 6.0) or in the sqlhosts file (beginning with Version 6.0).
Contact your system administrator for assistance.


-25573	Network driver cannot accept a connection on the port.

A system call has failed. See the system administrator for assistance.


-25574	Network driver cannot open the network device.

A system call has failed. See the system administrator for assistance.


-25575	Network driver cannot allocate the call structure.

A system call has failed. See the system administrator for assistance.


-25576	Network driver cannot allocate the return structure.

A system call has failed. See the system administrator for assistance.


-25577	Network driver cannot get a host structure.

A system call has failed. See the system administrator for assistance.


-25578	Network driver cannot disconnect from the network.

A system call has failed. See the system administrator for assistance.


-25579	Network function was issued in the wrong sequence.

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


-25580	System error occurred in network function.

A system call has failed. For assistance, contact your system administrator
or IBM Technical Support.


-25581	Transport Layer memory free error.

This message indicates a system problem. It might be a problem with
freeing memory. Retry the connection and then see the system
administrator for assistance.


-25582	Network connection is broken.

The connection terminated because the network is down, the database server
is offline, or the client is offline. If you receive this error on a client,
check the network connection, and the database server. If you receive this
error on the database server, check the network connection, and the client.


-25583	Unknown network error.

See the system administrator or the network administrator for
assistance.


-25584	Network driver cannot access the server program program-name.

Check that the INFORMIXSERVER environment variable correctly specifies
the default server name and that the default server name and the
service name entries in the sqlhosts file are correct.


-25585	Invalid buffer size.

The buffer size that is specified in the servicename column is not
valid. Check that the servicename column of your sqlhosts file is
correct.


-25586	Network send failed.

A system call has failed. See the system administrator for assistance.


-25587	Network receive failed.

A system call has failed. Perform a DISCONNECT and then check the
status of the server. See the system administrator for assistance.


-25588	The appl process cannot connect to Dynamic Server <server-name>.

An error in the application can produce this message. Check your
CONNECT statement and the sqlhosts file. A system failure can also
produce this message. If you can find no immediate cause for the
failure, note the circumstances and contact your database server
administrator for assistance.

The shared memory communication subsystem is down or not functioning.
Contact the database server administrator to report the problem.


-25589	Invalid database server mail-box message type.

A system call has failed. See your system administrator for assistance.


-25590	Authentication error.
 
This error indicates that an invalid user ID or password was used to
connect to the database server. Provide a valid user ID and password.
 
This error can also occur if the CSM option is enabled on the database
server side but disabled on the client application side, or vice versa.
If you want to use a CSM, make sure that the CSM option is set in the
sqlhosts file for both the database server and client application.


-25591	Transport control received an invalid connection address.

Check the hostname and servicename entries in the $INFORMIXDIR/etc/sqlhosts
file for the desired database server. Verify with the DBA and the system
administrator that the hostname and servicename are spelled correctly. If
you are using TCP/IP, also verify that the hostname and servicename have
corresponding entries in the /etc/hosts and the /etc/services files,
respectively, on the client computer.


-25592	Communications service not supported by network driver.

The network service that was requested for this connection, such as TCP
with sockets or TCP with TLI, is not available on the desired system or
the specified database server. Use a supported network service; verify
that the nettype field is correctly specified for the desired database
server in the $INFORMIXDIR/etc/sqlhosts file. If the network service is
available on the system but not on the database server, ask your DBA to
turn on the service when the DBA initializes the database server.


-25593	Network listener failed to make an open I/O channel to be non-blocking.

Report this operating-system error to the operating-system
administrator. It might require a system reboot.


-25594	Shared Memory client failed to alert the database server for service.

There are two possible reasons for this error:

If the error number is zero, the problem is memory corruption.

If the error number is not zero, an operating system call failed, usually 
because a semaphore operation could not be performed. 

Report the problem to the system administrator, who should restart the 
database server or restart the computer. In either case, call IBM Support. 
For operating system call failure, Support might advise you to set the 
environment variables IFX_SEMOP_INTERVAL or IFX_SEMOP_RETRY.


-25595	Invalid message received during connection attempt.

An error occurred when you tried to connect to the desired database server.

If you are using IBM Informix Dynamic Server, IBM Informix Universal Server, or
IBM Informix OnLine Dynamic Server, verify that the database server is still
online. If you are using IBM Informix SE, verify that the sqlexecd daemon
for the database server is still running. Also, verify that the
$INFORMIXDIR/etc/sqlhosts file entry for the database server is correct.


-25596	The INFORMIXSERVER value is not listed in the sqlhosts file or the
Registry.

The default database server name that the INFORMIXSERVER environment
variable specifies must be a valid database server name in the file
$INFORMIXDIR/etc/sqlhosts on UNIX or the registry on Windows. Check
that the specified server is listed in the sqlhosts file or the
registry.


-25597	Error in system pipe processing.

This system failure might indicate a problem accessing environment
variables. Note the system error number and see the operating-system
administrator for assistance.


-25598	Communications usage error: Invalid state transition.

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


-25599	Network connection error - no listener.

The client application is attempting to connect to a remote server.
However, no listener daemon is running on the remote host. Check that
the listener daemon is started on the remote host and retry the
connection.


-25600	The relay module cannot get environment variable SQLRM.  System error
error-number.

Check with your system administrator for problems with the system.


-25601	This relay module cannot execute relay module module-name for another
protocol.

Validate that the named relay module is installed on your system.


-25602	The local database server server-name cannot be forked by the relay
module.  System error number.

Check with your system administrator for problems with the system.


-25603	Attempt to prepare more than one statement before connecting to a
database.

Check your application to make sure that you prepare only one of the
CREATE DATABASE, START DATABASE, or DROP DATABASE statements before you
connect to a database.


-25604	The database name syntax conflicts with the options in the statement.

Check your application to make sure that your database syntax uses the
correct options accordingly in the statements.


-25605	SQLEXEC must be set to create a local database using the relay module.

Check that you have set the SQLEXEC environment variable to the local
IBM Informix SE database server (for database servers prior to Version
6.0).


-25606	Unknown product identification string in the database server on the
local machine.

Check that you have installed the database server.


-25607	Statement not supported. Database not selected yet.

You issued an SQL statement that requires an open database, but you did
not select a database. Select the desired database and retry the
statement.


-25700	UUID Cache corrupted/not initialized.

The database server's list of server UUIDs has become corrupted.

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


-25701	The specified servername <servername> is not in SYSSERVERS.

You attempted to use ALTER SERVERUUID <servername> with a database server
name that is not in the sysservers table of the syscdr database.

Modify the ALTER SERVERUUID statement to use a database server name that
is in the sysservers table.


-25702	Error receiving the UUID from remote server <servername>.

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


-25703	UUID cache not initialized.

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


-25704	Attempt to increment/decrement the reference count on a remote
smartblob.

You cannot update the reference count for a large object (BLOB or CLOB) that
is on a remote server. Also, you cannot store references to a local large
object in a remote table.

Verify that all commands that manage reference counts refer only to large
objects that are in the local database.


-25705	Invalid UUID. Server name corresponding to the UUID cannot be
located.

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


-25706	Attempt to delete ServerUuid entry for the local server.

You issued the statement DROP SERVERUUID <servername> where <servername> is
the current database server. A database server cannot drop its own UUID. 

Change <servername> in your DROP SERVERUUID statement. 


-25707	Attempt to alter ServerUuid entry for local server.

You issued the statement ALTER SERVERUUID <servername> where <servername> is
the current database server. A database server cannot alter its own UUID. 

Change <servername> in your ALTER SERVERUUID statement.


-25708	Unable to find servername from UUID.

This error can arise when a client application gets a UUID from one database
server and attempts to use that UUID on another system. If, on the second
database server, the sysserver table of the syscdr database is not up-to-
date, the UUID value on the second database server might either be missing
or disagree with the UUID value on the first database server.

Suppose you had three database servers, A, B, and C. Database server A has
communicated with C, thus causing the syscdr tables on A and C to be updated.
However, database server B has never communicated with C, so the syscdr
database on B does not contain a UUID for C. If the application obtains a
large-object handle from A that refers to a large object on C and then sends
that LO handle to B, B can tell that the LO handle refers to a remote site 
but cannot resolve the UUID.

Check the source of the UUID value. Verify that the UUID value is from
the database server on which you are attempting to use it or verify
that the syscdr databases are up-to-date on both database servers.


-25710	Invalid routine structure in server to server fastpath call.

This error can occur if you use an invalid MI_FUNC_DESC value.

However, the error is probably an internal error. If the error recurs, 
note all circumstances and contact IBM Technical Support.


-25711	No more than three connections can be involved in a single
fastpath call. 

You executed a routine that opens a remote connection that in turn calls
another routine that opens a remote connection, and so on. The result is that
the nested routines try to open more than the maximum allowed number of
connections.

Examine your routines and reduce the number of connections requested. 


-25712	Routine <routine_name> cannot be called from a remote server. 

The database server cannot access the routine <routine_name> from a remote 
database server.

Install <routine_name> on your local database server before calling it.


-25713	Attempting to run a cross server routine <routine_name> in
parallel.

You have attempted to execute a routine on a remote database server in
parallel.Routines that execute remotely should not be parallelizable.

Remove the PARALLELIZABLE modifier from the definition of the routine
<routine_name>.


-25718	Cannot insert or update from a nonlogging database to a logging
database.

When the local database is nonlogging, the only operations allowed on
a remote database are operations that read information. You cannot change
information on a remote database when the local database is nonlogging.

Remove the insert or update operation, or change the local database to a
logging database, or change the remote database to a nonlogging database.


-25720	Invalid combination of modifiers DISTRIBUTEBINARY and <modifer>.

An opaque data type cannot have the both the modifier <modifier> and 
DISTRIBUTEBINARY.

Modify your CREATE OPAQUE TYPE or ALTER OPAQUE TYPE statement to remove the 
inappropriate modifier.


-25721	Invalid combination of modifiers ISCANONICAL and DONOTDISTRIBUTE.

An opaque data type cannot have both the ISCANONICAL and DONOTDISTRIBUTE
attributes.

Modify your CREATE OPAQUE TYPE or ALTER OPAQUE TYPE statement to remove one
of the modifiers.


-25722	Invalid combination of modifiers DONOTDISTRIBUTE and
DISTRIBUTESREFERENCES.

An opaque data type cannot have both the DONOTDISTRIBUTE and
DISTRIBUTESREFERENCES attributes.

Modify your CREATE OPAQUE TYPE or ALTER OPAQUE TYPE statement to remove one
of the modifiers.


-25723	A modifier may not appear more than once in an ALTER statement.

An ALTER OPAQUE TYPE statement includes a repeated mention of a modifier such
as DONOTDISTRIBUTE or ISCANONICAL.

Examine your statement and remove the repeated modifier.


-25724	May not modify built-in type <data_type_name>.

Only user-defined data types are valid with the ALTER OPAQUE TYPE statement.
The data type <data_type_name> is a built-in data type.

Remove the ALTER OPAQUE TYPE statement.


-25725	Attempt to add duplicate modifier <modifier>.

The opaque data type in your ALTER OPAQUE TYPE statement already includes the
modifier <modifier>. 

Remove <modifier> from the ALTER OPAQUE TYPE statement.


-25726	Attempt to drop non-existent modifier <modifier>.

The modifier that you supplied in the DROP <modifier> clause of 
ALTER OPAQUE TYPE is not a modifier for that opaque type. You cannot drop a
modifier that is not present. 

Correct your ALTER OPAQUE TYPE statement. To find the modifiers that are 
associated with the opaque type, use the following statement:

   SELECT * from sysxtdtypes WHERE name = <opaque_type_name>.


-25727	Modifier <modifier> is incompatible with SRVSENDRECV/DBSENDRECV
cast.

You cannot create a srvsendrecv or dbsendrecv cast for an opaque type defined
with the modifier <modifier>.

Remove <modifier> from the definition of the data type or drop the cast.


-25728	Type <data_type_name> is not the same in the local and remote
database.

The attributes of the user-defined data type <data_type_name> are different
on the local and remote databases. A UDT used in a distributed query must
have the same attributes in all databases accessed by the query. 

Examine the definition of the <data_type_name> UDT in both your local and
remote databases. Modify one or both of the UDTs so that they are the same.

You can use the oncheck utility to check for compatible data types between
servers. For example: 

   oncheck -cvt db1@server1 db2@server2.


-25729	Type <opaque_type_name> may not be used in a distributed query
(DONOTDISTRIBUTE).

The user-defined type <opaque_type_name> was created with the DONOTDISTRIBUTE
modifier. UDTs with the DONOTDISTRIBUTE attribute cannot be used in queries
that access more than one database. 

Modify the query or change the attributes of the <opaque_type_name> data 
type.


-25731	Error Opening the Remote File <opaque_type_name>.

The database server could not open the requested remote file. Possible causes
of the failure include: 

   The file does not exist.
   The permissions on the file do not permit this user to access the file.
   The file specification is wrong. 

Verify that the remote file exists, that its access permissions are set
correctly, and that the syntax of the filename is correct. Remote
files names must be specified with <filename>@<servername>.


-25733	Error Reading from the Remote File.

The database server could not read the requested remote file. Possible causes
of this error include:

   The file does not exist.
   The permissions on the file do not permit this user to access the file.
   The file specification is wrong. 

Verify that the access permissions are set correctly, and that the syntax of
the filename is correct. Remote filenames must be specified with
<filename>@<servername>.


-25736	The extended type <data_type_name> has not been defined in the
local database.

The data type <data_type_name> does not have a definition on the local
database. All extended data types that are used in distributed queries
must be defined in both the local and remote databases.

Make sure that <data_type_name> is defined in both the local and remote
databases and that the definitions have the same attributes.


-25737	Cluster Indexes cannot be created in an online environment.

ONLINE keyword isn't supported for cluster indexes.


-25738	Index can be created online only for btree secondary access method.

An index can be successfully created with the ONLINE keyword only if the
secondary access method is btree.


-25745	UUID already exists for <servername>.

You issued a CREATE UUID <servername> for a database server that already is
associated with a UUID. That is, <servername> is included in the sysservers
table of the syscdr database.

If the database server <servername> has a new UUID because it was
reinitialized, use ALTER SERVERUUID <servername> to update the UUID in the
sysservers table. 

If the database server <servername> no longer exists, you can use 
DROP SERVERUUID to remove the entry from the sysservers table. It is not
necessary to remove a nonexistent database server from sysservers. Leaving 
the entry in the sysservers table does not cause problems.


-25746	UUID does not exist for <servername>.

You cannot DROP SERVERUUID <servername> or ALTER SERVERUUID <servername>
unless <servername> is associated with a UUID in the sysservers table of the
syscdr database.

To find the names of database servers whose UUIDs exist, use the following
query: 

   SELECT * FROM syscdr:sysservers.


-25747	Do not have permissions to execute the drop serveruuid statement.

You must be a DBA to use to DROP SERVERUUID statement.


-25751	Cannot cancel job on the host.

DataExtract cannot cancel the current SELECT clause that has been
submitted to the host. For more information, see the accompanying API error
message.


-25753	Cannot write to local configuration file.

DataExtract cannot write to the local configuration file, openview.cfg.
The file is in the path that the ANSAPI environment variable specifies,
or in the current directory if ANSAPI is not set. Either the file or
path does not have the correct permissions, or not enough disk space is
available. Verify that the file and path have the correct permissions
and that sufficient disk space is available.


-25755	Cannot read host configuration file.

DataExtract cannot read the host configuration file, config.txt. The
file is in the path that the ANSAPI environment variable specifies, or
in the current directory if ANSAPI is not set. Verify that the file and
path have the correct permissions.


-25756	Cannot read local configuration file.

DataExtract cannot read the local configuration file, openview.cfg. The
file is in the path that the ANSAPI environment variable specifies, or
in the current directory if ANSAPI is not set. Verify that the file and
path have the correct permissions.


-25757	Glossary database not open.

DataExtract cannot open the glossary database. Either DataExtract
encountered an internal error, or the system permissions to the
glossary database have been modified. Check the glossary database to
make sure that the system permissions to the database have not been
altered. If the problem persists, ask the glossary database owner to
drop the glossary database and run the glossary Refresh option to
re-create it.


-25761	Host Environment parameter is invalid.

The value that you entered in the Host Environment parameter on the
SETUP screen is not valid or is not supported. Change the value to one
of the following: CICS, CMS, IMS, TSO.


-25762	CICS Paging Code parameter is required.

A paging code is required if you are using Answer/Extractor in CICS.
Consult your Answer/Extractor DBA to find out the CICS paging code.


-25763	CICS Termination Code parameter is required for the CICS host
environment.

A termination code is required if you are using Answer/Extractor in
CICS. Consult your Answer/Extractor DBA to find out the CICS
termination code.


-25764	Answer/DB Profile Name parameter is required.

The Answer/Extractor profile name is required to determine your access
permissions to the host tables. Consult your Answer/Extractor DBA to
find out your Answer/Extractor profile name.


-25765	Answer/DB invocation code is required.

The Answer/Extractor invocation code is required to invoke
Answer/Extractor. Consult your Answer/Extractor DBA to find out the
Answer/Extractor invocation code for your host environment.


-25766	Lock Time parameter must be from 1 to 300 seconds.

The lock time that you entered is invalid. Change the lock time to a
number from 1 to 300.


-25767	Stable Time parameter must be from 2 to 18 seconds.

The stable time that you entered is invalid. Change the stable time to
a number from 2 to 18.


-25768	Connect Script parameter is required.

The Connect Script parameter on the SETUP screen is blank. Enter the
filename of a valid connect script. You can use the Scripter utility to
create a valid connect script if it does not exist.


-25769	Cannot access the specified connect script file.

The specified connect script file does not exist or does not have the
correct permissions. Check the spelling of the filename. Check that the
file exists in the path that the ANSAPI environment variable specifies,
or in the current directory if ANSAPI is not set.


-25770	Disconnect Script parameter is required.

The Disconnect Script parameter on the SETUP screen is blank. Enter the
filename of a valid disconnect script. Use the Scripter utility to
create a valid script if it does not exist.


-25771	Cannot access the specified disconnect script file.

The specified disconnect script file does not exist or does not have
the correct permissions. Check the spelling of the filename. Check that
the file exists in the path that the ANSAPI environment variable
specifies, or in the current directory if ANSAPI is not set.


-25772	Class parameter must be from 1 to 15.

The specified Answer/Extractor processing class is incorrect. Change
the Class parameter to a number from 1 to 15.


-25773	The Host Process Timeout parameter must be from 1 to 1440 minutes.

The specified processing timeout limit is incorrect. Change the Host
Process Timeout parameter to a number from 1 to 1,440.


-25774	Max Records to Process parameter must be from 1 to 99,999,999.

The specified value is incorrect. Change the value to within the
accepted range.


-25775	Max Records to Retrieve parameter must be from 0 to 9,999.

The specified value is incorrect. Change the value to within the
accepted range.


-25776	Commit Frequency parameter must be from 1 to 99,999,999 rows.

The specified value is incorrect. Change the value to within the
accepted range.


-25777	Invalid value. Must be either Y or N.

You answered a prompt with a letter other than Y or N. Change your
answer to Y or N.


-25778	Error writing to output file.

While DataExtract is extracting host data into a file, it cannot write
to the specified file. Verify that enough disk space is available and
that the file has the correct permissions.


-25779	Cannot open output file.

While extracting host data into a file, DataExtract cannot open the
specified output file. If the file already exists, check that the file
has the correct permissions.


-25780	Warning: No field descriptions defined for the host table.

While DataExtract was refreshing your glossary, it found that no field
descriptions are defined on the host computer for the host table that
is being refreshed. This message is a warning only. Consult your
Answer/Extractor DBA about adding field descriptions for the host
table.


-25781	Missing host table name or FROM clause.

The current EXTRACT statement is missing the host-table name or the
entire FROM clause. Correct and rerun the EXTRACT statement.


-25782	Warning: Incomplete results have been returned from the host.

The data that you selected probably exceeded the disk space that is
available to you on the host. The results that were retrieved from the
host are incomplete. Take one or more of the following actions:

    *   Modify your SELECT clause to select less data or fewer fields.

    *   Consult your host Systems Administrator for more disk space.

    *   Modify your SIZE clause to retrieve fewer rows.

    *   Modify the Max Records to Retrieve parameter on the SETUP
        screen.


-25783	Value in SIZE clause is invalid.

SIZE clause contains unacceptable characters. An acceptable value must
be a number from 1 to 9,999.


-25784	Value in SIZE clause is out of range.

The specified value is incorrect. An acceptable value must be a number
from 1 to 9,999.


-25785	Cannot create external routine (%s) without the EXTEND role.

You cannot create an external function or a procedure without the 
privileges of the EXTEND role.


-25786	Only DBSA can grant/revoke permissions for the EXTEND role.

Only members of the DBSA group can grant or revoke permissions
for the EXTEND role.


-25787	Drop EXTEND role while converting to 10.00.

You need to drop the role while converting to 10.00 and then try the
conversion again.


-25788	Cannot unload or reload module without the EXTEND role.

You cannot unload or reload an external function or a procedure 
without the privileges of the EXTEND role.


-25789	The file name in SET EXPLAIN FILE or SET DEBUG FILE must be a non-null string.

The argument specified for the file name in the SET EXPLAIN FILE or
SET DEBUG FILE statement must be a non-null character data type (CHAR
or VARCHAR).


-25790	File name in SET EXPLAIN FILE or SET DEBUG FILE statement is too long.

The file name provided in the SET EXPLAIN FILE or SET DEBUG FILE statement is
longer than maximum allowed length of 256 bytes.  Rename the file or store it
in a directory with a shorter path.

-25791	Cannot execute privileged built-in Java routine without the EXTEND role or DBSA authority.

For security reasons, only a DBSA or users who have been granted the EXTEND
role, if the IFX_EXTEND_ROLE configuration parameter is enabled, can execute
the following built-in Java routines:
install_jar, remove_jar, replace_jar, install_jar_deploy, remove_jar_undeploy,
alter_java_path, setUDTExtName, and unsetUDTExtName


-25800	Cannot specify overlapping fragment expressions for interval or list fragmentation.

The fragment expressions for interval or list fragmentation cannot overlap.
For example, the following statement generates an error:

    CREATE TABLE address (street VARCHAR(128), city VARCHAR(32),
                          state CHAR(2), zip INT)
        FRAGMENT BY RANGE(zip)
        INTERVAL(1000) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 5000 IN dbs3,
            PARTITION p2 VALUES < 10000 IN dbs3,
            PARTITION p3 VALUES < 10000 IN dbs4;

The partition p2 and p3 are overlapping. The fragment expressions for p2 and
p3 are the same.

The following statement also generates an error:

    CREATE INDEX add_state_idx ON address(state)
        FRAGMENT BY LIST(state)
            PARTITION p1 VALUES ('CA','OR') IN dbs1,
            PARTITION p2 VALUES ('NY', 'NJ', 'CA') IN dbs2,
            PARTITION p3 VALUES (NULL) IN dbs3,
            PARTITION p4 REMAINDER IN dbs3;

The partition p1 and p2 are overlapping. The value 'CA' appears in both p1
and p2 partitions.


-25801	Cannot specify a dbspace more than once in the STORE IN clause.

A dbspace cannot be specified more than once in the STORE IN clause. For
example, the following statement generates an error:

    CREATE TABLE address (street VARCHAR(128), city VARCHAR(32),
                          state CHAR(2), zip INT)
        FRAGMENT BY RANGE(zip)
        INTERVAL(1000) STORE IN (dbs1, dbs2, dbs1)
            PARTITION p1 VALUES < 5000 IN dbs3,
            PARTITION p2 VALUES < 10000 IN dbs3,
            PARTITION p3 VALUES < 20000 IN dbs4;

The dbspace dbs1 appears twice in the STORE IN clause.


-25802	The PARTITION clause is mandatory for interval and list fragmentation.

The PARTITION clause is mandatory for interval and list fragmentation.
A partition name must be specified following the PARTITION keyword. For
example, the following statement generates an error:

    CREATE INDEX add_zip_idx ON address(zip)
        FRAGMENT BY RANGE(zip)
        INTERVAL(1000) STORE IN (dbs1, dbs2, dbs3)
            VALUES < 10000 IN dbs3;

The following statement is correct:

    CREATE INDEX add_zip_idx ON address(zip)
        FRAGMENT BY RANGE(zip)
        INTERVAL(1000) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 10000 IN dbs3;


-25803	Interval or list fragmentation must have at least one non-null, non-remainder fragment.

At least one fragment that is not a null fragment and is also not a
remainder fragment must be specified for interval or list fragmentation
definitions. A "null fragment" is a fragment that can only store NULL
data values, A "remainder fragment" is a fragment defined with the REMAINDER
keyword.

The following statements generate an error:

    CREATE TABLE address (street VARCHAR(128), city VARCHAR(32),
                          state CHAR(2), zip INT)
        FRAGMENT BY RANGE(zip)
        INTERVAL(1000) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES IS NULL IN dbs3;

    CREATE INDEX add_state_idx ON address(state)
        FRAGMENT BY LIST(state)
            PARTITION p1 VALUES (NULL) IN dbs2,
            PARTITION p2 REMAINDER IN dbs3;

The above statements violates the interval and list fragmentation requirement
that at least one fragment be neither a null nor a remainder fragment.

The following statements are correct:

    CREATE TABLE address (street VARCHAR(128), city VARCHAR(32),
                          state CHAR(2), zip INT)
        FRAGMENT BY RANGE(zip)
        INTERVAL(1000) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 10000 IN dbs3;

    CREATE INDEX add_state_idx ON address(state)
        FRAGMENT BY LIST(state)
            PARTITION p1 VALUES ('CA','OR') IN dbs1,
            PARTITION p3 VALUES (NULL) IN dbs2,
            PARTITION p4 REMAINDER IN dbs3;

    CREATE INDEX add_zip_idx ON address(zip)
        FRAGMENT BY RANGE(zip)
        INTERVAL(1000) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 10000 IN dbs3,
            PARTITION p2 VALUES IS NULL IN dbs4;

In the statements abvoe, the p1 fragment is a non-null, non-remainder
fragment, thereby satisfying the requirement for interval and list
fragmentation.


-25804	The interval value must be a non-zero positive constant.

The resultant value of the expression for the interval value must be a non-zero
positive constant. For example, the following statement generates an error:

    CREATE TABLE address (street VARCHAR(128), city VARCHAR(32),
                          state CHAR(2), zip INT)
        FRAGMENT BY RANGE(zip)
        INTERVAL(-1000) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 10000 IN dbs3;

The interval value is negative.

The following statement also generates an error:

    CREATE TABLE address (street VARCHAR(128), city VARCHAR(32),
                          state CHAR(2), zip INT)
        FRAGMENT BY RANGE(zip)
        INTERVAL(zip) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 10000 IN dbs3;

The interval value is the column zip, which is not a constant.


-25805	The interval value must be a numeric or INTERVAL data type.

The resultant data type of the expression for an interval value must satisfy
one of these two sets of conditions:
    <1>  If the fragment key is a numeric type, the expression must return
             a built-in numeric data type.  This cannot be a MONEY data type,
             and it cannot have a fractional part.

    <2>  If the fragment key is a  DATE or DATETIME type, the expression
             must return an INTERVAL data type whose last field qualifier
             cannot be a FRACTION.

The following statements generate an error:

    CREATE TABLE address (street VARCHAR(128), city VARCHAR(32),
                          state CHAR(2), zip INT)
        FRAGMENT BY RANGE(zip)
        INTERVAL("123") STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 10000 IN dbs3;

The interval value "123" is not a numeric or INTERVAL data type.

    CREATE INDEX add_zip_idx ON address(zip)
        FRAGMENT BY RANGE(zip)
        INTERVAL(1000.20) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 10000 IN dbs3;

The interval value 1000.20 has a fractional part.

The following statement is correct:

    CREATE INDEX add_zip_idx ON address(zip)
        FRAGMENT BY RANGE(zip)
        INTERVAL(100+900) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 10000 IN dbs3;

The interval value (100+900)is an expression whose result is numeric without
a fractional part.


-25806	The fragment key for interval fragmentation must be a numeric, DATE, or DATETIME type.

The fragment key, which is the column expression on which the table or index is
fragmented, must be a numeric, DATE, or DATETIME type. For example, the
following statement generates an error:

    CREATE TABLE address (street VARCHAR(128), city VARCHAR(32),
                          state CHAR(2), zip INT)
        FRAGMENT BY RANGE(city)
        INTERVAL(5) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 10000 IN dbs3;

The fragment key is the column city, which is of type CHAR.

The following statements are correct:

    CREATE TABLE orders (order_num INT, order_date DATE, customer_num INT,
                         ship_instruct_code CHAR(1))
        FRAGMENT BY RANGE(order_date)
        INTERVAL(INTERVAL(3) MONTH TO MONTH) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < DATE('01/01/2009') IN dbs1;

    CREATE INDEX ord_ship_idx ON orders(ship_instruct_code)
        FRAGMENT BY RANGE(ASCII(ship_instruct_code))
        INTERVAL(10) STORE IN (dbs1, dbs2)
            PARTITION p1 VALUES < 65 IN dbs1;


-25807	The fragment key for interval fragmentation must be a single column expression.

The fragment key, which is the column expression on which the table or index is
fragmented, must be a single column expression. For example, the following
statement generates an error:

    CREATE TABLE employee (emp_id INTEGER, emp_name CHAR(64), ssn CHAR(12),
                           basepay FLOAT, varpay FLOAT, dept_id SMALLINT)
        FRAGMENT BY RANGE(ROUND(basepay+varpay))
        INTERVAL(2000) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 0 IN dbs3;

The fragment key references two columns, basepay and varpay, which is not
allowed.


-25808	The expression defining the upper limit of each fragment must be a constant.

The fragment expression for interval fragmentation is of the form
VALUES < <upper_limit_expr>. The expression for the upper limit must be a
constant. For example, the following statement generates an error:

    CREATE TABLE employee (emp_id INTEGER, emp_name CHAR(64), ssn CHAR(12),
                           basepay FLOAT, varpay FLOAT, dept_id SMALLINT)
        FRAGMENT BY RANGE(emp_id)
        INTERVAL(2000) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < emp_id+1 IN dbs3;

The upper limit of fragment p1 is a column expression, emp_id+1, which
is not a constant.


-25809	One or more dbspaces specified in the STORE IN clause does not exist.

One or more dbspaces specified in the STORE IN clause does not exist. Ensure
that the dbspaces specified in the STORE IN clause exist and are of the
same pagesize. If the table has an initial set of range fragments, the pagesize
of the dbspaces in the STORE IN clause must match the pagesize of the
dbspaces for the range fragments.


-25810	The fragment key, interval value, and upper limit of the fragments are not compatible.

The fragment key (the column expression on which the table or index is
fragmented), the interval value, and the upper limit of fragments are not
compatible data types. For a numeric fragment key, the interval value must be
a numeric type and the upper limit of a fragment must be numeric. For a
fragment key of DATE or DATETIME type, the interval value must be an INTERVAL
type and the upper limit of a fragment must be a DATE or DATETIME type.

The error can also occur in each of the following scenarios:
    - For a fragment key of DATETIME type, the first field qualifier of the
      fragment key is greater than the last field qualifier of the interval
      value.
    - For a fragment key of DATE type, the interval value is not an integer
      multiple of days (i.e the hours, minutes, seconds or fractions are
      nonzero).
    - For a fragment key of DATE or DATETIME type, the first field qualifier
      of the fragment key and the first field qualifier of the upper limit of
      a fragment are not the same.
    - The resultant type of the upper limit of a fragment is not a built-in
      data type.

For example, the following statements generate an error:

  Example 1:

    CREATE TABLE employee (emp_id INTEGER, emp_name CHAR(64), ssn CHAR(12),
                           basepay FLOAT, varpay FLOAT, dept_id SMALLINT)
        FRAGMENT BY RANGE(emp_id)
        INTERVAL(3 UNITS YEAR) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 3000 IN dbs3;

    The fragment key and the upper limit of fragment p1 are numeric,  but the
    interval value is of the incompatible INTERVAL type.

  Example 2:

    CREATE TABLE orders (order_num INT, order_time DATETIME HOUR TO SECOND,
                         customer_num INT, ship_instruct_code CHAR(1))
        FRAGMENT BY RANGE(order_time)
        INTERVAL(3 UNITS DAY) 
            PARTITION p1 VALUES < DATETIME(01:00:00) HOUR TO SECOND IN dbs1;

    In the above example  the first field qualifier (HOUR) of the fragment
    key order_time is greater than the last field qualifier (DAY) of the
    interval value.

    The correct usage is as follows:

    CREATE TABLE orders (order_num INT, order_time DATETIME HOUR TO SECOND,
                         customer_num INT, ship_instruct_code CHAR(1))
        FRAGMENT BY RANGE(order_time)
        INTERVAL(3 UNITS HOUR) 
            PARTITION p1 VALUES < DATETIME(01:00:00) HOUR TO SECOND IN dbs1;

  Example 3:

    CREATE TABLE orders (order_num INT, order_time DATETIME YEAR TO SECOND,
                         customer_num INT, ship_instruct_code CHAR(1))
        FRAGMENT BY RANGE(order_time)
        INTERVAL(3 UNITS DAY)
            PARTITION p1 VALUES < DATETIME(01-01 01:00:00) MONTH TO SECOND IN dbs1;

    In the above example, the first field qualifier (YEAR) of the fragment
    key order_time is not same as the first field qualifier (MONTH) of the
    upper limit of the initial range fragment.

    The correct usage is as follows:

    CREATE TABLE orders (order_num INT, order_time DATETIME YEAR TO SECOND,
                         customer_num INT, ship_instruct_code CHAR(1))
        FRAGMENT BY RANGE(order_time)
        INTERVAL(3 UNITS DAY)
            PARTITION p1 VALUES < DATETIME(2010-01-01 01:00:00) YEAR TO SECOND IN dbs1;

  Example 4:

    CREATE TABLE orders (order_num INT, order_date DATE,
                         customer_num INT, ship_instruct_code CHAR(1))
        FRAGMENT BY RANGE(order_date)
        INTERVAL(3 UNITS HOUR) 
            PARTITION p1 VALUES < DATE('01/01/2009') IN dbs1;

    In the above example the fragment key order_date is of type DATE
    but the interval value (3 UNITS HOUR) is not an integer multiple of DAY.

    The correct usage is as follows:

    CREATE TABLE orders (order_num INT, order_date DATE,
                         customer_num INT, ship_instruct_code CHAR(1))
        FRAGMENT BY RANGE(order_date)
        INTERVAL(24 UNITS HOUR)
            PARTITION p1 VALUES < DATE('01/01/2009') IN dbs1;


-25811	The transition value for interval fragments must be aligned to the boundary of the interval value type.

The transition value, or the upper limit of the last range fragment, must be
aligned to the boundary of the interval value type.

The following requirements apply:
    - For an interval value of any numeric data type, the transition value
      cannot have a fractional part.
    - For an interval value of INTERVAL type whose first field qualifier is
      YEAR or MONTH, the transition value cannot not contain field qualifiers
      smaller than MONTH. Unless the DAY field has a value of 01 and the
      values of any time units smaller than DAY are zero (for example,
      01 00:00:00.00000).
    - For an interval value of INTERVAL type whose first field qualifier is
      DAY or a smaller time unit, the transition value cannot have FRACTION
      as the last field qualifier, unless the FRACTION field has a value of
      zero.

For example, the following statements generate an error:

  Example 1:

    CREATE TABLE employee (emp_id INTEGER, emp_name CHAR(64), ssn CHAR(12),
                           basepay FLOAT, varpay FLOAT, dept_id SMALLINT,
                           hire_date DATE)
        FRAGMENT BY RANGE(basepay)
        INTERVAL(1000) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 40000.50 IN dbs1,
            PARTITION p2 VALUES < 60000.50 IN dbs2,
            PARTITION p3 VALUES < 80000.50 IN dbs3;

    In the above example the upper limit of first and intermediate range
    fragments can be of any numeric type, but the upper limit of the last
    range fragments (which is the transition value for interval fragments)
    must be an INTEGER. The transition value in the above example, 80000.50,
    has a fractional part.

    The correct usage is as follows:

    CREATE TABLE employee (emp_id INTEGER, emp_name CHAR(64), ssn CHAR(12),
                           basepay FLOAT, varpay FLOAT, dept_id SMALLINT,
                           hire_date DATE)
        FRAGMENT BY RANGE(basepay)
        INTERVAL(1000) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 40000.50 IN dbs1,
            PARTITION p2 VALUES < 60000.50 IN dbs2,
            PARTITION p3 VALUES < 80001 IN dbs3;

  Example 2:

    CREATE TABLE employee (emp_id INTEGER, emp_name CHAR(64), ssn CHAR(12),
                           basepay FLOAT, varpay FLOAT, dept_id SMALLINT,
                           hire_date DATE)
        FRAGMENT BY RANGE(hire_date)
        INTERVAL(3 UNITS YEAR) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < DATE('03/25/2006') IN dbs3;

    In the above example the interval value is specified in units of YEAR, but
    the transition value is not aligned to the year or month boundary.

    The correct usage is as follows:

    CREATE TABLE employee (emp_id INTEGER, emp_name CHAR(64), ssn CHAR(12),
                           basepay FLOAT, varpay FLOAT, dept_id SMALLINT,
                           hire_date DATE)
        FRAGMENT BY RANGE(hire_date)
        INTERVAL(3 UNITS YEAR) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < DATE('03/01/2006') IN dbs3;

  Example 3:

    CREATE TABLE orders (order_num INT, order_time DATETIME YEAR TO SECOND,
                         customer_num INT, ship_instruct_code CHAR(1))
        FRAGMENT BY RANGE(order_time)
        INTERVAL(INTERVAL(10 12) DAY(2) TO HOUR)
            PARTITION p1 VALUES < DATETIME(2010-03-25 01:00:00.123) YEAR TO FRACTION(3) IN dbs1;

    In the above example the interval value is a DAY(2) TO HOUR interval.
    The INTERVAL field qualifier transition value is not aligned to the
    second boundary (because it contains a nonzero FRACTION value).

    The correct usage is as follows:

    CREATE TABLE orders (order_num INT, order_time DATETIME YEAR TO SECOND,
                         customer_num INT, ship_instruct_code CHAR(1))
        FRAGMENT BY RANGE(order_time)
        INTERVAL(INTERVAL(10 12) DAY(2) TO HOUR)
            PARTITION p1 VALUES < DATETIME(2010-03-25 01:00:00.000) YEAR TO FRACTION(3) IN dbs1;


-25812	The difference between the old and new transition values must be a multiple of the interval value.

If altering the fragmentation scheme changes the transition value, and the
table or index has interval fragments, then the difference between the old
and new transition values must be a multiple of the interval value.

For example, consider a table with following schema:

    CREATE TABLE employee (emp_id INTEGER, emp_name CHAR(64), ssn CHAR(12),
                           basepay FLOAT, varpay FLOAT, dept_id SMALLINT,
                           hire_date DATE)
        FRAGMENT BY RANGE(emp_id)
        INTERVAL(3000) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 4000 IN dbs1,
            PARTITION p2 VALUES < 6000 IN dbs2,
            PARTITION p3 VALUES < 8000 IN dbs3;

If the above table has interval fragments (added automatically when emp_id 
values 8000 or greater were inserted), then modifying the transition value
to 8500 will not be allowed.

The following statement generates an error:

    ALTER FRAGMENT ON TABLE employee MODIFY INTERVAL TRANSITION TO 8500;

The difference between the new transition value, 8500, and the old transition
value, 8000, is not a multiple of the interval value, 3000.

Similarly, dropping or detaching the transition fragment or the last range
fragment changes the transition value. The gap created by the drop or
detach must be a multiple of the interval value.

The following statement generates an error:

    ALTER FRAGMENT ON TABLE employee DROP PARTITION p3;

The difference between the new transition value, 6000, and the old transition
value, 8000, or the gap created by the drop is not a multiple of the
interval value, 3000.

-25813	The partition name used in the fragmentation scheme is not allowed.

The system-generated partition names for interval fragments start with 'sys_p'.
Therefore, the partition names for initial fragments of an interval fragmented
table or index cannot have names that start with the same characters.

The following statement generates an error:

    CREATE TABLE employee (emp_id INTEGER, emp_name CHAR(64), ssn CHAR(12),
                           basepay FLOAT, varpay FLOAT, dept_id SMALLINT,
                           hire_date DATE)
        FRAGMENT BY RANGE(hire_date)
        INTERVAL(3 UNITS YEAR) STORE IN (dbs1, dbs2, dbs3)
            PARTITION sys_p1 VALUES < DATE('01/01/2006') IN dbs3;

In the above example the partition name starts with 'sys_p', which is not
allowed, because the 'sys_p' prefix is reserved for system-defined storage
objects.

The correct usage is as follows:

    CREATE TABLE employee (emp_id INTEGER, emp_name CHAR(64), ssn CHAR(12),
                           basepay FLOAT, varpay FLOAT, dept_id SMALLINT,
                           hire_date DATE)
        FRAGMENT BY RANGE(hire_date)
        INTERVAL(3 UNITS YEAR) STORE IN (dbs1, dbs2, dbs3)
            PARTITION pt1 VALUES < DATE('01/01/2006') IN dbs3;


-25814	Incorrect argument passed to function NUMTOYMINTERVAL(), NUMTODSINTERVAL(), TO_YMINTERVAL(), or TO_DSINTERVAL().

An incorrect argument has been passed to one of these functions
NUMTOYMINTERVAL(), NUMTODSINTERVAL, TO_YMINTERVAL(), TO_DSINTERVAL().

The formats of these functions are:

NUMTOYMINTERVAL( <NUMBER>, { "YEAR" | "MONTH" } )
  TO_YMINTERVAL( <NUMBER>, { "YEAR" | "MONTH" } )

NUMTODSINTERVAL( <NUMBER>, { "DAY" | "HOUR" | "MINUTE" | "SECOND" } )
  TO_DSINTERVAL( <NUMBER>, { "DAY" | "HOUR" | "MINUTE" | "SECOND" } )

The <NUMBER> variable can be any literal number, or it can be a column with a
data type that resolves to a number.

The following examples show how to use these functions correctly:

execute function NUMTOYMINTERVAL(1.5,"YEAR");
execute function NUMTODSINTERVAL(120,"MINUTE");

Alternatively, you can pass a single string argument to TO_YMINTERVAL(),
and TO_DSINTERVAL():

TO_YMINTERVAL("YY-mm")
TO_DSINTERVAL("DD HH:MM:SS")

Where:
        YY = years
        mm = months
        DD = days
        HH = hours
        MM = minutes
        SS = seconds

The following examples show how to use a string argument with these functions:

execute function TO_YMINTERVAL("15-6");
execute function TO_DSINTERVAL("1 3:3:7");


-25815	The expression defining the list of values for a fragment in list fragmentation must be a constant.

The expression defining the list of values for a fragment in list fragmentation
must be a constant. For example, the following statement generates an error:

    CREATE TABLE customer (cust_id INTEGER, cust_name CHAR(20), state CHAR(2))
        FRAGMENT BY LIST (state)
        PARTITION p0 VALUES ("KS", "IL") IN dbs0,
        PARTITION p1 VALUES (name, "NR") IN dbs2;

One of the values in the list for fragment p1 is a column, which is not a
constant.


-25816	The dbspace <dbsname> does not exist in list of dbspaces for interval fragments.

The specified dbspaces does not exist in list of dbspaces for interval
fragments of the given table table or index. The following query
will give the current list of dbspaces for interval fragments for a table
and its indexes:

    SELECT t.tabname, f.indexname, f.exprtext
        FROM sysfragments f, systables t
        WHERE f.tabid = t.tabid AND
              f.evalpos = -1 AND
              t.tabname = <tabname>;


-25817	Cannot drop or detach the only remaining non-null, non-remainder fragment.

The fragmentation scheme cannot be altered to drop or detach the last
non-null, non-remainder fragment. Interval or list fragmentation must have at
least one non-null, non-remainder fragment.


-25818	The specified operation or syntax is not supported.
 
The specified operation or syntax is not supported with the fragmentation
scheme of the table or index.


-25819	The INTERVAL clause is allowed with interval fragmentation scheme only.
 
The INTERVAL clause can be specified only while altering the fragmentation
scheme of an interval fragmented table/index or altering the fragmentation
scheme to interval fragmentation.


-25820	Cannot attach two non-fragmented tables to create an interval or list fragmented table.
 
For interval and list fragmentation, the surviving table in attach operation
must be fragmented by interval or list. If you want to attach two
non-fragmented tables, initialize the framentation scheme for one of the
non-fragmented tables to interval or list and then attach the second
one to it.


-25821	Internal error: The interval or list fragmented table/index has zero fragments.

An internal error occurred while reading the catalog entries for an interval
or list fragmented table/index. The table/index does not have any fragments.
If this error recurs, note all circumstances and contact IBM Technical Support.


-25822	Unable to determine fragment position for fragments while moving to new fragmentation scheme.

An error occurred while determining fragment position for fragments in
new fragmentation scheme. The fragment position for one of the fragments
in the new scheme could have exceeded 2147483646. Consider changing the
interval value expression or transition value.


-25823	Cannot specify BEFORE or AFTER clause while adding or attaching a fragment.

The BEFORE or AFTER clause cannot be used while adding or attaching a
fragment to an interval fragmented table/index. The system internally
determines the position of the fragment that is being added ot attached.


-25824	The upper limit of the fragment must be aligned to an interval fragment boundary.

While altering the interval fragmentation scheme to add or attach fragments
above the transition value, the upper limit of the fragment being added
or attached must align at an interval fragment boundary i.e. the
upper limit of the fragment must equal transition value plus a multiple of
the interval value.

For example, the following alter generates an error:

    CREATE TABLE employee (emp_id INTEGER, emp_name CHAR(64), ssn CHAR(12),
                           basepay FLOAT, varpay FLOAT, dept_id SMALLINT,
                           hire_date DATE)
        FRAGMENT BY RANGE(emp_id)
        INTERVAL(1000) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 5000 IN dbs0,
            PARTITION p2 VALUES < 10000 IN dbs0;

    ALTER FRAGMENT ON TABLE employee ADD PARTITION p3 VALUES < 15400;

In the above example, a fragment is being added above the transition value
i.e. an interval fragment is being added. The upper limit of the fragment,
15400, is not aligned to an interval fragment boundary.

The correct usage is as follows:

    ALTER FRAGMENT ON TABLE employee ADD PARTITION p3 VALUES < 16000;
      

-25825	Cannot specify remainder fragment for interval fragmentation.

Interval fragmentated tabl or index cannot have remainder fragment.
Rewrite the statement to remove the remainder fragment specification.


-25826	Cannot specify more than one null fragment for interval or list fragmentation.

Interval or list fragmentated table or index cannot have more than one null
fragment. Rewrite the statement to remove the null fragment specification.


-25827	Cannot add or attach a fragment expressions that matches an exisitng fragment expression.

Interval or list fragmentated table or index cannot have overlapping
fragment expressions.


-25828	An error occurred while adding or attaching a fragment to the initial range fragments.

An internal error occurred while adding or attaching a fragment to the initial
fragments of an interval fragmented table or index. Note all circumstances
and contact IBM Technical Support.


-25829	Cannot modify the fragment expression for an interval fragment.

The fragment expression for an interval fragment is system generated
and cannot be modified.


-25830	The new fragment expression cannot cross adjacent fragment boundaries.

While altering the fragmentation scheme to modify the fragment expression of
range fragments, the new fragment expression cannot cross adjacent
fragment boundaries. The new upper limit of the range fragment must be
greater than the upper limit of the previous range fragment and lesser
than that of the next range fragment.

For example, the following alters generate error:

    CREATE TABLE employee (emp_id INTEGER, emp_name CHAR(64), ssn CHAR(12),
                           basepay FLOAT, varpay FLOAT, dept_id SMALLINT,
                           hire_date DATE)
        FRAGMENT BY RANGE(emp_id)
        INTERVAL(1000) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 5000 IN dbs0,
            PARTITION p2 VALUES < 10000 IN dbs0,
            PARTITION p3 VALUES < 20000 IN dbs4,
            PARTITION p4 VALUES < 25000 IN dbs4;

    ALTER FRAGMENT ON TABLE employee MODIFY
        PARTITION p2 TO PARTITION p2 VALUES < 4000 IN dbs0;

    ALTER FRAGMENT ON TABLE address MODIFY 
        PARTITION p2 TO PARTITION p2 VALUES < 21000 IN dbs0;

The new fragment expression in both of the above alters crosses adjacent
fragment boundries. The new upper limit 4000 of the first alter is lesser
than the upper limit of previous range fragment p1. Similarly, the new upper
limit 21000 of the second alter is greater than that of the next range
fragment p3. The new upper limit for range fragment p2 must be greater
than 5000 and lesser than 20000.

The correct usage is as follows:

    ALTER FRAGMENT ON TABLE address MODIFY 
        PARTITION p2 TO PARTITION p2 VALUES < 12000 IN dbs0;


-25831	Cannot modify fragment expression for transition fragment.

The fragment expression for transition fragment or last range fragment
cannot be modified. However, the MODIFY INTERVAL TRANSITION option
of the ALTER FRAGMENT statement allows modification of the transition
value which in turn can change the fragment expression.

For example, the following alter generates an error:

    CREATE TABLE employee (emp_id INTEGER, emp_name CHAR(64), ssn CHAR(12),
                           basepay FLOAT, varpay FLOAT, dept_id SMALLINT,
                           hire_date DATE)
        FRAGMENT BY RANGE(emp_id)
        INTERVAL(1000) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 5000 IN dbs0,
            PARTITION p2 VALUES < 10000 IN dbs0,
            PARTITION p3 VALUES < 20000 IN dbs4;

    ALTER FRAGMENT ON TABLE employee MODIFY 
        PARTITION p3 TO PARTITION p3 VALUES < 25000 IN dbs4;

The fragment expression for transition fragment p3 cannot be modified
using the above syntax.
    
The following statement that modifies the transition value, will indirectly
change the fragment expression for p3:

    ALTER FRAGMENT ON TABLE employee MODIFY INTERVAL TRANSITION TO 25000;


-25832	Internal error: Could not modify the transition value.

An internal error occurred while modifying the transition value. If this
error recurs, note all circumstances and contact IBM Technical Support.


-25833	Internal error: The compact representation of fragment partitioning could not be constructed.

An internal error occured while constructing the compact representation of
fragment partitioning for interval or list fragmented table/index.
The fragment expressions either overlap or are non-linear.


-25834	The specified alter fragment operation cannot be performed online.

Online alter fragment is supported only with interval fragmented tables.
The following operations can be performed online:
    - attaching interval fragment
    - detaching interval fragment
    - modifying transition value

The following conditions apply for attaching an interval fragment online:
    - The surviving table has to be an interval fragmented table.
    - The consumed table has to be non-fragmented. Only one table can
      be attached at a time.
    - All indexes on the surviving table has to be fragmented same as table
      i.e. all indexes must be attached.
    - For each index on the surviving table, there must be a matching index
      on the consumed table i.e. index on the same set of columns.
    - The indexes on the consumed table must be detached and stored in a
      single dbspace. The dbspace for the index must be same as the dbspace
      for the consumed table.
    - If the index on the surviving table is unique, the corresponding
      matching index on the consumed table must be unique.
    - The consumed table must have a check constraint that exactly matches
      the fragment expression being attached and must span a single interval
      only. This is necessary to ensure no data movement.

The following conditions apply for detaching an interval fragment online:
    - The surviving table has to be an interval fragmented table.
    - All indexes on the surviving table has to be fragmented same as table
      i.e. all indexes must be attached.


-25835	The transition value specified is not valid.

While altering the fragmentation scheme to modify the transition value,
the new transition value must be greater than old transition value.
If there are interval fragments following the new transition value then
the new transition value must align at an interval fragment boundary.

For example, consider a table with following schema:
  
    CREATE TABLE employee (emp_id INTEGER, emp_name CHAR(64), ssn CHAR(12),
                           basepay FLOAT, varpay FLOAT, dept_id SMALLINT,
                           hire_date DATE)
        FRAGMENT BY RANGE(emp_id)
        INTERVAL(1000) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 4000 IN dbs1,
            PARTITION p2 VALUES < 6000 IN dbs2,
            PARTITION p3 VALUES < 8000 IN dbs3;

The following statement generates an error:

    ALTER FRAGMENT ON TABLE employee MODIFY INTERVAL TRANSITION TO 7000;

The transition value can only be increased. In the above example, the new
transition value is lesser than the old one.

Lets assume the table has two interval fragments,
    sys_p4  >= 8000 AND < 9000
    sys_p6  >= 10000 AND < 11000

The following statement generates an error:

    ALTER FRAGMENT ON TABLE employee MODIFY INTERVAL TRANSITION TO 8500;

The new transition value 8500 is not aligned at an interval fragment boundary.

The following usage is correct:

    ALTER FRAGMENT ON TABLE address MODIFY INTERVAL TRANSITION TO 9000;
    ALTER FRAGMENT ON TABLE address MODIFY INTERVAL TRANSITION TO 10000;

The new transition values 9000 and 10000 are aligned at an interval fragment
boundary.

The following usage is also correct:

    ALTER FRAGMENT ON TABLE address MODIFY INTERVAL TRANSITION TO 12500;

Since there are no interval fragments beyond the new transition value, the
new transition value need not align at an interval fragment boundary.


-25836	The transition value must be a non-null constant.

The transition value must be a non-null constant expression.
For example, the following alter generates an error:

    CREATE TABLE employee (emp_id INTEGER, emp_name CHAR(64), ssn CHAR(12),
                           basepay FLOAT, varpay FLOAT, dept_id SMALLINT,
                           hire_date DATE)
        FRAGMENT BY RANGE(emp_id)
        INTERVAL(1000) STORE IN (dbs1, dbs2, dbs3)
            PARTITION p1 VALUES < 5000 IN dbs0,
            PARTITION p2 VALUES < 10000 IN dbs0,
            PARTITION p3 VALUES < 20000 IN dbs4;

    ALTER FRAGMENT ON TABLE employee MODIFY INTERVAL TRANSITION TO emp_id+10;

The new tranisition value, emp_id+10 is a column expression and not a constant.


-25837	Cannot truncate an index fragment.

An index fragment cannot be truncated. The TRUNCATE option of the
ALTER FRAGMENT statement is supported only with table fragments.


-25838	Duplicate partition name in the list of fragments for truncation.

A partition name was specified more than once in the TRUNCATE clause of the
ALTER FRAGMENT statement.
For example, the following statements generate an error:

    ALTER FRAGMENT ON TABLE employee TRUNCATE PARTITION p1, PARTITION p1,
                                              PARTITION p2; 

The partition p1 appears twice in the TRUNCATE clause.


-25839	Internal error: Could not find the transition fragment.

The transition fragment is missing. If this internal error recurs,
note all circumstances and contact IBM Technical Support.


-25840	An error occurred during online attach of fragment.

An error occurred during online attach of fragment. Check the accompanying
ISAM error code for more information.


-25841	An error occurred during online detach of fragment.

An error occurred during online detach of fragment. Check the accompanying
ISAM error code for more information.


-25842	An online alter fragment operation cannot be performed in a transaction that has modified objects in a database.

The online alter fragment operation must be the first operation in the
transaction that does any kind of modification.


-25843	An online alter fragment operation cannot be performed in a transaction that has explicitly locked the table that is being altered.

A LOCK TABLE statement was issued in the current transaction to lock the
table that is being altered. An online alter fragment operation cannot be
performed in a transaction that has explicitly locked the table. If you
need to lock the table, perform the alter fragment operation offline.


-25844	Cannot create an interval fragmented temporary table or index.

Interval fragmentation is not supported with temporary tables and indexes.


-25845	An online operation is already in progress on this table.

The following online operations are possible on a table:
  - online create index
  - online drop index
  - online alter fragment
Only one of the above online operations can be performed on a table at a time.
Wait until the first online operation is complete before reissuing another
online command.


-25846	Cannot alter the fragmentation scheme online if replication is defined on the table.

The fragmentation scheme cannot be altered online if replication is defined
on the table. Reissue the statement without the ONLINE keyword.


-25847	The fragments of the table or index have changed.

The fragments of the table or index have changed before an exclusive lock
could be obtained on the table. Either an interval fragment was added during
some DML activity or an ALTER FRAGMENT ONLINE operation just completed.
This condition is normally transient, retry operation after some delay.


-25848	The functional key argument is invalid.

The error occurred due to one or more of the following reasons:

     The first argument to functional index needs to table column.
     If other arguments are constant, it needs to be string type of length
     less than 128 bytes.


-25849	The indexkey size exceeds the catalog column size.

The error occurred due to encoded indexkey size excceds the szie of 
sysindcies.indexkey column. If you used functional index with constants reduce
the size of the constant.


-25850	The window-frame extent specification requires a window-order clause.

Any window-frame extent specification also requires the window-order clause, 
unless the window frame is between UNBOUNDED PRECEDING and UNBOUNDED FOLLOWING.


-25851	The window-frame extent value specification are not correct.

If RANGE is specified, then the window-order clause in the window definition 
must contain a single sort key. The declared data type of the sort key can be 
numeric, DATETIME, or INTERVAL. The data type of the constant value
in <unsigned-constant > FOLLOWING or <unsigned-constant > PRECEDING
specifications must be a numeric if the sort key has a numeric data type.  
Otherwise, it must be an INTERVAL type that can be added to or subtracted 
from values of the declared type of the ORDER BY sort key.

If ROWS is specified, then the declared type of the <unsigned-constant >  
must be an exact numeric data type with a scale of 0 (zero), such as INTEGER.


-25852	The window-frame extent BETWEEN options are not valid.

The specified BETWEEN options that define the window-frame extent are not valid.

Use BETWEEN specifications that conform to the documented window-frame extent 
syntax in your IBM Informix Guide to SQL:Syntax.  This is a subset of the 
BETWEEN syntax for OLAP windowed aggregates that the Cognos® product supports.


-25853	The ntile, lead, lag and ranking window functions require window order.

The aggregate RANK(), DENSE_RANK(), DENSERANK(), PERCENT_RANK(), LAG(), LEAD(),
CUME_DIST(), and NTILE() window functions require the window-order clause.


-25854	The  ntile, lead, lag, ranking and row numbering window functions cannot have a window-frame extent.

The ROWNUMBER(), ROW_NUMBER(), RANK(), DENSE_RANK(), DENSERANK(), LAG(), LEAD(),
PERCENT_RANK(), CUME_DIST(), NTILE() window functions cannot be called if a
window-frame extent is also defined for the window.


-25855	The option specified is not supported in window aggregates.

The following options are not supported in OLAP window aggregates, including 
aggregates in the PARTITION BY, ORDER BY, and window-frame extent clauses:
     
     Window aggregates with user-defined aggregates
     Correlated subqueries 
     Collection subqeries
     Complex data types
     CURRVAL or NEXTVAL expressions for sequence objects.


-25856	Invalid usage of window aggregate in this context.

You can use OLAP window aggregate functions in the Projection clause 
and in the ORDER BY clause of queries.  They cannot be present in 
the WHERE clause or in the HAVING clause (except within a subquery).


-25857	Invalid usage of DISTINCT aggregate in this context.

DISTINCT is only allowed for the following OLAP aggregate functions:

SUM(), AVG(), COUNT(), MIN(), MAX(), RANGE(), VARIANCE(), STDEV()


-25858	DISTINCT aggregate can not have ORDER BY clause or window frame extent.

When DISTINCT is specified in OLAP aggregate functions the window function
cannot have ORDER BY clause or window frame extent.


-25859	The argument to NTILE window function is invalid.

The argument to NTILE window function needs to be positive non-zero 
numeric value.


-25860	The offset of the LEAD, LAG window function is invalid.

The argument of LEAD, LAG NTILE window function needs to be positive numeric
type with scale 0(zero).


-25861	The types of default expression and expression of LEAD, LAG are not compatible.

The default expression type shall be compaitble with LEAD, LAG window 
expression type.


-25862	The argument to RATIO_TO_REPORT window function is invalid.

The argument to RATIO_TO_REPORT window function needs to be of numeric data type.


-25898	The total size of the index exceeds 32767 bytes.

The size of the composite index cannot exceed 32767 bytes. Consider reducing
the number of index parts until this requirement is met.


-25899	Same index already exists on given BSON columns.

This CREATE INDEX statement cannot be executed because an index on the given
BSON columns with the same key parts already exists.


-26000	Locks cannot be limited for a user who has administrative privileges.	

You cannot set the IFX_SESSION_LIMIT_LOCKS option to the SET ENVIRONMENT statement 
for a user who has administrative privileges, such as user informix or a DBSA user. 
Users with administrative privileges are always allowed to have the maximum allowed 
number of locks per session.

-26001	The encryption/decryption password is not set.

Provide an encryption password in the argument list to the
encryption/decryption functions or use the "SET ENCRYPTION PASSWORD" 
statement.

-26002	Invalid encryption password data type.

The encryption password is invalid because the specified password data 
type is not supported. Use a string type (such as CHAR(20) or 
VARCHAR(40)) for the encryption password.

-26003	The data must be encrypted with a password length between 6 
and 128.

The encryption password is invalid because the length of the specified
password was less than 6 bytes or greater than 128 bytes.

-26004	The encryption hint data type is not supported.

Use a string type (such as CHAR(20) or VARCHAR(40)) for the 
encryption hint.

-26005	The encrypted data is wrong or corrupted.

The data must be a result of an IDS encryption function. The decryption 
may have failed because the data was not encrypted, was corrupted, or 
truncated (e.g. ALTER TABLE operation) since encryption, or was 
encrypted with an algorithm not supported by this version.

-26006	The data type is not supported for encryption functions.

BYTE/TEXT and UDT are not supported. Use BLOB/CLOB instead of BYTE/TEXT, 
or cast a UDT to a string type such as CHAR or LVARCHAR.

-26007	The internal encryption function failed.

The internal crypto library encryption API failed. 

-26008	The internal decryption function failed.

The internal crypto library decryption API failed. This error may be 
caused by a wrong password or corrupted data.

-26009	Key generation failed.

The internal crypto library key generation API failed.

-26010	Random IV generation failed.

The internal crypto library random API failed to generate an 
initialization vector (IV).

-26011	The internal base64 encoding function failed.

The internal crypto library base64 encoding API failed.

-26012	The internal base64 decoding function failed.

The internal crypto library base64 decoding API failed.
It may be caused by a corrupted data.

-26013	Encrypt VP mailbox operation failed.

An internal error occurred during communication between a CPU VP and 
an ENCRYPT VP.

-26040	Encrypt VP initialization failed.

An internal error occurred during initialization of an ENCRYPT VP.

ACTION
Contact the operating system administrator to make sure that the required
version of GSKit is installed.


-26100	You cannot set the GRANT ACCESS or REVOKE ACCESS properties when the
USERMAPPING onconfig parameter is OFF

The GRANT ACCESS and REVOKE ACCESS statements can only be used if the ONCONFIG
parameter USERMAPPING is ON.


-26101	The specified group name (%s) does not exist.

The group name specified was not found in the operating system's group
database.  When you specify a surrogate group by name, the surrogate name must
exist in in the operating system's group database (/etc/group file or
equivalent).

ACTION
Either ask the operating system administrator to add the group or change the
statement to reference a group name that does exist.


-26102	The specified user name (%s) does not exist.

The user name specified was not found in the operating system's user database.
When you specify the surrogate user by name, the surrogate name must exist in
in the operating system's user database (/etc/passwd file or equivalent).

ACTION
Either ask the operating system administrator to add the user or change the
statement to reference a user name that does exist.


-26103	You cannot modify existing access for user %s now.  You must revoke access
first then grant access.

The named user has already been granted access.  To alter a user's access, you
must first revoke their existing access rights with REVOKE ACCESS and then
grant the new rights with GRANT ACCESS.


-26104	Reserved for future use.

This message is not currently used.


-26105	You should specify a group for the user.

You must specify at least one group for the mapped user using a group name or
group number.


-26106	You specified more than %d group names or numbers.

You specified more group names or group numbers than the system permits.


-26107	User name (%s) has already been granted access.

The named user has already been granted access.  If you need to change their
access, you must revoke access before granting the altered access.


-26108	You cannot grant root or informix user privilege to the user.

The GRANT ACCESS command listed either one of the user names root or informix,
or the user numbers corresponding to those names.  You cannot grant a mapped
user the privileges of a surrogate user equivalent to either user root or
informix.


-26109	You cannot grant access to user informix or root.

The users informix and root cannot be treated as mapped users; they must
both be regular unmapped users known to the operating system.


-26110	The specified group has administrative privileges.  You must either specify
userauth properties or not include the group in the GRANT ACCESS statement.

One of the groups identified in the group clause is an administrative group
(the DBSA, DBSSO, AAO group or bargroup) but the user was not identified as
belonging to the group with the userauth properties clause.  You cannot
accidentally grant a user administrative privileges by listing the group name
or group number; you must do so explicitly.


-26111	The specified userauth (%s) property does not exist.  The valid values
-are dbsa, dbsso, dbaao or bargroup.

You specified an administrative property in the userauth clause that is not
recognized.  You may only use one of the values listed.


-26112	The home directory is already specified.

The home directory was specified twice but may only be specified once.


-26113	The group name is already specified.

One of the group names or numbers specifies the same group as another group
name or number.  You may only list any group once, either by name or by number
but not both.


-26114	The userauth property is already specified.

The userauth property was specified twice but may only be specified once.


-26104	API error: Out of memory.

This message indicates a memory-allocation error. Memory Manager could
not allocate memory. Exit DataExtract and retry the option.


-26201	API error: Cannot find message file.

The Answer/Extractor message file, message.txt, cannot be found. Check
that the ANSAPI environment variable is set correctly. If necessary,
copy the message file from $INFORMIXDIR/etc to your ANSAPI directory,
or to the current directory if ANSAPI is not set.


-26202	API error: No room for message file.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26203	API error: Message file is too short.

The Answer/Extractor message file, message.txt, is incorrect or
corrupt. Recopy the message file from $INFORMIXDIR/etc to the
directory that the ANSAPI environment variable specifies, or to the
current directory if ANSAPI is not set.


-26204	API error: Message file is too long.

The Answer/Extractor message file, message.txt, is incorrect or
corrupt. Recopy the message file from $INFORMIXDIR/etc to the
directory that the ANSAPI environment variable specifies, or to the
current directory if ANSAPI is not set.


-26205	API error: Error reading message file.

The Answer/Extractor message file, message.txt, does not have the
correct permissions or is corrupted. Verify that the file has the
correct permissions. The file should be in the directory that the
ANSAPI environment variable specifies, or in the current directory if
ANSAPI is not set. If the file is corrupt, recopy the file from
$INFORMIXDIR/etc.


-26206	API error: Cannot find configuration file.

The host configuration file, config.txt, cannot be found. Use the Setup
option on the DataExtract Main Menu to access the SETUP screen and
create the configuration file.


-26207	API error: No room for configuration file.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26208	API error: Configuration file is too short.

The host configuration file, config.txt, is incorrect or corrupt. Use
the Setup option on the DataExtract Main Menu to access the SETUP
screen and re-create the configuration file.


-26209	API error: Configuration file is too long.

The host configuration file, config.txt, is incorrect or corrupt. Use
the Setup option on the DataExtract Main Menu to access the SETUP
screen and re-create the configuration file.


-26210	API error: Error reading configuration file.

The host configuration file, config.txt, does not have the correct
permissions or is corrupt. Verify that the file has the correct
permissions. Check that the file is in the directory that the ANSAPI
environment variable specifies, or in the current directory if ANSAPI
is not set. If the file is corrupt, use the Setup option on the
DataExtract Main Menu to access the SETUP screen and re-create the
configuration file.


-26211	API error: Invalid SQLCA structure.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26212	API error: Communications board not present.

The hardware that is required for communicating to the host computer is
not installed or is not functioning properly. Verify that the
communications board is installed and configured properly.


-26217	API error: Inconsistent driver scan code file.

The controller instructions file, driver.dsc, is invalid or corrupt.
Recopy the file from $INFORMIXDIR/etc to the directory that ANSAPI
specifies or to the current directory if ANSAPI is not set.


-26224	API error: Host session busy.

The emulation software is unavailable, or the host session that is
specified in the Host Session parameter on the SETUP screen is
currently in use.

Verify that the emulation software is available. If it is, change the
Host Session parameter on the SETUP screen to a different host session.
Change any configuration file that your emulation software requires
accordingly.


-26225	API error: Host session does not exist.

The host-session name that is specified in the Host Session parameter
on the SETUP screen is invalid. Correct the host-session name. Change
any configuration file that your communications software requires
accordingly.


-26230	API error: Session cannot be set up as model 5 terminal.

DataExtract does not support model 5 terminals. Reconfigure your 3270
emulator software to a model 2 terminal and restart DataExtract.


-26231	API error: Keyboard permanently locked.

The Keyboard Inhibit signal on the host session did not clear within
the timeout period set in the Lock Time parameter. This situation might
have occurred for the following reasons:

    *   The time that the Lock Time parameter specifies is too short.

    *   The host session went down.

    *   The host session is very slow.

Exit DataExtract. Use your 3270 emulator software (for example, te3278)
to verify that the host session is available. If the host session is
available, manually exit the session to the starting point that your
connect script specifies. Restart DataExtract. If the host session is
very slow, increase the Lock Time parameter.


-26233	API error: Invalid character.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26234	API error: Invalid script.

The connect or disconnect script is invalid. Use the Scripter utility
to re-create your connect or disconnect script. Check that the scripts
are in the directory that the ANSAPI environment variable specifies.


-26235	API error: Invalid script password.

The password for the connect or disconnect script is incorrect. Verify
your connect or disconnect script password on the SETUP screen.


-26236	API error: Input beyond end of screen.

Your 3270 emulator session is not at the terminal session screen that
the connect script expects. Exit DataExtract and confirm that your
connect script is correct. Use the 3270 emulator software to make sure
that it is at the screen that the connect script expects.


-26237	API error: Input too long for field.

Your 3270 emulator session is not at the terminal session screen that
the connect script expects. Exit DataExtract and confirm that your
connect script is correct. Use the 3270 emulator software to check that
it is at the screen that the connect script expects.


-26238	API error: Lock Time limit expired while waiting for host response.

The host did not respond within the time limit that is set in the Lock
Time parameter in the SETUP screen. The host is either not available at
the moment or is busy. Use the Setup option on the Main Menu to access
the SETUP screen. If the error recurs, resubmit your request.


-26239	API error: Invalid Host Environment parameter.

The specified host environment is invalid. Correct the Host Environment
parameter on the SETUP screen.


-26240	API error: Invalid Answer/DB Password parameter.

The specified Answer/Extractor password is invalid. Verify the
Answer/DB Password parameter on the SETUP screen.


-26241	API error: Invalid Answer/DB Profile Name parameter.

The specified Answer/Extractor profile name is invalid. Verify the
Answer/DB Profile Name parameter on the SETUP screen.


-26242	API error: Unintelligible response.

Your 3270 emulator session is not at the terminal session that the
connect script expects. Exit DataExtract and confirm that your connect
script is correct. Use the 3270 emulator software to check that it is
at the terminal that the connect script expects.


-26245	API error: Answer/DB invocation failed.

Your 3270 emulator session is not at the terminal session that the
connect script expects. Exit DataExtract and confirm that your connect
script is correct. Use the 3270 emulator software to check that it is
at the terminal that the connect script expects.


-26246	API error: Cannot open script.

The connect or disconnect script cannot be opened. Verify that the
connect or disconnect script file has the correct permissions.


-26247	API error: Invalid SQLEA structure.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26248	API error: SQLDA size below minimum.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26249	API error: SQLST size below minimum.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26250	API error: Invalid query name.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26251	API error: Invalid SQLDA structure.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26252	API error: Invalid SQLST structure.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26253	API error: SQLDA structure too small.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26254	API error: SQLST structure too small.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26255	API error: SQLDA does not contain field name.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26256	API error: SELECT not found.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26257	API error: FROM not found.

The SELECT clause in the current EXTRACT statement is missing the FROM
clause. Correct and rerun the EXTRACT statement.


-26258	API error: Invalid SELECT reference.

The SELECT clause in the current EXTRACT statement is invalid. Correct
the EXTRACT statement and rerun it.


-26259	API error: Invalid FROM reference.

The SELECT clause in the current EXTRACT statement has an invalid FROM
reference. Correct and rerun the EXTRACT statement.


-26260	API error: Invalid range variable.

The SELECT clause in the current EXTRACT statement contains an invalid
range variable. Correct and rerun the EXTRACT statement.


-26262	API error: Invalid comparison in WHERE clause.

The WHERE clause in the current EXTRACT statement contains an invalid
comparison. Correct and rerun the EXTRACT statement.


-26263	API error: Invalid function reference.

The function that is referenced in the SELECT clause in the current
EXTRACT statement is invalid. Correct and rerun the EXTRACT statement.


-26265	API error: ORDER BY contains fields not selected.

Some of the fields that are specified in the ORDER BY clause in the
EXTRACT statement have not been selected. Modify the SELECT clause to
select the fields and rerun the EXTRACT statement.


-26267	API error: Invalid wildcard.

The wildcard in the SELECT clause of the current EXTRACT statement is
invalid. Correct and rerun the EXTRACT statement.


-26268	API error: Invalid substitution.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26269	API error: Unintelligible keyword.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26270	API error: Invalid predefined query.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26271	API error: Host connection not established.

The connection to Answer/Extractor on the host cannot be established at
the moment. Exit DataExtract and resubmit the request.


-26272	API error: Host connection not terminated.

The connection to Answer/Extractor on the host cannot be terminated.
The host session has probably been disconnected unexpectedly. Use the
emulator software, for example te3278, to verify that the host
connection is terminated. The session might need to be terminated
manually.


-26273	API error: Invalid class number.

The value that is set in the Class parameter is invalid. Consult your
Answer/Extractor DBA to determine the valid class numbers. Correct the
class number on the SETUP screen and rerun the EXTRACT statement.


-26274	API error: Invalid item count.

The value that is set in the Max Records to Process parameter is
invalid. Correct the parameter on the SETUP screen and rerun the
EXTRACT statement.


-26275	API error: Invalid record count.

The value that is set in the Max Records to Retrieve parameter is
invalid. Correct the parameter on the SETUP screen and rerun the
EXTRACT statement.


-26276	API error: Invalid query in SQLST.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26277	API error: Table does not exist on the host.

The host table that the current EXTRACT statement specifies does not
exist, although it is listed in your glossary. The host-table glossary
is probably out of date. Refresh the entire host-table glossary.


-26278	API error: Field does not exist on the host.

One of the host fields that the current EXTRACT statement specifies
does not exist on the host, although it is listed in your host-table
glossary. Your host-table glossary is probably out of date. Refresh the
host-table information for the problem host table.


-26279	API error: Query too large for Answer/Extractor.

The SELECT clause in the current EXTRACT statement is too long.


-26280	API error: CICS Paging Code parameter is missing.

The CICS paging code is missing. Use the SETUP screen to set the CICS
Paging Code parameter.


-26281	API error: Cannot find message text.

An expected message was not received from the mainframe when
DataExtract tried to retrieve host data or check the status of a job.
Exit DataExtract and retry the option.


-26282	API error: Invalid SQLCR structure.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26283	API error: Environment already has open cursor.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26284	API error: SQLCR structure already open.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26285	API error: Query data not available at host.

The result for the SELECT clause of the current EXTRACT statement is
not available at the host. Rerun the EXTRACT statement.


-26286	API error: SQLCR structure not open.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26287	API error: ORDER BY field duplicated.

The host fields in the ORDER BY clause in the current EXTRACT statement
are duplicated. Correct and rerun the EXTRACT statement.


-26288	API error: GROUP BY field duplicated.

The host fields in the GROUP BY clause in the current EXTRACT statement
are duplicated. Correct and rerun the EXTRACT statement.


-26289	API error: Expression element too long.

The expression in the SELECT clause in the current EXTRACT statement is
too long. Correct and rerun the EXTRACT statement.


-26290	API error: Cannot recognize expression element.

The expression in the SELECT clause in the current EXTRACT statement is
invalid. Correct and rerun the EXTRACT statement.


-26291	API error: Missing connector between expressions.

The SELECT clause in the current EXTRACT statement is missing the
connector between expressions. Correct and rerun the EXTRACT
statement.


-26292	API error: Missing close parenthesis.

The SELECT clause in the current EXTRACT statement is missing a
matching parenthesis. Correct and rerun the EXTRACT statement.


-26293	API error: Data type incorrect for context.

The SELECT clause in the current EXTRACT statement contains an item of
an incorrect data type. Correct and rerun the EXTRACT statement.


-26294	API error: Missing open parenthesis.

The SELECT clause in the current EXTRACT statement is missing an open
parenthesis. Correct and rerun the EXTRACT statement.


-26295	API error: ESCAPE value must be single character.

The SELECT clause in the current EXTRACT statement contains an invalid
ESCAPE value. Correct and rerun the EXTRACT statement.


-26296	API error: Field name required.

The SELECT clause in the current EXTRACT statement requires at least
one host-field name. Correct and rerun the EXTRACT statement.


-26297	API error: Query contains extra text.

The SELECT clause in the current EXTRACT statement contains extra
text. Correct and rerun the EXTRACT statement.


-26298	API error: Internal query parser error.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26299	API error: Must select at least one field or function value.

The SELECT clause of the current EXTRACT statement does not contain any
host field or function value references. Correct and rerun the EXTRACT
statement.


-26300	API error: DISTINCT not supported.

The SELECT clause of the current EXTRACT statement contains the keyword
DISTINCT, which is not supported. Correct and rerun the EXTRACT
statement.


-26301	API error: Cannot use ALL in this context.

The ALL keyword is misused in the SELECT clause of the current EXTRACT
statement. Correct and rerun the EXTRACT statement.


-26302	API error: Invalid summary function.

The aggregate function in the SELECT clause of the current EXTRACT
statement is invalid. Correct and rerun the EXTRACT statement.


-26303	API error: Bad GROUP BY clause.

The GROUP BY clause in the current EXTRACT statement is invalid.
Correct and rerun the EXTRACT statement.


-26304	API error: Bad ORDER BY clause.

The ORDER BY clause in the current EXTRACT statement is invalid.
Correct and rerun the EXTRACT statement.


-26305	API error: Cannot initialize NULL SQLDA.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26306	API error: Cannot initialize NULL SQLCA.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26307	API error: Cannot initialize NULL SQLEA.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26308	API error: Cannot initialize NULL SQLST.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26309	API error: Cannot initialize NULL SQLCR.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26310	API error: SQLST not prepared.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26311	API error: Invalid predefined query.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26312	API error: Predefined query not implemented.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26313	API error: Invalid query name.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26314	API error: Cursor already in use and open.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26315	API error: Cursor not open.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26316	API error: No sessions available.

No host sessions are available at the moment. Resubmit your request.
Check that the prior session or previously started processes have been
terminated.


-26317	API error: Driver scan code file not found.

The driver scan code file, driver.dsc, cannot be found. Verify that the
driver.dsc file exists in the path that the ANSAPI environment variable
specifies, or in the current directory if ANSAPI is not set. Copy the
file from $INFORMIXDIR/etc, if necessary.


-26318	API error: Invalid message file.

The message file, message.txt, is invalid or corrupted. Recopy the
message file from $INFORMIXDIR/etc to the path that the ANSAPI
environment variable specifies, or to the current directory if ANSAPI
is not set.


-26319	API error: Message file too long.

The message file, message.txt, is invalid or corrupt. Recopy the
message file from $INFORMIXDIR/etc to the path that the ANSAPI
environment variable specifies, or to the current directory if ANSAPI
is not set.


-26320	API error: Error while reading file.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26321	API error: Not enough memory to read file.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26322	API error: File not found.

The message.txt or config.txt files cannot be found. Confirm that they
exist.


-26323	API error: Bad option descriptor.

The entry in the message.txt file, config.txt file, or parameter string
is invalid. Correct the error.


-26324	API error: Invalid parameter value.

The message.txt file, config.txt file, or parameter string contains an
invalid parameter value. Correct the error.


-26325	API error: Invalid option keyword.

The message.txt file, config.txt file, or parameter string contains an
invalid option keyword. Correct the error.


-26326	API error: Stable Time parameter missing.

The Stable Time parameter is missing from the host configuration file.
Use the SETUP screen to set the Stable Time parameter.


-26327	API error: Lock Time parameter missing.

The Lock Time parameter is missing from the host configuration file.
Use the SETUP screen to set the Lock Time parameter.


-26328	API error: Host Environment parameter missing.

The Host Environment parameter is missing from the host configuration
file. Use the SETUP screen to set the Host Environment parameter.


-26329	API error: Answer/DB Invocation Code parameter missing.

The Answer/DB Invocation Code parameter is missing from the host
configuration file. Use the SETUP screen to set the Answer/DB
Invocation Code parameter. Consult your Answer/Extractor DBA to
determine the Answer/Extractor invocation code.


-26330	API error: Answer/DB Profile Name parameter missing.

The Answer/DB Profile Name parameter is missing from the host
configuration file. Use the SETUP screen to set the Answer/DB Profile
Name parameter. Consult your Answer/Extractor DBA to determine your
Answer/Extractor profile name.


-26331	API error: CICS Paging Code parameter missing.

The CICS Paging Code parameter is missing from the host configuration
file. Use the SETUP screen to set the CICS Paging Code parameter.
Consult your Answer/Extractor DBA to determine the CICS paging code.


-26332	API error: CICS Termination Code parameter missing.

The CICS Termination Code parameter is missing from the host
configuration file. Use the SETUP screen to set the CICS Termination
Code parameter. Consult your Answer/Extractor DBA to determine the
CICS termination code.


-26337	API error: No more data in report.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26338	API error: Invalid timer number.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26339	API error: Help file does not exist.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26341	API error: Parameter is wrong type.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26342	API error: Not enough parameter values.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26343	API error: Host table does not contain field.

This message indicates an internal error. Either the host table does
not contain the field that the SELECT clause lists, or the table does
not contain any fields.


-26344	API error: Class value out of range.

The value set in the Class parameter is out of range. Use the SETUP
screen to correct the Class parameter.


-26345	API error: Max value out of range.

The value in the Max Records to Process parameter or the Max Records to
Retrieve parameter is out of range. Use the SETUP screen to correct the
parameter.


-26346	API error: No more data in report.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26347	API error: Report contains incomplete data.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26348	API error: Report size exceeded; no data.

The result data that is selected by the SELECT clause in the current
EXTRACT statement exceeds the allowed size on the host. Modify the
EXTRACT statement to select less data. Rerun the EXTRACT statement.


-26349	API error: Report buffer too small.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26350	API error: Summary variable conflicts with host.

This message indicates an internal error. Exit DataExtract and retry
the option.


-26351	API error: Script file could not be read.

The connect or disconnect script file cannot be read. Verify that the
connect or disconnect script file has the correct permissions. Use the
Scripter utility to re-create it, if necessary.


-26352	API error: Not enough memory for script file.

This message indicates a memory-allocation error. Exit DataExtract and
retry the option.


-26360	Invalid bucket size specified for FOT index.

The bucket size for the forest of trees (FOT) index must range from 2 to the number of available index pages per dbspace.


-26361	Invalid 'hash on' list specified for FOT index.

The 'hash on' list for the forest of trees (FOT) index must be a prefix list of the index columns.


-26362	Invalid data type for 'hash on' columns specified for FOT index.

The 'hash on' columns for the forest of trees (FOT) index must be built-in data types.


-26363	FOT indexes cannot be functional indexes.

The 'hash on' columns for the forest of trees (FOT) index must be built-in data types.


-26364	Attached FOT indexes are not supported.

FOT indexes must be detached indexes.


-26365	Clustered FOT indexes are not supported.

FOT indexes must be non-clustered indexes.


-26371	Only the DBSSO can drop the audit property of the table.

The audit property can only be dropped by a DBSSO. 

-26453	%s is not supported in this edition of IDS.

To use that functionality you must have IDS Ultimate Edition.

-26811	Can not create temp table with replcheck columns

It is not possible to create a temp table with REPLCHECK columns

-26812	Illegal usage of REPLCHECK columns

You can not directly update REPLCHECK columns

-26813	Can not add REPLCHECK when the table already has REPLCHECK columns

The table already has REPLCHECK columns.

-26814	Can not drop REPLCHECK when table does not have REPLCHECK columns

The table that you were attempting to alter does not have REPLCHECK columns.

-26815	Can not perform this operation on a table with REPLCHECK columns

The operation that you attempted to perform can not be executed on a table containing REPLCHECK columns.



-26910	The statement failed because it referenced a rolling window table. 

The REFERENCES clause in a FOREIGN KEY definition cannot specify a
rolling window table.

-26911	The statement failed because each constraint on a rolling
window table requires a supporting index.

You cannot add a PRIMARY KEY, FOREIGN KEY or UNIQUE constraint on a
rolling window table unless an index on the table has the same RANGE
INTERVAL fragmentation strategy as the table.

Explicitly create an index on the table (with no storage option for
the index) before you add the PRIMARY KEY, FOREIGN KEY, or UNIQUE
constraint.

-26912	The statement failed because rowids are not allowed with
rolling window tables.

Use the ALTER TABLE statement to remove the ROWID column and then
define a RANGE INTERVAL fragmentation strategy with a purge policy
clause.

-26913	Cannot enable a rolling window because the table is
referenced by other tables.

The table Ccannot be a rolling window table because it is referenced
by an enabled FOREIGN KEY constraint on another table. Drop or disable
that referential constraint, or else change your storage management
strategy for the table. 

-26914	The index was not created, because its storage differs from
that of its rolling window table.

Rolling window tables require a RANGE INTERVAL fragmentation strategy.
The database server automatically applies the same storage strategy
to each index that is subsequently defined on the table, but it
returns this error if any storage option is specified for the index,
or if the ALTER FRAGMENT statement references an index on a rolling
window table. 

To create an index on a rolling window table, use the CREATE INDEX
statement with no storage option.

-26915	The statement failed because the ROLLING FRAGMENTS and LIMIT TO
clauses require positive integers. 

In the CREATE TABLE and ALTER FRAGMENT MODIFY statements, make sure that
iny literal value or expressio immediately following the ROLLING keyword
or the LIMIT TO keywords evaluates to a positive integer. 

-26916	The statement failed because the new table size would exceed the
threshold set by the LIMIT TO clause.

The table referenced in this statement has a maximum storage size limit.
This statement would allocate more storage space for range fragments and index
fragments than is allowed.  No space would be available for new interval
fragments.
You can increase the maximum table size by using the LIMIT TO clause.
Otherwise, if the CREATE TABLE or CREATE INDEX statement failed, specify a
lower EXTENT SIZE value.

-26917	The statement failed because a UDR specifies the dbspace for the next
interval fragment of this table or index. 

You cannot change th elist of dbspaces for interval fragments when a UDR returns
the dbspace names for storing new interval fragments. You can use the STORE IN
clause of the ALTER FRAGMENT MODIFY statement to replace the user-defined function
with a list of dbspaces in which to create system-generated interval fragments.

-27000	Cannot support multiple connections over shared memory.

An application cannot use the CONNECT statement to make more than one
connection that uses shared-memory communication (IPC).

Ensure that the application makes only one shared-memory connection at
a time. If the application must use concurrent connections, the
database server administrator might need to change the connection type
(as specified in the nettype field of the sqlhosts file) from a shared
-memory connection to a network connection.


-27001	Read error occurred during connection attempt.

This error can occur on either the client or database server side.

When you encounter this error on the client side, it indicates that a
network I/O error occurred when the client tried to connect to a
database server. Probably the connection attempt timed out because the
database server or the network was very busy, too many clients were
attempting to connect to the database server simultaneously, or the
database server was taken off-line during the connection attempt.

If you are using IBM Informix Dynamic Server, IBM Informix Universal Server,
or IBM Informix OnLine Dynamic Server, verify that the database server is
still online. If you are using IBM Informix SE, verify that the sqlexecd daemon
for the database server is still running. Use either or both of the environment
variables INFORMIXCONTIME and INFORMIXCONRETRY on the client side to increase
the connection time and number of retry attempts.

When you encounter this error on the database server side, it is a
warning that a network I/O error is detected while the database server
is accepting a connection request from a client. This error usually
occurs when the database server or the network is very busy or when too
many clients are trying to connect to the database server at once. The
database server might be taking so long to respond to a client that the
client's connection request timed out before the connection is
complete. Or possibly a client terminated its connection attempt before
the connection is completely established.

If this error is seen only occasionally in the server message log, it
is just a warning. No corrective action is required on the server
side.

If this error occurs frequently on a database server that runs on a
host with multiple processors, you might want to tune the database
server by increasing the number of poll threads and/or listener
threads.


-27002	No connections are allowed in quiescent mode.

You are attempting to connect to a database server that is in quiescent
mode. Verify that your INFORMIXSERVER environment variable is set
correctly. Ask the database server administrator to bring the
appropriate database servers to online mode.


-27003	Internal Communications Error: internal inconsistency detected.

The IBM Informix client/server communication system has detected an
internal inconsistency. Typically, a client application reports this
error. This error might be a memory-corruption error due to a
programming bug. If the database server or a utility reported the
error, it is an Informix internal error. When an Informix internal
error occurs, note all circumstances and contact IBM Technical Support.


-27004	Illegal sqlhosts file option/parameter, parameter, for dbservername,
servername.

You specified an invalid option or parameter in your sqlhosts file.
Check the option ID and parameter associated with servername in the
sqlhosts file.

Linux,UNIX: If you use either the IPC stream pipe (onipcstr) protocol or the 
IPC shared memory (onipcshm) protocol, ensure that the communications file 
directory (cfd option) is shorter than or equal to 70 bytes. If the directory 
is a relative path, the length includes the $INFORMIXDIR directory.

-27005	Illegal sqlexecd daemon option, option_value.

You specified an invalid sqlexecd daemon option. Check the option
option_value and its parameter.


-27006	Network driver cannot establish listen endpoint.

You specified stream pipe (ipcstr) as the network-communication type
for this database server. The database server is not able to create the
stream pipe. The most common cause of this error is that another
database server on your network is already using the service name for
this database server.

Check that the servicename value in the $INFORMIXDIR/etc/sqlhosts file or
in the SQLHOSTS registry information is unique across all database servers
on your network. If the servicename is unique, check the accompanying ISAM
code for additional error information.

If a previously created stream pipe with the same name is not released
by an aborted online server, you need to manually remove the stream
pipe files /INFORMIXTMP/<servicename>.str and /INFORMIXTMP/<servicename>.exp.


-27007	Invalid file descriptor opened for the user thread.

An internal Informix network error has occurred in the TLITCP poll
thread. Note all circumstances and contact IBM Technical Support.


-27010	Only an administrative user can connect in administrative user mode.

The database server is in administrative user mode. You must set the 
ADMIN_USER_MODE_WITH_DBSA parameter to '1' to allow any administrative user 
to connect. If the ADMIN_USER_MODE_WITH_DBSA parameter is set to '0', then 
only user "informix" or the non-root server owner can connect.

-27009	Connection to HDR secondary not allowed using group name

Your INFORMIXSERVER setting specifies a group entry for an HDR pair.
HDR primary server is currently not available, and HDR secondary server
is still in secondary mode.
To connect to HDR secondary server in read-only mode, set INFORMIXSERVER
to the explicit DBSERVERNAME of the secondary server.
To be able to process transactions, either bring up your HDR primary server,
or convert your HDR seconadry server to standard mode.


-27100	Internal Communications Error: NSF subsystem error.

This error message can appear if there is an internal NSF subsystem failure.
Please contact IBM Technical Support.


-27151	Internal error: No Communications Support Module specification string
defined in the sqlhosts file.

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


-27152	Internal error: Communication Support Services context already exists;
cannot create another one.

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


-27153	Internal error: Communication Support Services contact is NULL.

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


-27154	Internal error: invalid ASF_TIMEOUT semantics; same input buffer
expected.

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


-27155	Internal error: Communication Support Services returned an undefined
css_status.state code.

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


-27156	Internal error: invalid ASF- Communication Support Services state.

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


-27157	Internal error: no receiving buffer available.

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


-28014	Secure Sockets Layer error.

An error occurred during a Secure Socket Layer operation. For more information,
refer to the accompanying IBM Global Security Kit (GSKit) error message.


-28015	Secure Sockets Layer configuration error.

An error occurred while reading the Secure Sockets Layer configuration
file (conssl.cfg).


-28016	IBM Global Security Kit (GSKit) <version> or higher is not installed.

The IBM Global Security Kit (GSKit) is either not installed or the version
that is installed is too old. The GSKit provides APIs for the Secure Sockets
Layer (SSL) communication and encryption functionality. If you want to set up
SSL connections or use encryption functionality, you must install the GSKit.
For instructions on installing GSKit, refer to the $INFORMIXDIR/gskit/README 
file.

-28021	A trusted connection was not established because a trusted context is
not defined or not enabled for the specified authorization ID.

Ensure that the trusted context is correctly defined and enabled, and then
establish a trusted connection.

-28022	A trusted connection was not established because the encryption
requirement for the connection was not met.

Ensure that the encryption requirement for the trusted context is correctly
defined and that the port is correctly encrypted.

-29000	Application server error (server_error_number).

A generic application-server error occurred. Examine the original
foreign SQLCODE. You can find it in either SQLERRD[1] or as part of
SQLERRM. Look up the explanation for this SQLCODE in the documentation
for the foreign server product. Apply the tokens, if any, that are
returned in the SQLERRM field to the explanation.


-29002	Supplied real-RDB-name does not match the real-RDB-name in sqlhosts.

A mismatch was detected between the user-supplied real-RDB-name and the
real-RDB-name that was derived from the user-supplied alias-RDB-name
using the sqlhosts file.

Check the spelling of the user-supplied real-RDB-name. Ensure that the
user-supplied alias-RDB-name is the correct one.

If SNA network protocol is used to connect to the application server,
check the real-RDB-name column (the "hostname" field) in the "sqlhosts" file
for the alias-RDB-name entry, and check that it is spelled correctly.

If TCP/IP network protocol is used to connect to the application server,
check the "RDB=real-RDB-name" option (in the "options" field) in the 
"sqlhosts" file for the alias-RDB-name entry, and check that it is 
spelled correctly.


-29003	RDB real-RDB-name not found at the application server.

Although a communication conversation was allocated, the application
server refused to connect because it has a real-RDB-name that is different
from that to which the application would like to connect.

Examine the sqlhosts file on the Gateway computer. Identify the entry
with the alias-RDB-name to which the application is referring.

If SNA network protocol is used to connect to the application server,
ensure that the "hostname" field contains a correct value.

If TCP/IP network protocol is used to connect to the application server,
ensure that the "RDB=real-RDB-name" option in the "options" field 
contains a correct value.


-29004	DRDA protocol error. ReplyMsg[,sub-code]:
ReplyMessage-codepoint[,sub-code].

A DRDA protocol error prevents the successful execution of the current
SQL statement. This error will not affect the successful execution of
subsequent SQL statements.

A DRDA internal Distributed Data Management (DDM) reply message (RM)
was received from the application server. That message indicates that
an error has occurred. The application server or possibly the
application requestor (AR) detected an error.

A hexadecimal codepoint and possibly a hexadecimal sub-code are
returned as a token in SQLERRM.

To interpret the hexadecimal codepoint and the hexadecimal sub-code,
you need DDM knowledge.

The hexadecimal codepoint is the 2-byte hexadecimal codepoint for the
DDM reply message that represents the error and is one of the
following:

    *   X'220A' -- DSCINVRM

    *   X'124C' -- SYNTAXRM

    *   X'1245' -- PRCCNVRM

    *   X'1254' -- CMDCHKRM

    *   X'220E' -- DTAMCHRM

    *   X'2202' -- QRYNOPRM

    *   X'220F' -- QRYPOPRM

    *   X'2207' -- RDBACCRM

    *   X'2204' -- RDBNACRM

The first three reason codes (DSCINVRM, SYNTAXRM, and PRCCNVRM)
accompany a 2-byte hexadecimal sub-code. In all other cases, the
sub-code is zero.

When nonzero, the high-order byte of the sub-code indicates the site at
which the error was detected. If the AR detects the error, it is X'01.
If the application server detects the error, it is X'02'. The
lower-order byte is as follows:

    *   Description Error Code (DSCERRCD) if reason code = DSCINVRM

    *   Syntax Error Code (SYNERRCD) if reason code = SYNTAXRM

    *   Conversational Protocol Error Code (PRCCVNCD) if reason code =
	PRCCNVRM

Contact the DBA for assistance in analyzing the SQL statement that
yielded this SQLCODE. If the error recurs, note all
circumstances and contact IBM Technical Support.


-29005	Hard DRDA protocol error. ReplyMsg[,sub-code]:
ReplyMessage-codepoint[,sub-code].

A DRDA protocol error caused deallocation of the conversation.

A DRDA internal Distributed Data Management (DDM) reply message (RM)
was received from the application server. The message indicates that an
error has occurred. The application server or possibly the application
requestor (AR) detected an error.

A hexadecimal codepoint and possibly a hexadecimal sub-code are
returned as a token in SQLERRM.

To interpret the hexadecimal codepoint and the hexadecimal sub-code
requires DDM knowledge.

The hexadecimal codepoint is the 2-byte hexadecimal codepoint for the
DDM reply message that represents the error and is one of the
following:

    *   X'220A' -- DSCINVRM

    *   X'124C' -- SYNTAXRM

    *   X'1245' -- PRCCNVRM

    *   X'1218' -- MGRDEPRM

    *   X'1232' -- AGNPRMRM

    *   X'1254' -- CMDCHKRM

    *   X'220E' -- DTAMCHRM

    *   X'2202' -- QRYNOPRM

    *   X'220F' -- QRYPOPRM

    *   X'2207' -- RDBACCRM

    *   X'2204' -- RDBNACRM

A 2-byte hexadecimal sub-code is accompanied with the first four reason
codes (DSCINVRM, SYNTAXRM, PRCCNVRM, and MGRDEPRM). In all other cases,
the sub-code is zero.

When nonzero, the high-order byte of the sub-code indicates the site at
which the error was detected. If the AR detects the error, it is X'01.
If the application server detects the error, it is X'02'. The
lower-order byte is as follows:

    *   Description Error Code (DSCERRCD) if reason code = DSCINVRM

    *   Syntax Error Code (SYNERRCD) if reason code = SYNTAXRM

    *   Conversational Protocol Error Code (PRCCVNCD) if reason code =
	PRCCNVRM

    *   Manager Dependency Error Code (DEPERRCD) if reason code =
	MGRDEPRM

Notify the DBA for assistance in analyzing the SQL statement that
yielded this SQLCODE. If the error recurs, note all
circumstances and contact IBM Technical Support.


-29006	DRDA connect protocol error. Manager,level: (manager,level) not
supported.

The connect process failed.

The application server cannot support a DRDA manager level that was 
requested by the AR (application requester) during the DRDA connection 
process.

The hexadecimal codepoint of the manager (MGRLVL) and the hexadecimal
codepoint of the level requested are returned as a token in SQLERRM.

Attempt to connect to the application server again. If the problem
persists, notify the DBA for assistance. If the error recurs,
note all circumstances and contact IBM Technical Support.


-29007	RDB authorization failure. RDB-userID,RDB: RDB-userID,RDB-name.

The user is not authorized to access the target RDB. The request is
rejected.

Contact the DBA of the RDB side if necessary. Correct the authorization
problem and rerun the application program.


-29008	DDM parameter (parameter-codepoint) not supported error. Disconnected
from AS.

An unsupported DDM parameter is encountered.

The remote RDB received an unsupported/unrecognized DDM parameter. The
current SQL statement is terminated. The application is disconnected
from the application server.

The hexadecimal codepoint of the DDM parameter in question is returned
as a token in SQLERRM.

To interpret the hexadecimal codepoint of the DDM parameter requires
DDM knowledge.

Attempt to rerun the application. If the problem persists, notify the
DBA for assistance in analyzing the SQL statement that yields this
SQLCODE. If the error recurs, note all circumstances and contact
IBM Technical Support.


-29009	DDM parameter value (parameter,parameter-value) not supported.
Disconnected from AS.

The remote RDB received an unsupported/unrecognized parameter value for
a DDM parameter. The current SQL statement is terminated. The
application is disconnected from the application server.

The hexadecimal codepoints of the DDM parameter and the parameter value
in question are returned as a token in SQLERRM.

To interpret the hexadecimal codepoints of the DDM parameter and the
parameter value requires DDM knowledge.

Attempt to rerun the application. If the problem persists, notify the
DBA for assistance in analyzing the SQL statement that yields this
SQLCODE. If the error recurs, note all circumstances and contact
IBM Technical Support.


-29010	AS reply message (codepoint=codepoint) not supported by Gateway.

The Gateway received an unsupported/unrecognized DDM reply message.
The current SQL statement is terminated. The application is
disconnected from the application server.

The hexadecimal codepoint for the received DDM reply message is
returned as a token in the SQLERRM.

To interpret the hexadecimal codepoint of the DDM reply message
requires DDM knowledge.

Attempt to rerun the application. If the problem persists, notify the
DBA for assistance in analyzing the SQL statement that yields this
SQLCODE. If the error recurs, note all circumstances and contact
IBM Technical Support.


-29011	SNA communication error. Informix-SQLCODE,native-SNA-rc:
Informix-communication-SQLCODE,native-SNA-return-code.

An Informix communication-related SQLCODE and a hexadecimal native SNA
service return code are returned as a token in SQLERRM.

The Informix communication-related SQLCODE is a platform-independent
return code that the Informix communication adaptation service
generates. Refer to the explanation of this SQLCODE for a more
specific description of the error.

The native SNA service return code is a return code generated by the
local SNA service that provides the SNA support on each particular
platform. Refer to the manufacturer's documentation for the SNA support
that provides the underlying communication service for an explanation
of this return code.

Ensure that the native SNA/APPC service is installed correctly. Check
that all the required SNA daemon processes (if any) are running. Also
check that the connection file for the target RDB is set up correctly.
In a Sun environment, also check that the Sun APPC Gateway is set up
correctly.


-29012	One or more tables have been dropped, altered, or renamed.

A prepared statement is no longer valid because the schema of the
tables that it references has changed. You must prepare the statement
again.


-29013	AS resource not available. Reason,Type, Name,PrdID,RDB:
Reason,ResourceType,ResourceName,ProductID,RDBname.

The resource is not available at the remote RDB. The current SQL
statement is terminated.

Reason, ResourceType, ResourceName, ProductID, and RDBname are returned
as a token in SQLERRM.

Verify the identity of the resource that was not available. Ensure that
the application server has the needed resource.


-29014	Hard AS resource not available. Reason,Type, Name,PrdID,RDB: Reason,
ResourceType,ResourceName,ProductID,RDBname.

The resource is not available at the remote RDB. The application is
disconnected from the application server.

Reason, ResourceType, ResourceName, ProductID, and RDBname are returned
as a token in SQLERRM.

Verify the identity of the resource that was not available. Ensure that
the application server has the resource needed. Rerun the application.


-29015	Non-bind related DDM command (codepoint=codepoint) attempted during
bind.

A remote execution of SQL statement or a remote command was attempted
while a remote bind was in progress. During bind, only Bind, End Bind,
ROLLBACK, or COMMIT are allowed.

This message indicates a Gateway internal logic error. The DDM command
in question is returned as a token in SQLERRM.

Applications from end users should not go into bind mode. The only time
a package bind should occur is the package-bind process in the gwdba
utility. Rerun the application. If the error recurs, note all
circumstances and contact IBM Technical Support.


-29016	Bind related command (codepoint=codepoint) encountered when bind not
active.

Binding of a statement or End Bind was attempted with a specific
package name and consistency token while the package was not undergoing
bind process.

This message indicates a Gateway internal logic error. Try the
application again. If the error recurs, note all circumstances
and contact IBM Technical Support.


-29018	AS does not support the DDM command: command-codepoint.

The application server does not support the DDM command. This error
causes termination of processing of the command. The application is
also disconnected from the application server.

The SQLERRM contains the hex codepoint of the DDM command in question.

Rerun the application. If the problem persists, notify the DBA for
assistance in analyzing the SQL statement that yielded this SQLCODE. If
the error recurs, note all circumstance and contact IBM Technical Support.


-29019	AS does not support the DDM object type: object-codepoint.

The application server does not support the DDM object. The processing
of the current SQL statement is terminated. The application is
disconnected from the application server.

The SQLERRM contains the hex DDM codepoint of the object type in
question.

Attempt to run the application again. If the problem persists, notify
the DBA for assistance in analyzing the SQL statement that yielded this
SQLCODE. If the error recurs, note all circumstances and contact
IBM Technical Support.


-29030	Feature feature-name not supported by the Gateway.

The Gateway product does not support this feature. (For example, it
does not support Informix-specific SQL statements or Informix-specific
data types.) The feature that is not supported is returned as a token
in SQLERRM.

Correct the application and do not use any feature that the Gateway
cannot support on SQL statements that will go through the Gateway
during execution.


-29031	Table or view name objname has an invalid format

The Add-table and Purge-table options of the gwdba utility for adding
and purging tables and views from the Informix catalog on an
application server require a file of table and view names as input. The
listed table or view name (objname) has an invalid format. The format
of table and view names in the file must be in the following format:

owner.tabname


-29032	Application Server CCSIDs could not be determined.

The Gateway is required to perform outbound character code-set
conversion for this client operating-system locale, but the Gateway
could not determine the CCSIDs of the application server.

Notify the administrator of the Gateway. The administrator must set the
GWASCCSID environment variable to match the single-byte CCSID of the
application server. If network mode is being used, the Gateway
administrator must stop and restart the Gateway daemon after setting
the GWASCCSID environment variable. The Gateway administrator must then
connect to the application server using either a CONNECT statement or a
DATABASE statement. This connection captures all the CCSIDs in the
cache file $INFORMIXDIR/gw/sysinfo/prnccsid.dat.


-29033	Informix GLS locale could not be loaded: localename, errno,
locale-file-name.

localename        The name of the IBM Informix GLS locale that could not be
                  loaded. The value for localename must be of the format
                  language_territory.codeset.

errno             A number that indicates the specific reason that the
                  IBM Informix GLS locale could not be loaded.

locale-file-name  The subdirectory and filename (for example, /en_US/0333.lco)
                  of the IBM Informix GLS locale file that could not be loaded.

language          A two-letter lowercase abbreviation for the language name.

territory         A two-letter uppercase abbreviation for the territory name.

codeset           The name of the character code set for the locale.

Valid values for the codeset field are registered in the
$INFORMIXDIR/gls/cm/REGISTRY file. The values are character strings
that describe the code set. However, if a codeset field value is an
integer in the range from 1 to 65,535, it is an acceptable value even
if it is not in the REGISTRY file.

An attempt to load the IBM Informix GLS locale that localename specified
failed for the reason that errno indicates, as follows:

6-   The locale specification localename is in a bad format.

    The Gateway administrator must correct this specification.

7-   The locale file that locale-file-name specified does not exist.

    If the appropriate directory (see the following paragraph) does not
    contain the locale file that the subdirectory and filename that
    locale-file-name specified, this IBM Informix GLS locale is not available.
    Read your IBM Informix product documentation to ensure that you specified
    the IBM Informix GLS localename correctly (using environment variables or
    other mechanisms that the documentation describes). The IBM Informix GLS
    localename might be incorrectly specified or might be equivalent to
    another IBM Informix GLS locale that is available.

    If the subdirectory and filename that locale-file-name specified exist,
    verify that your product was installed correctly so that the IBM Informix
    GLS locale file can be located. Specifically, ensure that the GL_PATH
    environment variable is set (or not set) according to the Gateway
    installation instructions:

    *   If GL_PATH is not set, verify that the subdirectory and file
        that locale-file-name specifies are in the $INFORMIXDIR/gls/lc
        directory.

    *   If GL_PATH is set, verify that the subdirectory and filename
        that locale-file-name specifies are in one of the directories
        that the GL_PATH environment variable specifies.

10-  The locale file that locale-file-name specified is not a locale file.

    The locale file that locale-file-name specified is not an IBM Informix GLS
    locale file, or it has been corrupted. Check that you are using the
    locale file that your IBM Informix product supplier provided. Refresh the
    file from the original installation file if it has been corrupted.

11-  The locale object is inconsistent.

    The locale object is not consistent. For example, the same code set is
    not being used in each locale category. Contact your IBM Informix product
    supplier for assistance.

For any other errno value, contact your IBM Informix product supplier for
assistance.


-29034	Character code-set conversion error. Tokens: from-cs-num, to-cs-num,
cftype, objtype, position.

The character code-set conversion failed while converting a character
string from the code set that from-cs-num identifies to the code set
that to-cs-num identifies.

cftype       The conversion failure type.

from_cs_num  The code-set number for the input code set. Check your IBM Informix
             product documentation for a description of the code set that this
             code-set number identifies.

objtype      The type of object that is being converted.

position     The ordinal position of the value that is being converted.

to_cs_num    The code-set number for the output code set. Check your IBM Informix
             product documentation for a description of the code set that
             this code-set number identifies.

The following are the possible cftype values:

    *   If cftype is "unmapped input char" (cpstring), the input
        character did not exist in the output code set, and the
        conversion table did not define a substitute output character
        for the input character. The cpstring value shows the input
        character string for a length of up to 4 bytes, starting with
        the codepoint that could not be converted. The binary value of
        the codepoint bytes is represented by cpstring as a
        hexadecimal string (for example, 'c1c3d1f0').

        This failure type has two possible causes:

        1.  The character data that is being converted is bad. Correct
            the character data that is being converted.

        2.  The code-set conversion table is incorrect or incomplete.
            Contact your IBM Informix software distributor for assistance.

    *   If cftype is "bad form," the input character string was badly
        formed with respect to the shift-out and shift-in codepoints
        that delimit the internal code sets that are contained within
        the code set that code-set number from_cs_num identifies.

        For this failure type, correct the form of character data that is
        being converted.

    *   If cftype is "too long," the length of the output string was
        longer than the internal buffers that are allocated to hold the
        output string. If the objtype is "output," the output value was
        longer than the maximum length of a CHAR data type.

        For this failure type, shorten the input character data that is
        being converted.

The following are the possible objtype values:

    *   If objtype is "input," an input value from the application,
        such as an SQL statement or an input host variable value, was
        being converted.

    *   If objtype is "output," an output value from the database, such
        as a field or expression from the select list of a SELECT
        statement, was being converted.

    *   If objtype is "sqlda," an sqlname field in the output SQLDA was
        being converted.

    *   If objtype is "sqlca," a character field in the SQLCA was being
        converted.

The following possible meanings of position depend on the value of
objtype:

    *   If objtype is "input" and position is 0, the text of the input
        SQL statement could not be converted.

    *   If objtype is "input" and position is not 0, position refers to
        the ordinal position of the input host variable value that
        could not be converted. For example, 2 means that the value of
        the second input host variable could not be converted.

    *   If objtype is "output" and position is any value, position is
        the ordinal position of the output value that could not be
        converted, such as the third value in the select list of a
        SELECT statement.

    *   If objtype is "sqlda" and position is any value, position is
        the ordinal position of the sqlname field in the SQLDA that
        could not be converted.

    *   If objtype is "sqlca," position names the specific SQLCA field
        that could not be converted: sqlerrp, sqlwarn, sqlerrmc, or
        sqlstate.


-29035	An incompatible data type was received by the Gateway.

The received data type is not compatible with or supported by the Gateway.
(For IBM Informix Enterprise Gateway with DRDA, the application requestor does
not support the data type that was received from the application server.)

Some examples of unsupported data types are 1-byte integer and 16-byte
float. These data types are not supported.

Do not retrieve data from the columns that have data types that the
Gateway cannot support.


-29036	Character codeset conversion file not found from, to, filename:
from_cs_num, to_cs_num, filename.

filename     The filename of the code-set conversion file that could not be
             found.

from_cs_num  The code-set number for the source code set.

to_cs_num    The code-set number for the target code set.

A code-set conversion table to convert from the code set that
from_cs_num identifies to the code set that to_cs_num identifies was
not found. Consult your IBM Informix product documentation to find
descriptions for the code sets that these code-set numbers identify.

If the appropriate directory (see next paragraph) does not contain the
code-set conversion file named filename, this code-set conversion
cannot be performed. Check your IBM Informix product documentation to make
sure that the code sets that the client and server products use have
been specified correctly (using environment variables or other
mechanisms that are described in the documentation). Perhaps the
code-set numbers have been incorrectly specified or are equivalent to
other code-set numbers that are supported.

If the code-set conversion table exists, verify that your product was
installed correctly so that the conversion table file can be located.
Specifically, ensure that the GL_PATH environment variable is set or
not set according to the installation instructions.

    *   If GL_PATH is not set, verify that the conversion table file is
        in the $INFORMIXDIR/gls/cv directory.

    *   If GL_PATH is set, verify that the conversion table file is in
	one of the directories that the GL_PATH environment variable
	specifies.

If the code-set conversion table does not exist, contact your IBM Informix
software distributor for assistance in determining what code-set
conversion tables are required for your configuration. If the required
code-set conversion tables are available, place the tables in the
appropriate directory.


-29037	There is no CCSID or GLS locale set for the FE OS locale localename.

The locale in question is returned as a token in SQLERRM.

Notify the Gateway administrator. The administrator can add an entry
for the locale using the gwdba utility.


-29039	Cannot have more than one SQL statement in PREPARE/EXECUTE IMMEDIATE.

Modify the application so that it does not include more than one SQL
statement in a PREPARE or EXECUTE IMMEDIATE statement.


-29040	Cannot translate MATCHES pattern to LIKE pattern.

The Gateway does not support and cannot translate one or more
characters in the MATCHES condition of your SQL statement. Try to
rewrite the statement to use LIKE instead of MATCHES condition syntax
or to not include MATCHES wildcard characters such as [ ] and ? or *.
Check also that you did not try to include a non-CHAR or VARCHAR column
with MATCHES in the WHERE clause.


-29042	Package info for RDB rdbname not found. Use gwdba to bind.

The Gateway package information for the target RDB is not found. It
appears that the necessary Gateway packages on the RDB have not been
bound yet. The real_RDB_name of the target RDB is returned as a token
in SQLERRM.

The end user should contact the DBA. If desirable, the DBA can use the
gwdba utility to bind the needed Gateway packages on the target RDB.


-29043	No more section-type sections left. Rebind Gateway packages with more
sections.

All the available sections in the current package at the application
server have been used up. The current SQL statement is terminated.

Notify the DBA. The DBA can rebind the Gateway packages with more
sections on the target RDB using the gwdba utility.


-29044	Gateway internal logic error [diagnostic-error-string].

An internal logic error has been encountered. Rerun the application. If
the error recurs, note all circumstances and contact IBM Technical
Support.


-29045	Gateway internal logic error [diagnostic-error-string].  Disconnected
from AS.

An internal logic error has been encountered. This error will cause
deallocation of conversation.

Rerun the application. If the error recurs, note all
circumstances and contact IBM Technical Support.


-29046	SNA buffer size (size) is not valid.

The send buffer that the Informix connectivity network module allocated
is less than the minimum DRDA required size, which is 512 bytes, or
more than the maximum size, which is 32,767 bytes.

Check the sqlhosts file on the Gateway computer. If the send buffer size
is configurable through the sqlhosts file, make sure that the send
buffer size is configured to be from 512 bytes to 32,767 bytes,
inclusive.


-29048	ISAM Error: error message.

An ISAM error occurred while reading data from a Gateway ISAM setup
file that the Gateway xxxdba utility manages. The name of the ISAM
setup file in question and the ISAM error number are returned in
SQLERRM.

If the Gateway was spawned by way of IPC-pipe mode, you must ensure
that the INFORMIXDIR environment variable was set correctly before the
application starts. Otherwise, notify the DBA:

    *   The DBA for IBM Informix Enterprise Gateway must ensure that the
        $INFORMIXDIR/egw/sysinfo directory exists with the proper
        permissions and that the ISAM setup files are present in 
        that directory. If an IBM Informix Enterprise Gateway setup 
        file is missing or corrupted, run egwdba to create it, or
        run the bcheckegw utility to repair it.

If IBM Informix Enterprise Gateway was spawned by way of network mode (that
is, by the daemon egwd), the DBA also must ensure that the INFORMIXDIR
environment variable was set correctly in the root login when the egwd
daemon was started.

    *   The DBA for IBM Informix Gateway with DRDA must ensure that the
        $INFORMIXDIR/gw/sysinfo directory exists with the proper
        permissions and the ISAM setup files are present in that
        directory. If a Gateway setup file is missing or corrupted,
        run gwdba to create it, or run the bcheckgw utility to repair 
        it.

If the Gateway was spawned by way of network mode (that is, by the
daemon gwd), the IBM Informix Gateway with DRDA DBA also must ensure that
the INFORMIXDIR environment variable was set correctly in the root
login when the gwd daemon was started.

    *   The DBA for IBM Informix Enterprise Gateway Manager must ensure that the
        $INFORMIXDIR/egm/sysinfo directory exists with the proper
        permissions and the ISAM setup files are present in that
        directory. If a Gateway setup file is missing or corrupted,
        run egmdba to create it, or run the bcheckegm utility to repair 
        it.

If the Gateway was spawned by way of network mode (that is, by the
daemon egmd), the IBM Informix Enterprise Gateway Manager DBA also must ensure
that the INFORMIXDIR environment variable was set correctly in the root
login when the egmd daemon was started.


-29049	Unable to locate/open Gateway setup file filename.

If you are using IPC-pipe mode to start the Gateway process, you should
ensure that the INFORMIXDIR environment variable was set correctly
before the application starts.

*   For IBM Informix Enterprise Gateway with DRDA:

An error occurred while locating or opening a Gateway ISAM setup file
that the gwdba utility manages. The name of the ISAM setup file that is
causing the error is returned in SQLERRM.

If you are using network connections, the IBM Informix Enterprise Gateway with
DRDA database administrator must ensure that the named file exists in the
$INFORMIXDIR/gw/sysinfo directory. If the file is missing, run gwdba to
create it. The DBA also must ensure that the INFORMIXDIR environment
variable was set correctly at the time that the gwd daemon was
started.

*   For IBM Informix Enterprise Gateway:

An error occurred while locating or opening an IBM Informix Enterprise Gateway
ISAM setup file that the egwdba utility manages. The name of the ISAM setup
file that is causing the error is returned in SQLERRM.

If you are using network connections, the IBM Informix Enterprise Gateway
DBA must ensure that the named file exists in the
$INFORMIXDIR/egw/sysinfo directory. If the file is missing, run egwdba
to create it. The DBA also must ensure that the INFORMIXDIR environment
variable was set correctly at the time that the egwd daemon was
started.

*   For IBM Informix Enterprise Gateway Manager:

An error occurred while locating or opening a Gateway ISAM setup 
file that the egmdba utility manages. The name of the ISAM setup
file that is causing the error is returned in SQLERRM.

If you are using network connections, the IBM Informix Enterprise Gateway
Manager database administrator must ensure that the named file
exists in the "$INFORMIXDIR/egm/sysinfo" directory. If the file is
missing, run "egmdba" to create it. The DBA also must ensure that
the INFORMIXDIR environment variable  was set correctly at the time
that the "egmd" daemon was started.


-29050	Error accessing schema information
(Orig-Msg[Sub=Sub-code,Ifx=Orig-code,Obj=Object-name])

The Gateway encountered an error while accessing catalog information
for the object Object-name. The Gateway sends this catalog information
to the coordinating database server while processing a distributed
query.

Several errors that might occur during catalog access can cause this
message. Orig-code is the error code for the underlying error, and
Orig-Msg is the message token that is associated with that error code.
Sub-code is an Informix internal code in hexadecimal that indicates
which catalog access query failed and in which stage of query
processing it failed. This diagnostic information field is meant for
Technical Support.

Although the error message token might be truncated through
programmatic access, the entire message is logged in the Gateway log
file gw.log in the directory $INFORMIXDIR/gw/log.


-29051	Only single-site updates allowed in a transaction.

This Gateway does not support two-phase commit. If any remote server
that the Gateway accesses is an update site in a transaction, that site
must be the only update site in the transaction. All other sites,
including Informix sites, must be read only. Change the application to
update only one remote site per transaction. (However, if the sites in
a transaction are all read only, any number of sites can be updated in
the same transaction).

This error message applies only when the database server that
coordinates the transaction either is earlier than Version 7.2 or is
Version 7.2 or later and the HETERO_COMMIT configuration parameter is
not set.


-29052	Gateway cannot access the remote data source named data-source-name.

The token data-source-name has been used in a four-part object name.
For example:

data-source-name@gwservername:own1.tab1

In addition, the gwservername in the previous example has been used
earlier in your application in association with a different
data-source-name. For example, it might have been used with
data-source-name2:

data-source-name2@gwservername:own2.tab2

Within a single application, until a CLOSE DATABASE statement executes,
each gwservername can be used to access only one data-source-name.

To access more than one data-source-name within a single application,
you must start a separate Gateway daemon (with a unique gwservername)
for each remote data source. Then change your application so that each
unique gwservername in your application is always used in association
with the same data-source-name. For example, the following statements
consistently associate data-source-name dsn1 with gwservername gw1, and
dsn2 with gw2:

SELECT col5 FROM dsn1@gw1:own1.tab1 WHERE col1 > 100;

SELECT col2 FROM dsn2@gw2:own2.tab2 WHERE col4 < 10;

SELECT a.col1, b.col2 FROM dsn1@gw1:own3.tab3 a, dsn2@gw2:own4.tab4 b
        WHERE a.col2 = b.col3;

The token data-source-name in the error message has different meanings,
depending on the Gateway product:

    *   For IBM Informix Enterprise Gateway Manager, data-source-name
	refers to the ODBC data-source name.

    *   For IBM Informix Gateway with DRDA, data-source-name refers to the
	alias-RDB-name. Each Gateway instance can connect to only one
	RDB (application server).

    *   For IBM Informix Enterprise Gateway, data-source-name refers to the
	EDA-Server-name. Each Gateway instance can connect to only one
	remote server.


-29053	Collection missing in the reference to object Object.

Any distributed query that references an OS/400 object must specify the
OS/400 collection or library to which the object belongs. The
collection or library name should be specified in the owner field of
the complete object name database@dbservername:owner.object. The
collection or library name is required to get catalog information for
the specified Object in a given collection or library.


-29055	DDL statements are not allowed on a remote object.

In a distributed query, the Gateway does not allow data definition
statements and the data access statements GRANT and REVOKE on remote
objects (such as objects at DRDA application server sites).
Applications can use these statements only when they use the Gateway in
direct mode.


-29056	Gateway cannot rollback savepoint (error-message-info).

An error occurred while a remote distributed update was in progress.
Because the Gateway cannot undo the effects of the partial update, the
application must terminate the current transaction with a ROLLBACK WORK
statement. Any other statement in the current transaction will fail
with this error code. If the application issues a COMMIT WORK
statement, a ROLLBACK WORK statement is executed internally, and this
error code is returned.

The error-message-info field contains the sqlcode of the original error
and an optional error messages string if the error originated at the
target data source. The format of this message string is documented in
the appropriate Gateway user manual. If the error-message-info field is
empty, the savepoint rollback is the result of a processing error at
the coordinating database server.


-29057	Gateway does not support remote aliases (remote-object-name).

The Gateway does not support access to DB2 remote aliases in
distributed queries. A remote alias is defined for an object that is
not on the same server where the alias is defined.

Remote-object-name is the three-part object name (in the format
LOCATION.OWNER.OBJECT) to which the remote alias refers.


-29060	EDA error (EDA_Error).

The SQL statement failed because of an EDA error. EDA_Error describes
the EDA error that the EDA client or server returned.

The format of the EDA_Error field is as follows:

[EDA_Error_Code EDA_command] EDA_message_text

    *   EDA_Error_Code is the EDA numeric error code.

    *   EDA_command is the EDA API/SQL command that is issuing the
        error.

    *   EDA_message_text is the EDA message text that is associated
	with the error.

Look up the error in your EDA documentation from Information Builders,
Inc. and correct the problem.


-29062	An EDA Client or Server prompt was received.

The EDA client or server has prompted the Gateway to respond to a
message. For example, an EDA Remote Procedure might prompt the user
for input. The Gateway does not support EDA operations that require
responses to prompt messages.


-29063	Output data description changed between prepare and execute.

The description of the output data for the query that was returned at
prepare time is different than the description that was returned at
execute time. The description of the output data that was returned at
prepare time is derived from the cataloged information about the
objects (for example, tables or remote procedures) in the query. This
error usually occurs because the cataloged information about the object
is out of date.

If the object is not cataloged, or if it has changed since it was last
cataloged, the object must be cataloged (or recataloged) with the
EDASAF or EDA/SQL Metadata Manager tools. If Informix-style system
catalog tables are being used at the EDA/SQL Server, and the object is
a table and not a remote procedure, the Informix-style system catalog
tables also must be repopulated, with the egwdba utility, after the EDA
system catalog tables have been updated with EDASAF or the EDA/SQL
Metadata Manager.


-29064	Unknown EDA datatype received.

The output EDA data type that the Gateway received is an unknown EDA
type. The Gateway might receive an unknown data type if it is connected
to an EDA/SQL Server at a release level that the Gateway does is not
support. If the Gateway does support this release level, this message
indicates an internal error either for the EDA products that are being
used or for the Gateway.


-29065	Input host variables not allowed in EXECUTE PROCEDURE.

You used a parameter marker for at least one of the input parameter
values in the dynamic EXECUTE PROCEDURE statement that is being
prepared. Parameter markers are not supported for input parameters in
EXECUTE PROCEDURE statements that the Gateway processes. Rewrite your
application to avoid the use of input host variables as input
parameters to the EXECUTE PROCEDURE statement.


-29066	Password required in .netrc entry for 'userid'.

The .netrc file contains an entry that maps from the current user ID
(userid) to a new user ID that will be sent to the remote server or
data source. In this case, the new user ID is different from the
current user ID, but no password is specified to be sent with the new
user ID to the remote server or data source. This error occurs because
the Gateway has not authenticated the new user ID, and the remote
server or data source cannot authenticate the new user ID without a
password. Sending the new user ID without a password implies to the
remote server or data source that the Gateway has authenticated the new
user ID (which the Gateway has not done).


-29067	Could not access EDALINK.CFG file (reason).

The EDALINK.CFG file could not be accessed for the reason that is
stated. When reason is of the form name: number, number indicates the
operating-system error while accessing a file or directory with the
specified name. Usually, the failure occurs because the EDALINK.CFG
file is not in the Gateway $INFORMIXDIR/etc directory. The EDALINK.CFG
file is an EDA/Link configuration file that is required to connect to
an EDA/SQL Server. Consult your EDA/Link documentation to
determine the contents of the file.


-29068	A field value received from the EDA Server could not be decoded.

In the row that is being fetched, a field value could not be decoded
and converted into an Informix data value. Usually this situation
occurs because the EDA/SQL Server could not convert the field value
from its actual value in the underlying data source to its specified
Master File Description (MFD) usage format. For example, if the usage
format in the table MFD is I2 (integer value with a maximum field
length of 2 characters), and the value of the field is 300, then the
EDA/SQL Server cannot fit 300 into the specified 2-character field
length.

In this case, the Gateway issues the error because the EDA/SQL Server
has sent a sentinel value in place of the real field value. Check that
the usage format field-length specifications in the MFD are long enough
to hold the actual field values that your data contains. If this action
does not solve the problem, contact IBM Technical Support for
assistance in tracing the data that is received from the EDA/SQL
Server.


-29070	Package isolation level does not match for alias_rdbname,
isolation_level

The application-to-package mapping entry for the given alias_rdbname and 
isolation_level points to a package whose isolation level is different than 
isolation_level.

Make sure that the application-to-package entry is valid and that
isolation_level matches the isolation level in the gwbind file for the
mapped package.


-29071	Gateway cannot find package information for package
RDBName.CollectionID.PackageID

Gateway package information for the specified package 
RDBName.CollectionID.PackageID is not found. Perhaps the specified package
has not been bound, or the package mapped in the application-to-package 
mapping is incorrect.

Contact the database administrator (DBA). The DBA can use the gwdba utility
to bind the specified package or to ensure that the package to which the 
application-to-package mapping entry points is valid.


-29080	Target DBMS Error (message_token).

The target DBMS (Database Management System) to which the Gateway is
connected has reported the error that is contained in message_token.
Refer to the documentation for the target DBMS to correct the problem.

The format for message_token is as follows:

[DBMS_Error_Code Sqlstate DBMS_Product_id] DBMS_Error_Message

DBMS_Error_Code     is the error code of the target DBMS.

Sqlstate            is the SQLSTATE that is associated with the error. For a
                    list of SQLSTATE codes, see your ODBC documentation.

DBMS_Error_Code     is the error code of the target DBMS.

DBMS_Product_id     is the product ID of the target DBMS.

DBMS_Error_Message  is the error message that the target DBMS generates.
                    This message is truncated if the entire sqlerrm text is
                    longer than 71 bytes.

DBMS_Product_id in message_token has the following format:

Product_Name:Product_Version

Product_Name     is up to the first five characters of the name of the
                 target DBMS product as reported by the ODBC Driver for the
                 product (specifically, the SQL_DBMS_NAME returned by the
                 SQLGetInfo ODBC function).

Product_Version  is the first 10 characters of the version of the target
                 DBMS product as reported by the ODBC Driver for the product
                 (specifically, the SQL_DBMS_VER returned by the ODBC
                 SQLGetInfo function).

Product_Version is a character string of the form nn.nn.nnnn, where
the first two digits are the major version of the target DBMS, the next
two digits are its minor version, and the last four digits are its
release version (for example, 03.01.0000). An Oracle7 DBMS_Product_id
might be Oracl:07.01.0000.

If the connection attempt to the target DBMS was not completely
successful, then DBMS_Product_id will be :00.00.0000.


-29081	ODBC Error (message_token).

An ODBC (Open Database Connectivity) component that the Gateway uses to
access the target DBMS has reported the error that message_token
contained. Refer to your ODBC documentation to correct the problem.

The format for message_token is as follows:

[ODBC_Error_Code Sqlstate Driver_Prod_id] ODBC_Error_Message

ODBC_Error_Code     is the error code of the ODBC component. (It can be 0.)

Sqlstate            is the SQLSTATE that is associated with the error. For a
                    list of SQLSTATE codes, see your ODBC documentation.

Driver_Prod_id      is the product ID of the ODBC driver that is being used.

ODBC_Error_Message  is the error message that the ODBC component provided.
                    This message is truncated if the entire sqlerrm text is
                    longer than 71 bytes.

Driver_Prod_id has the following format:

  Driver_Name:Driver_Version

    Driver_Name     is up to the first 5 characters of the name of the file
                    that contains the ODBC Driver that is being used for the
                    connection (specifically, the SQL_DRIVER_NAME that the
                    SQLGetInfo ODBC function returned). If the connection
                    has not yet been established, Driver_Name is blank.

    Driver_Version  is the first 10 characters of the version of the ODBC
                    Driver (specifically, the SQL_DRIVER_VER that the ODBC
                    SQLGetInfo function returned). The Driver_Version is a
                    character string of the form nn.nn.nnnn, where the first
                    2 digits are the major version of ODBC Driver, the next
                    2 digits are its minor version, and the last 4 digits
                    are its release version (for example, 02.00.0000). An
                    Oracle7 Driver_Prod_id might be libor:01.02.0006.

If the connection attempt to the target DBMS was not completely
successful, then Driver_Prod_id will be:00.00.0000.


-29082	Could not decode field value for field number field-number.

In the row that is being fetched, the field value for the field that is
numbered field-number could not be decoded and converted into an
Informix data value. The field number is the ordinal position of the
field that could not be converted in the select list. This situation
reflects an error in the ODBC Driver for the target DBMS. The field
value that could not be decoded is written to the Gateway log file
along with the Driver Name and Version information.

Contact your ODBC Driver supplier for a solution to the problem.


-29083	Compatible isolation level not supported by the data source.

If you received this error code when you executed a SET ISOLATION TO
statement, the attempt to set the isolation level at the data source to
a level compatible with the level in the statement has failed. The
current isolation level in your application remains in effect.

If you receive this error code when you are executing a distributed SQL
statement, the statement has failed because the data source does not
support an isolation level that is compatible to the current isolation
level of your application. The current isolation level in your
application remains in effect.

A compatible isolation level is equal to or higher than the requested
(or current, if a distributed statement) isolation level. When the
requested (or current) isolation level is supported at the data source,
IBM Informix Enterprise Gateway Manager sets the data-source isolation
level to that level. When the requested or current isolation level is
not supported at the data source, if any higher levels are supported,
IBM Informix Enterprise Gateway Manager sets the data-source isolation
level to the next available higher level.

If a lower isolation level that the data source supports is acceptable
to your application, set the isolation level to that lower level. If
you are accessing IBM Informix Enterprise Gateway Manager in direct access
mode, use the GWDIRECTMIL environment variable to set the isolation
level. If you are accessing IBM Informix Enterprise Gateway Manager in
distributed-access mode, issue the SQL statement SET ISOLATION TO
before you execute the distributed statement that accesses the
Gateway.


-29084	Write access is not permitted to data source.

Your application is connected to a database server that supports
transactions, but the data source that is being accessed in the
statement does not support transactions. In this configuration,
non-SELECT SQL statements (that is, actual or potential write
operations) cannot be issued to the data source.

In this case, the data source does not have the capability to match the
transaction characteristics of the coordinating database server. A
write operation cannot be guaranteed to be atomic on the data source
(for example, a write to a file might start successfully but eventually
fail because of insufficient disk space, leaving the file partially
modified). Also, a write operation cannot be rolled back after it has
been performed on the data source. For these reasons, write operations
are not permitted when the coordinating database server supports
transactions (that is, has a log), and the data source does not support
transactions.

If distributed write access to the data source is required, access the
data source from a non-ANSI database without logging (or that has
logging turned off).


-29085	Cursor hold is not supported by the data source.

The data source does not support cursors that are declared WITH HOLD.
Either the target DBMS does not support cursors that remain open after
a commit operation, or the ODBC Driver does not use cursors with this
property. Cursors that are declared WITH HOLD cannot be used at the
data source.


-29087	Network Protocol Communication error.
Informix-SQLCODE,native-protocol-rc: code

An Informix communications-related SQLCODE value and a hexadecimal
native-network protocol return code are returned as a token in SQLERRM.

Informix-SQLCODE is a platform-independent return code that the Informix
communications adaptation service generates. For a more specific description
of the error, refer to the explanation of this SQLCODE value.

The native-protocol-rc value is a return code generated by the local network
communications service that provides the protocol support on each particular
platform. For an explanation of this return code, refer to the manufacturer's
documentation for the protocol support that provides the underlying
communications service.

Ensure that the native-network communications service is installed correctly
and that the target AS is configured correctly and is currently running.

Example: If the communications protocol is TCP/IP, then the
native-protocol-rc value is the return code that the local TCP/IP
service generates.


-29088	Communication buffer size (size) is not valid.

The send buffer that the Informix connectivity network module allocated is
less than the minimum DRDA-required size, which is 512 bytes, or more than
the maximum size, which is 32,767 bytes.

Check the sqlhosts file on the Gateway computer. If the send buffer size is
configurable through the sqlhosts file, make sure that the send buffer size
is configured to be from 512 bytes to 32,767 bytes, inclusive.

If the network protocol being used is TCP/IP, an additional 6 bytes are
required by the Informix connectivity network module. This means the user
specifiable block size minimum is 518 bytes and maximum is 32,773 bytes.


-29089	RDB password required when client user('<username>') is not
authenticated by Gateway.

This error occurs when the Gateway has not authenticated the client user ID
(gwd is started with the '-b' option) and the application does not specify a
password with the user ID.

Regardless of the security configuration of the remote database server, the
Gateway expects to receive a password along with the user ID for the remote
server when gwd is started with the '-b' option. In this case, the Gateway
delegates user ID authentication to the remote server entirely.

Make sure that the password is supplied to the Gateway.


-32100	MAC check failed.

Your session sensitivity label does not permit you to perform the
operation on the OnLine/Secure object that you are accessing because it
violates the MAC policy of IBM Informix OnLine/Secure. Log in at the
appropriate sensitivity label and retry the operation.


-32101	DAC check failed.

Your session identity does not permit you to perform the operation on
the OnLine/Secure object that you are accessing because it violates the
DAC policy of OnLine/Secure. Log in with the appropriate identity, or
obtain the necessary privileges and retry the operation.


-32102	Bad label range.

The range that is specified for an operation that involves labels is
incorrect. The situation could arise either due to bad user input or
an internal error.


-32103	Label comparison operation failed.

This internal error could arise because the labels to be compared are
incomparable or illegal, or the comparison operation was not legal for
the label data type.


-32104	Internal error; no table descriptor.

The table descriptor for the specified table was not found in the core
dictionary.


-32110	Illegal session level for dropping a database.

Your session sensitivity label must equal the sensitivity level of the
database.


-32112	No DBA privilege for creating a view schema.

Contact the database administrator and request DBA privilege.


-32113	No DBA privilege for creating a table schema.

Contact the database administrator and request DBA privilege.


-32114	Cannot drop system catalog tables.

System catalog tables are dropped only when the database is dropped.


-32115	Cannot change ownership of a table.

It is not legal to change the ownership of a table.


-32116	Illegal session level for altering a constraint.

Your session sensitivity level must equal the sensitivity level of the
table.


-32117	Illegal session level for creating an index.

Your session sensitivity level must equal the sensitivity level of the
table.


-32118	No Index privilege for creating an index.

Privilege is not granted for you to create an index on the table.


-32119	Illegal session level for altering an index.

Your session sensitivity level must equal the sensitivity level of the
table.


-32120	No Resource privilege.

The action that you are performing requires Resource privilege on the
database. Contact the database administrator to request the privilege.


-32121	Illegal session level for dropping an index.

Your session sensitivity level must equal the sensitivity level of the
table.


-32122	Cannot modify system catalog tables.

It is not legal to change attributes other than the next-extent size
for the system catalog tables.


-32123	Not the owner of the index.

Only the owner of the index can perform the operation that you are
attempting.


-32124	Cannot modify an index on a temporary table.

It is illegal to alter indexes on temporary tables.


-32125	Current database number out of range.

This internal error indicates that the number of concurrent database
opens exceeds the limit that OnLine/Secure sets.


-32126	Illegal label tag.

The tag value that you supplied is unknown to the operating system.


-32127	Illegal session level for dropping a table.

Your session sensitivity level must equal the sensitivity level of the
table.


-32128	No privilege for changing a SERIAL column.

You need Insert or Alter privilege on the table, or Update privilege on
the SERIAL column, to change the serial value.


-32129	Table was not opened at required label.

This message is applicable only for multilevel secure applications. You
are attempting an operation on a table at a level higher than or
incomparable to the level at which you opened the table. Open the table
at the appropriate level.


-32130	There is no record at the specified level.

This message is applicable only for multilevel secure applications. No
records exist at the level that you are accessing.


-32131	Internal heap error.

This message indicates an internal error.


-32132	Cannot order by label.

Ordering by label is illegal because labels are not ordered linearly.


-32133	Illegal session level for granting table-level privileges.

Your session sensitivity level must equal the sensitivity level of the
table.


-32134	Illegal session level for granting database-level privileges.

Your session sensitivity level must equal the sensitivity level of the
database.


-32135	Illegal session level for revoking table-level privileges.

Your session sensitivity level must equal the sensitivity level of the
table.


-32136	Illegal session level for revoking database-level privileges.

Your session sensitivity level must equal the sensitivity level of the
database.


-32137	No Alter privilege to modify a constraint.

Alter privilege on the table is required to modify a constraint.


-32138	Cannot set the initial SERIAL value.

This message is applicable only for multilevel secure applications. The
initial serial value was not set at table creation.


-32139	No initial value has been set for the SERIAL column.

This message is applicable only for multilevel secure applications. No
initial serial value exists for the sensitivity level that you are
accessing. The initial serial value must be set at table creation if a
SERIAL column exists in the table.


-32140	File handle and tabid are not consistent.

This message indicates an internal error. The table handle that is
provided to an ISAM function is not a legal handle for the table whose
tabid is also provided as a function argument.


-32154	Label.map file must be owned by DBSSO.

Ensure that no other user has created a label.map file in the
$LABELMAPDIR directory. Check that the sensitivity label of the
label.map file is ixdbssoL.


-32155	tbload is locked. Remove label.lok file.

An old label.map file is in use. Update the label.map file if
necessary and remove the label.lok file to indicate your concurrence
that the label.map file is indeed okay.


-32156	Cannot open file.

Cannot open the label.map file or the label.lok file. Check the
existence, permission, and sensitivity level of these files.


-32157	Invalid data in label.map file.

Check the integrity and legality of entries in the label.map file
according to the current operating system.


-32158	The mapped tag does not exist in system.

The translation tag for a tag on tape that is provided in the label.map
file does not exist on the operating system. Check the integrity and
legality of entries in the label.map file according to the current
operating system.


-32159	The mapping tag does not exist in system.

A tag that is supplied in the label.map file does not exist on tape.
Ensure that you are providing mapping only for those tags that are on
the tape.


-32160	Unable to sort label.map file.

An error occurred during sorting of the label.map file. Check the
integrity of the label.map file.


-32162	Label tag are not unique.

Tags and their translation tags should have strictly one-to-one
mapping. Check the label.map file for duplicate tag mappings.


-32163	Label tag are not valid.

Only the tag representation of labels should be stored in the label.map
file. Check the integrity and legality of the tags that are stored in
the label.map file.


-32164	Error creating session shared memory.

This message indicates an internal error. Check the operating-system
error message. If the cause of the error is the size of the shared
memory, you or your DBSA might have set a high value for SM_ROWSIZE or
SM_TOTALROWS in the session configuration file.


-32165	Error attaching to session shared memory.

This message indicates an internal error. Check the operating-system
error message for further information.


-32166	RSAM could not be found or executed by the current user.

Check $INFORMIXDIR, $SQLEXEC settings. Ensure that you are in the group
ix_users, ix_dbsa, or ix_dbsso. Check that the ISAM executable in
$INFORMIXDIR/lib is executable by your session.


-32167	Table label inconsistent.

This message indicates an internal error.


-32168	Database label inconsistent.

This message indicates an internal error.


-32169	Cannot convert label between internal and external forms.

This message indicates an internal error. The operating system cannot
map between the internal and external forms of the label. Check the
external or tag representations that you provided.


-32181	The number of estimated security labels must be greater than 0.

Check for the parameter setting in the ONCONFIG file or the input to
ON-Monitor.


-32182	Invalid number of estimated security labels label-name.

Check for the parameter setting in the ONCONFIG file or the input to
DB-Monitor to make sure that the number of estimated security labels is
always greater than 0.


-32183	LUB computation failed.

Check the legality of inputs to the LABELLUB() function.


-32184	GLB computation failed.

Check the legality of the inputs to the LABELGLB() function.


-32190	Cannot aggregate label column.

Check if label column is supplied to an aggregate function.


-32191	Cannot alter table.

Alter table failed; check the additional ISAM error message for further
information.


-32193	Cannot create audit tblspace.

The OnLine/Secure database server cannot be initialized. Note
all circumstances and contact IBM Technical Support.


-32194	Cannot create reserved tblspace.

The OnLine/Secure database server cannot be initialized. Note
all circumstances and contact IBM Technical Support for assistance.


-32197	Not an OnLine/Secure tape.

Use a tape that an OnLine/Secure database server generated.


-32198	Not an OnLine/Secure root chunk.

Modify the ONCONFIG file to refer to a rootdbs that an OnLine/Secure
database server created.


-32400	A Table_option has already been altered.

You can change only one table option (locking mode, extent size) for
each ALTER TABLE session. If you have changed one table option and want
to change another, you must first exit the ALTER TABLE Menu and build
the modified table. Select the Exit option, then the Build-new-table
option. Then select the Table_options option on the ALTER TABLE Menu,
and make your next modification to the table.


-32401	The initial extent size cannot be changed when altering a table.

The initial-extent size is set when the table is first created. The
next-extent size can be altered, but the initial-extent size cannot. To
change the size of the initial extent, you must unload the data from
the table, drop the table, re-create the table with the CREATE TABLE
statement, and reload the data into the table.


-32402	The user cannot change the dbspace name when altering an existing table.

You have specified the location in which to table is to be stored. You
have explicitly specified a dbspace or the dbspace of the database has
already been used. When you attempted to alter a table, you tried to
change the dbspace in which the table is stored. This action is
illegal. You can specify the dbspace only when you create the table.

Download any data in the existing table. Drop that table. Create a new
table. Specify the dbspace that you want to use and upload the data
into the new table.


-32403	Illegal serial length has been used.

This error occurs when the user creates or alters a table and creates
or alters a column of type serial but has specified that the starting
number is less than or equal to zero (illegal) or has entered in a
nonnumeric value. Enter a number equal to or greater than 1 for the
starting number.


-32404	Invalid delimiter. Do not use '\\', hex digits, tab or space.

The delimiter that is specified for the LOAD or UNLOAD statement is
illegal. You cannot use the new-line character, hexadecimal digits (0
to 9, A to F, a to f), the tab character, or a space as a delimiter.
Check the statement and change the delimiter symbol.


-32405	Incorrectly formed hexadecimal value.

The hexadecimal file that is used to load a BYTE value into the table
has an illegal character or an incorrectly formed hexadecimal value.
Check the file for any anomalies and try running your statement
again.


-32406	Value must be greater than zero.

You specified an extent size less than or equal to zero when you
created or altered a table. Specify an extent size greater than zero.


-32407	Trigger not found.

You specified an invalid trigger name. Enter the name of an existing
trigger or correct your spelling.


-32408	Cannot create MODE ANSI database without specifying transaction log
pathname.

You tried to create an ANSI-compliant database on IBM Informix SE but did
not specify a pathname for the mandatory unbuffered transaction
logging. Select the Mode_ansi option of DB-Access again, or revise your
CREATE DATABASE statement and enter the full log pathname.


-32409	Data is unavailable, cannot open database sysmaster.

DB-Access cannot open the sysmaster database, from which you have
requested information. Check that the sysmaster database was built
properly and read the error log for the cause of the failure.


-32410	Syntax not supported by DB-Access.

DB-Access does not support the AS, WITH CURRENT TRANSACTION, or USER
clause of the CONNECT statement, although the database server supports
it. Use proper SQL statement syntax when you run your CONNECT
statement in DB-Access.


-32411	An Alter Table Option has already been altered.

You attempted to perform an ALTER TABLE option on a table option that
you previously altered. You cannot alter a table option more than
once.


-32412	USING clause unsupported. DB-Access will prompt you for a password.

DB-Access does not support the USING password clause in a CONNECT ...
USER statement when it violates security. For example, do not type a
password on the screen where it can be seen or include it in a command
file that someone other than the user can read. To maintain security,
DB-Access prompts you to enter the password on the screen and uses echo
suppression to hide it from view.


-32500	User does not have discrete privilege to change session levels.

You must obtain the PRIV_CANSETLEVEL discrete privilege from the DBSSO
before the start of a session in which you use the SET SESSION LEVEL
statement.


-32501	Login session level not dominating the new session level.

You must log in at a session sensitivity level that dominates the
session level that you specify.


-32502	New session level not dominating the database level.

You cannot access the database at the new session sensitivity level.
Use a different level that dominates the database.


-32503	User tables should be closed to change session attribute.

Close all tables and relinquish all cursors that remain open before
you attempt to change session sensitivity levels.


-32504	Operations on remote objects are not allowed after session level set.

You cannot access objects in remote databases when your current session
sensitivity level differs from that of your login session. Return to
the sensitivity level of your login session to access remote data.


-32505	Cannot set session level.

For more information, refer to the accompanying error message.


-32506	Bad session label format.

The argument to the SET SESSION LEVEL statement was not a valid
sensitivity label.


-32507	Cannot set session authorization.

You must be a DBA to change the session user unless you are changing to
yourself.


-32508	Statement is invalid within a transaction.

You attempted to execute a SET SESSION AUTHORIZATION, SET ROLE, or SET
TRANSACTION statement from within an active transaction.

Issue the SET statement at the beginning of the transaction, before a DML
statement, such as SELECT or INSERT, makes the transaction active. Otherwise,
roll back or commit the transaction before you issue the SET statement.


-32509	Bad session authorization format.

The user name that is supplied as an argument to the SET SESSION
AUTHORIZATION statement is invalid. Supply the user ID of a valid
user.


-32510	User does not have discrete privilege to change session authorization.

You must obtain the PRIV_CANSETIDENTITY discrete privilege from the
DBSSO before the start of a session in which you use the SET SESSION
AUTHORIZATION statement.


-32513	Cannot rename table or column.

Renaming of table or column failed. For more information, refer to the
ISAM error message.


-32514	Session level is different from the level of the database object.

Your session sensitivity label does not permit you to perform the
operation on the OnLine/Secure object that you are accessing because it
violates the MAC policy of OnLine/Secure. Log in at the appropriate
sensitivity label and retry the operation.


-32520	Cannot create SL map tblspace.

This message indicates an internal error.


-32521	Cannot create IL map tblspace.

This message indicates an internal error.


-32522	Cannot create Datalo translation.

This message indicates an internal error.


-32523	Cannot create Datahi translation.

This message indicates an internal error.


-32524	Cannot create ixdataH translation.

This message indicates an internal error.


-32525	Cannot create saved translations.

This message indicates an internal error.


-32526	Saved and stored tags disagree.

This message indicates an internal error.


-32528	Tag not found.

This message indicates an internal error.


-32529	Cannot create ixdbsaL translation.

This message indicates an internal error.


-32532	Illegal data type for VARIANCE or STDEV.

You cannot use the VARIANCE or STDEV function on string or DATETIME
data types. Review the use of these functions.


-32766	Unknown error message number.

The software product cannot find the error message text files. Either
the INFORMIXDIR or DBLANG environment variable is set incorrectly.


-32792	The onutil EBR block command completed successfully.

The database server has been blocked successfully.

You need to unblock the database server before normal processing can
continue.


-32793	The onutil EBR unblock command completed successfully.

The database server has been unblocked successfully.

No action is required.


-33000	The keyword is a reserved ANSI keyword.

This message is a warning. If you want your code to be ANSI compliant,
do not use the keyword that is shown as a variable name. Check the
IBM Informix Guide to SQL: Syntax for alternative syntax.


-33001	Environment variable variable-name has invalid value.

Reset the specified environment variable to a legal value and try
again. See the IBM Informix Guide to SQL: Reference.


-33002	Syntax error in the ESQL INCLUDE statement.

The preprocessor cannot interpret this INCLUDE statement. Refer to your
embedded-language manual for the correct syntax of the INCLUDE
statement.


-33003	Bad label format.

The label on the current statement is incorrect in form. Refer to the
embedded-language manual for accepted label formats.


-33004	Option option-name does not exist or has bad format.

This embedded-language product does not support the specified option
from the preprocessor/compiler command line. Check that it is spelled
as you intended. Refer to the embedded-language manual for supported
options.


-33005	Incomplete string.

A character string is not correctly terminated according to the rules
of the host language. For example, it might be missing an end quote,
not have a continuation character, and so on. The preprocessor might
not recognize the error until a number of source lines beyond the line
where you intended the string to end.


-33006	Type of variable-name is not appropriate for this use.

You cannot use the specified variable in the context of this statement.
Check that you specified the variable you intended and that you
declared it with the proper type. Then refer to the embedded-language
manual for variable usage in this type of statement.


-33007	'$' assumed before variable-name.

The preprocessor has assumed that you intend the symbol variable-name
in this statement as a host variable. (A host variable is normally
indicated with '$' or ':' preceding it.) Check that you did intend this
meaning.


-33008	Record component component-name was not declared.

This statement uses the symbol component-name as if it were the name of
a component of a record, but it was not declared as a component of the
record name with which it is used. Check the spelling of both the
component and the record name.


-33009	The component name component-name has already been used.

The record component was declared twice in the same record/structure.
Check the spelling of component names and the syntax of the
declaration.


-33010	Internal error: Preprocessor states corrupted.

Correct all other processing errors. If the error recurs, note
all circumstances and contact IBM Technical Support.


-33011	Current declaration of variable-name hides previous declaration.

This message is a warning from the preprocessor. The specified variable
was declared more than once in the current scope. Compilation continues
using this latest declaration to the end of the current scope. If you
did not intend to redeclare the indicated variable, check the spelling
of variable names and the syntax of declarations. In IBM Informix ESQL/C,
this warning can also be issued if the variable is used as function
parameter. In this case, use the PARAMETER clause.


-33012	Number of digits must be 1 to 32.

You specified a precision or scale for a DECIMAL value that is out of
range. A DECIMAL variable must have from 1 to 32 digits. Check the
punctuation of the declarations in this statement.


-33013	END DECLARE SECTION with no BEGIN.

The preprocessor has found this EXEC SQL END DECLARE SECTION statement
but has not seen a preceding EXEC SQL BEGIN DECLARE SECTION. Possibly
it was omitted or not recognized due to another error. Check that each
BEGIN DECLARE is paired with an END DECLARE.


-33014	Illegal use of record/structure variable-name.

The indicated record was used where only a simple variable can be
accepted. Review the declaration of variable-name and check that it
is the variable you intended to use (possibly you need to qualify it
with a component name). Refer to the embedded-language manual for the
requirements of this statement.


-33015	Input file name has invalid suffix suffix-text.

The name of the input file that is submitted to the preprocessor must
have the correct suffix. Check the command syntax and rename the file
if necessary. The following file suffixes are required:

    *   .ec for IBM Informix ESQL/C

    *   .eco for IBM Informix ESQL/COBOL

    *   .ef for IBM Informix ESQL/FORTRAN


-33016	Macro definition for macro-name is incomplete.

This preprocessor macro definition statement does not have the ESQL
statement terminator. Add a semicolon(;) to the end of the statement.


-33017	Incomplete statement.

The preprocessor cannot recognize the end of the current statement.
Check the syntax of this and preceding lines. Look for omitted ending
semicolons, omitted quote marks, or omitted end-of-comment symbols.


-33018	Indicator variables are not allowed in this clause.

This statement includes a specification of a host variable with an
indicator variable, but no indicator variable is allowed in this
context. Review each use of an indicator variable and remove the
unnecessary ones.


-33019	Label is too long.

This statement specifies a label that is longer than this embedded
language allows. Check the spelling and punctuation of the statement.
Refer to the embedded-language manual for proper formation of label
names.


-33020	Line is too long.

This line is too long either for the host language or to fit into the
internal buffers of the preprocessor. Refer to the embedded-language
manual and to the host-language manual for rules on continuing long
lines.


-33021	The value of macro macro-name is too long.

The specified value for the macro is too long to fit in the internal
buffer. Shorten the statement and try again.


-33022	Include path name too long.

The pathname in this INCLUDE statement is too long to fit in the
internal buffers. Check the punctuation of the statement; possibly an
end-quote has been omitted. If not, you will have to find a way to
specify the included file with a shorter pathname. Refer to the
embedded-language manual for the rules of the preprocessor on searching
for included files.


-33023	Quoted string too long for SQL.

The quoted string is too long to fit in the internal buffers. Check the
statement for a missing end quote.


-33024	Macro name expected.

The macro name of the macro statement is missing. Specify the name and
try again.


-33025	The name '<identifier>' is too long.

The specified SQL identifier is too long. The maximum length for identifiers
depends on the database server. In IBM Informix Dynamic Server 9.2 or later, the
maximum length is 128 characters. In other IBM Informix database servers, the
maximum length is 18 characters.

Check the punctuation of the statement and the spelling of identifier. If
the spelling and punctuation are as you intended, you need to change the
declaration to use a shorter identifier.


-33026	Blocks cannot be nested more than n levels.

The preprocessor limits the number of nested levels to the specified
value. Review the program structure preceding this point; the
punctuation or keywords that close a block might have been omitted or
might not have been recognized due to an earlier error. If all is as
you intended it, you will have to reorganize the code to use fewer
nested blocks.


-33027	Record nesting too deep. Maximum is n.

The preprocessor limits the number of levels to which records (data
structures) can be nested. Work backward from this point and review
the declaration of records. Possibly the punctuation or keywords that
close a record have been omitted or have gone unrecognized due to an
earlier error. If all is as you intended it, you will have to simplify
the data structure.


-33028	Invalid compiler-name compiler type compiler-type-name.

The compiler type must be specified as a command-line option to this
preprocessor. Refer to the embedded-language manual.


-33029	No input file given.

No input file is named on the command line.


-33030	Cannot have a insert statement on a SCROLL cursor.

This DECLARE statement specifies the SCROLL keyword, but it goes on to
specify an INSERT statement. Insert cursors cannot use the SCROLL
keyword.


-33031	Statement label is not allowed in this statement.

This message is a warning only. You used a label on a statement that
does not generate any real code in the output file. Refer to the
embedded-language manual for the correct use of labels.


-33032	WITH NO LOG can only be specified for TEMP tables.

You used the WITH NO LOG option in the wrong context. Use it only when
you create a TEMP table and you wish to exclude transaction log
operations on it. See the IBM Informix Guide to SQL: Syntax for the SQL
syntax and proper usage of the WITH NO LOG option.


-33033	The field field-name is an Informix extension to XPG3 X/Open standard.

This message is a warning only. You used the -xopen option, asking that
the source file be checked for compliance with the XPG3 X/Open
standard. The ITYPE, IDATA and ILENGTH field names are Informix
extensions to the standard.


-33034	POWER cursors not available.

POWER cursors are not supported. Refer to your embedded-language
manual.


-33035	A qualifier has not been specified.

You attempted to use a DATETIME qualifier, but you did not specify a
specific range of acceptable values for that qualifier. Define the
ranges that you will use to qualify the DATETIME qualifier. The
DATETIME qualifier must have a beginning and ending range (for
instance, year to month, day to hour, and so on).


-33036	This line does not conform to ANSI X3.135-1989.

This message is a warning only. You used the -ansi option, asking that
the source file be checked for compliance with the current ANSI
standard. This statement uses an Informix extension to the ANSI
standard.


-33037	Name is not a component of record record-name.

Name is used as if it were a member of the record record-name, but no
member of that name exists. Check the spelling of the two names, and
review the declaration of record-name.


-33038	This statement does not conform to the X/Open standard.

This message is a warning only. You used the -xopen option, asking that
the source file be checked for compliance with the XPG4 X/Open
standard.


-33039	Updates are not allowed in singleton select.

You have an UPDATE statement in combination with a SELECT statement
that returns only one row. The UPDATE statement requires a cursor that
has been declared FOR UPDATE. See the DECLARE, SELECT, and UPDATE
statements in the IBM Informix Guide to SQL: Syntax for more information
about cursors.


-33040	Object hostvar was not declared.

The host variable hostvar is either not declared, or it is misspelled.
If hostvar is not declared as a host variable, declare it. Otherwise,
correct the misspelling.


-33041	Cannot open output file outfile.

The preprocessor cannot open outfile because not enough disk space is
available, or you do not have file-system permission to open the file.
If insufficient disk space is available, delete files or select another
disk to make space available in the file system. If you do not have
file-system permission to open outfile, specify another directory or
login with the required permission.


-33042	Cannot open input file inputfile.

The embedded-language preprocessor cannot locate the file that you are
trying to include in your program with the -I option. Check that the
file is in the location that you have specified and that you have
specified the location correctly. Also check that you have permission
to open inputfile; if you do not, specify another directory or login
with the required permission.


-33043	Out of memory.

The preprocessor was unable to allocate more memory. If possible,
reduce the number of processes that are running at the same time as the
preprocessor, or reduce the size of the program. Check that adequate
swap-disk space exists. On DOS systems, you will need to free some
disk space.


-33044	Precision must be greater than 0 and less than the specified number
of digits.

You specified the precision and/or the scale for a DECIMAL value
incorrectly. See the IBM Informix Guide to SQL: Reference and
the appropriate IBM Informix ESQL manual for proper usage.


-33045	Overriding the previous definition of macro macro-name.

This message is a warning only. You have defined the macro macro-name
more than once. The preprocessor uses the latest occurrence of
macro-name.


-33046	Indicator cannot be used with records.

This message is a warning only. You cannot specify an Indicator
variable for input to a host record or data structure. The indicator is
ignored. An indicator variable must be associated with a single data
item. If you need to use an indicator with a particular member of this
record, you must list all the record members.


-33047	Record record-name is not allowed in this clause.

In this statement, you use the specified record where only a simple
variable is allowed. Check the spelling of names and rewrite the
statement using a simple variable. See the embedded-language manual and
the IBM Informix Guide to SQL: Syntax.


-33049	Field type field-name has been used out of context.

The specified field-name is used incorrectly in the GET/SET DESCRIPTOR
statement. See the GET DESCRIPTOR and SET DESCRIPTOR statements in the
IBM Informix Guide to SQL: Syntax for the correct syntax.


-33050	The type or subtype type-name has already been used.

The statement redefines a user-defined type or subtype that has already
been defined. This action is not allowed. Review the declarations, and
use a unique name for this type.


-33051	Syntax error on identifier or symbol symbol-name.

An error in syntax was found at or near symbol-name. Check the IBM Informix
Guide to SQL: Syntax for the proper use of identifiers and the
appropriate embedded-language manual for the proper use of other
symbols.


-33052	Unmatched ELSE.

A matching IFDEF or IFNDEF statement does not precede this ELSE
statement. Review the source lines that precede this point; the
preceding statement was omitted or might not have been recognized due
to an earlier error.


-33053	Unmatched ENDIF.

An IFDEF or IFNDEF statement does not precede this ENDIF statement.
Review the source lines that precede this point; the preceding
statement was omitted or might not have been recognized due to an
earlier error.


-33054	Updates are not allowed on a scroll cursor.

This UPDATE statement refers to a cursor that was declared with the
SCROLL keyword. The UPDATE statement requires a cursor that has been
declared FOR UPDATE to ensure that the proper level of locking is
applied to the rows that will be updated. See the DECLARE statement in
the IBM Informix Guide to SQL: Syntax for more information on the correct
use of cursors.


-33055	The name id-name has already been used.

The SQL identifier id-name has already been declared. Check the
spelling of names and the declarations in the current name scope.


-33056	Error errno during output.

The error errno occurred during output. Check that sufficient disk
space is available for the output file and that you have the necessary
file-system permissions for the file location. Look up errno in the
host operating-system manual (or see the list that begins on page 3)
for the specific cause of the problem and the appropriate corrective
action.


-33057	Cannot open error log file errorfile.

You specified the log preprocessor option to have error and warning
messages sent to errorfile rather than to standard output. However, the
preprocessor cannot open errorfile because not enough disk space is
available, or you do not have file-system permission to open the file.
If insufficient disk space is available, delete files to make space
available in the file system, or select another disk. If you do not
have file-system permission to open errorfile, specify another
directory or login with the required permission.


-33058	Option-name is not a valid default option for the column definition.

See the IBM Informix Guide to SQL: Syntax for the valid DEFAULT clause
options in a column definition.


-33060	Invalid expression.

The specified expression is incorrect. Refer to the IBM Informix Guide to
SQL: Syntax for the correct syntax and usage for this expression.


-33061	Unable to expand recursive macro macro-name.

The preprocessor cannot fully expand the macro-name macro because a
loop exists in the defined macros. Correct the macro and try again.


-33062	Missing ENDIF.

An IFDEF or IFNDEF statement has no matching ENDIF statement prior to
the end of the source file. Work upward from the end of the file, and
check that each IFDEF and IFNDEF statement is paired with a matching
ENDIF. Possibly the ENDIF was not recognized due to another error.


-33063	Already within BEGIN DECLARE SECTION.

This message is a warning only. An EXEC SQL BEGIN DECLARE SECTION
statement is inside another BEGIN/END DECLARE block. This statement is
ignored. However, the warning might indicate a mix-up in the structure
of your program. Check that all the declaration sections are properly
delimited.


-33064	variable-name has appeared before with a different case.
        ESQL/language-name is case-insensitive.

This message is a warning only. The specified variable appears more
than once with different combinations of uppercase and lowercase
letters. Because this product is not case sensitive, all these names
are treated as one. If you intended these names to indicate different
variables, change the name (not merely the case) of one of the variable
declarations and recompile.


-33065	Cursor/statement id '<name>' is too long when prefixed by
module name.

This message is only a warning. When you use the -local preprocessing option,
cursor names and statement names are prefixed with a unique tag generated
from the module name. (On UNIX, the inode number of the source program is
used as the unique tag.) The combined length of the cursor or statement name
and the unique tag should not exceed the maximum length for identifiers,
which depends on the database server. In IBM Informix Dynamic Server 9.2 or later,
the maximum length is 128 characters. In other IBM Informix database servers,
the maximum length is 18 characters.

In the case of <name>, the combined length of the name and unique tag exceeds
the maximum length for identifiers. As a result, if the same name is used in
a different source module, the two names might not be distinct, as the -local
option requests.


-33066	Cursor/statement ids <id-1> and <id-2> are not unique in first
	128 characters when prefixed by module name.

When you use the -local preprocessing option, cursor and statement names are
prefixed with a unique tag that is generated from the module name. (On UNIX,
the inode number of the source program is used as the unique tag.) In this
case, <id-1> and <id-2> are at least 124 characters long, and their first 123
characters do not differ. As a result, they are the same when the tag is
added and the result is trimmed to 128 characters.

Change the two names to avoid name collision and try again.

This message applies to IBM Informix Dynamic Server 9.2 or later.


-33066	Cursor/statement ids <id-1> and <id-2> are not unique in first 18
characters when prefixed by module name.

When you use the -local preprocessing option, cursor and statement names are
prefixed with a unique tag that is generated from the module name. (On UNIX,
the inode number of the source program is used as the unique tag.) In this
case, <id-1> and <id-2> are at least 14 characters long, and their first 13
characters do not differ. As a result, they are the same when the tag is
added and the result is trimmed to 18 characters.

Change the two names to avoid name collision and try again.

This message applies to IBM Informix Extended Parallel Server, IBM Informix Dynamic
Server with Advanced Decision Support and Extended Parallel Options,
IBM Informix OnLine XPS, IBM Informix Dynamic Server, IBM Informix Universal Server,
IBM Informix OnLine Dynamic Server, and IBM Informix SE.


-33067	ELIF without IFDEF.

An IFDEF or IFNDEF statement does not precede this ELIF statement.
Review the source lines that precede this point. The preceding
statement was omitted, or it might not have been recognized due to an
earlier error.


-33068	ELIF after ELSE.

The ESQL preprocessor ELSE statement indicates the last part of an
IFDEF or IFNDEF statement; another ELIF part might not follow. Review
the contents of this IFDEF or IFNDEF statement and put its parts in
order.


-33070	Stack overflow occurred during statement parse.

This message, which indicates that the parser stack has overflowed,
rarely occurs. It might occur, for example, if your embedded-language
statement (SELECT, INSERT, UPDATE, DELETE, and so on) contains an
extremely large or complicated clause (WHERE, MATCHES, LIKE, and so on)
that the parser is trying to process. In that case, break up the
clause and try again.


-33071	The statement id statement_ID has already been used.

This warning message indicates that you have used two PREPARE statement
identifiers with the same name. For example:

exec sql prepare stmt_id from "select * from tab";

exec sql prepare stmt_id from "insert into tab values(1)";


-33074	Explicit cast, either with CAST keyword or (::) operator, is not
allowed in client collections.

You cannot use explicit casts in client collections. For example, the
following example is not allowed:

   $client collection list(row( a udt_1, b list(int))) mylist;
   $insert into table (:mylist) values (CAST(1 AS udt_1), list{1,2,3});
   $insert into table (:mylist) values (1::udt_1, list{1,2,3});

When you enter esql -e client.ec, you get the following errors:

esqlc: "client.ec", line 2: Error -33074: Cannot use CAST in client
collections.

esqlc: "client.ec", line 3: Error -33074: Cannot use CAST in client
collections.


-33075	Cannot use user-defined routines in client collection/row constructors.

The user has tried to call a user-defined routine function in a ROW or
COLLECTION constructor for a client collection or row host variable.
Check the syntax of the statement and change the statement so that it
does not call a user-defined routine. User-defined routines can be
executed only on the server.


-33083	Cannot open file file_name because of too many open files.

The preprocessor cannot open the file because too many files
are open. Check your system resources to see if you can increase the number
of file handles (descriptors). Close unnecessary open files. Also check for
mistakes that might cause recursive file inclusion.


-33084	The lvarchar host variable('<variable-name>') should be an array
or a pointer.

This message is only a warning; compilation continues. ESQL/C does not know
the size of the lvarchar host variable. Although syntactically correct,
this might cause a problem in your application.

Specify the variable as an array or a pointer.


-33085	The username or the password was not provided in a TRUSTED connection.
Both are required.

Any CONNECT statement that includes the TRUSTED keyword must also include 
the USER Authentication clause. To establish a trusted connection, this clause 
must include a valid username and a valid password for that username, 
as in this example:  

EXEC SQL CONNECT TO "testdb1" AS "s1" USER 'zelaine' USING :var_zpass 
   WITH CONCURRENT TRANSACTION TRUSTED;

The USER Authentication Clause requires these syntax elements:

    *   A quoted string (or a host variable) specifying a valid authorization 
        identifier must immediately follow the USER keyword. 

    *   A host variable that evaluates to the password for that authorization 
        identifier must immediately follow the USING keyword.

CONNECT statements that do not include the USER Authentication clause cannot 
include the TRUSTED keyword.


-33200	Invalid statement on symbol variable-name.

The specified type was not defined or a $ character was misplaced in a
statement. Check for misspellings, misplaced $ characters, or undefined
types.


-33201	Fixed character pointers are not allowed.

Fixchar character pointers are not allowed in this context. Replace the
fixchar pointer with a character pointer.


-33202	Incorrect dimension on array variable variable-name.

You referenced the array variable with an incorrect dimension. Correct
the dimension and retry.


-33203	Incorrect levels of indirection on variable variable-name.

A pointer variable is used with the wrong number of level indirection.
Check the indirection levels in this statement.


-33204	Right curly brace found with no matching left curly brace.

The code either includes a stray closing brace (}) or is missing an
opening brace ({). Check the code for unmatched curly braces or other
incorrect punctuation such as a missing end-quote or end-comment.


-33205	PARAMETER cannot be used inside of a C block.

The PARAMETER statement is allowed only in a function declaration
block, not within a namely block that is nested in a function.


-33206	Qualifiers for variable-name not initialized.

This message is a warning only. Due to the complexity of the specified
DATETIME or INTERVAL variable, the qualifiers of its elements cannot be
initialized properly. Compilation continues, but the variable might not
be initialized.


-33207	Type typedef-name too complex for ESQL/C.

The definition of the typedef variable is too complex. ESQL/C does not
support the use of multidimensional arrays or unions in a typdef.
Simplify the typedef.


-33208	Runtime error is possible because size of host-variable-name is unknown.

This message is a warning only; compilation continues. ESQL/C does not
know the size of the host character variable. If the variable is used
in an INTO clause, memory might be overwritten. Specify the variable as
a character array with a numeric size. The numeric size can be a
literal value or an ESQL/C macro value.


-33209	Statement must terminate with ';'.

This message is a warning. This statement does not have the necessary
semicolon. Even though the preprocessor can proceed without any
problems, you should add a semicolon to the statement. Then you can
avoid future problems if code is added to this program.


-33500	filename: Bad environment variable on line number.

The entry on the specified line in the specified environment
configuration file is incorrect. Modify your entry in the file (the
environment variable name and/or setting) and try again.


-33501	Mapping file for DBAPICODE is not found.

The SQL API cannot find the character-mapping file for the specified
DBAPICODE environment variable setting and the standard code set. Check
that the mapped code set exists in the message directory for your
platform. In NLS-ready systems, the standard code set is defined in
the LANG environment variable. In systems that are not NLS ready, the
standard code set is the default 8-bit character set.


-33502	Mapping file does not have the correct format.

The mapping file for the specified DBAPICODE environment variable is
formatted incorrectly. The text file for the character mapping table
can consist of any number of lines. A line can be a comment, or a
one-to-one character map of a DBAPICODE character code to the
equivalent character in the target code set. The text file should be
written in U.S. ASCII or the code set that has the equivalent
representation of U.S. ASCII for the significant characters (#,
parentheses, numeric characters).


-33988	External Space creation failed.

The server could not add the external space. Check the error returned with
this failure.


-33990	External Space drop fails. 

An attempt to drop the external space failed. Check the error associated with
this failure.


-34380	Input stream contains an illegal multi-byte character.

The ESQL/C source has illegal multibyte characters. Review the source
file.


-34381	Input stream ends in the middle of a valid character.

The ESQL/C source file ends in the middle of a valid multibyte
character. The source file might be truncated. Review the source file.


-34382	A system error occurred while reading the input stream.

A system error num occurred while the ESQL/C preprocessor read the
ESQL/C source file. Look for operating-system messages to determine the
cause of the problem.


-34383	An unknown error num occurred while reading the input stream.

An unknown error num occurred while the ESQL/C preprocessor read the
ESQL/C source file. Check that the source file is a valid ESQL/C source
file.


-34388	Invalid character has been found. Cannot continue the processing.

An internal function, while parsing the elements in an SPL routine,
has encountered an illegal character during multibyte processing. The
following options are passed:

    *   database@dbserver;owner.procname

    *   database;owner.procname

    *   database;procname

    *   database@dbserver;procname

    *   owner.procname

    *   procname

Review these options for possible illegal characters.


-34389	Illegal character has been found in the input string.

The SQL script has illegal characters. Review the script file.


-34390	Invalid delimiter; Don't use '\\', SPACE, HEX or Multibyte chars.

The delimiter specified for the FILE statement is illegal. You cannot
use a new- line character, backslash, space, tab, hexadecimal digit (0
to 9, A to F, a to f), or multibyte character as a delimiter. Check the
statement and change the delimiter symbol.


-34393	GLS codeset conversion initialization failed.

The code-set conversion initialization failed during the session
initialization. Not enough memory is available for the code-set
conversion table.


-34394	Session Initialization failed on bad locale name: locale-name

The session initialization failed. An invalid locale name has been
supplied for the locale initialization in the session initialization.
The environment variable to specify the locale name has an incorrect
value. Check the value of the corresponding environment variable,
CLIENT_LOCALE or DB_LOCALE.


-34395	Illegal multibyte character. Line# num

An illegal multibyte character has been detected on the line of the
loadable menu source file. Review the source file.


-34396	Illegal wide character. Line# num

This internal error indicates that the conversion of internal
wide-character formats to multibyte characters failed. Check the
program logic.


-35580	General Table Manager: No table allocated.

The table has not been created or was deleted.


-35583	General Table Manager: Duplicate keys not allowed.

Table entries with the same key are not allowed.


-35584	General Table Manager: Table is full.

Table is full and cannot be extended.


-35585	General Table Manager: Entry is locked.

Entry of a table is already locked.


-35586	General Table Manager: Table is locked.

Table is already locked.


-35587	General Table Manager: No entry.

The required entry does not exist.


-38000	Unknown throwable: (java.security.AccessControlException: access
denied (java.security.SecurityPermission getPolicy)).

This error might occur if there is no informix.policy file in
$INFORMIXDIR/extend/krakatoa.

If you do not have particular security concerns, you can copy the
file informix.policy.std to informix.policy.


-38514	Set transport buffers size and count FAILED.

The transport buffer size has changed since the last backup.
Return code 120 displays.

Set the transport buffer size in the ONCONFIG file back to its value at
the time of the backup and try the restore again. You might have to refer
to file-system backups of the ONCONFIG file to get the previous value.


-38515	Free transport buffer FAILED.

An error occurred when the database server tried to free the transport
buffers.

Note all circumstances, save a copy of the ON-Bar activity log and
database server message log, and contact IBM Technical Support.


-38516	Client process not registered.

The onbar-worker process is not registered with the Informix database
server.

Recommended corrective actions follow:

   1. Use the onstat -g bus command to make sure that the onbar-worker
      process is running. Start a new onbar-worker process, if needed.

   2. If an onbar-worker process is running, try ending it with the
      following command and starting a new onbar-worker process:

         kill -2 <worker_process_id>

If this problem persists, contact IBM Technical Support.


-38573	Error: pointer is NULL (<file> <line>).

Internal error. A pointer variable unexpectedly is NULL.

Contact IBM Support for assistance.


-38574	Creating pipes failed. errno = <error number>.

Cannot create output pipes. The 'errno' is the number of the operating system 
error returned.

Refer to your operating system documentation.


-38575	Creating a process failed. errno = <error number>.

The system call to create or fork a process failed. The 'errno' is the
number of the operating system error returned.

Refer to your operating system documentation.


-38576	Closing the unused end of a pipe failed.

The system call to close the unused end of the filter pipe failed.

This error is internal. Retry the operation and if it
continues to fail, contact IBM Support.


-38577	Duplicating the file descriptors failed. errno=<error number>.

The system call to duplicate file descriptors failed. The 'errno' is the
number of the operating system error returned.

Refer to your operating system documentation.


-38578	Executing the backup and restore filter <filter program> failed. errno = <error number>.

The system call to execute the backup and restore filter program failed.
The 'errno' is the number of the operating system error returned.

Refer to your operating system documentation.

-38579	Writing to the backup and restore filter failed. errno = <error number>.

The system call to write to the backup and restore filter pipe failed. The 'errno' is the
number of the operating system error returned.

Refer to your operating system documentation.


-38580	Reading from the backup and restore filter failed. errno = <error number>.

The system call to read from the backup and restore filter pipe failed. The 'errno' is the
number of the operating system error returned.

Refer to your operating system documentation.


-38581	The peek system call on input from the backup and restore filter failed. errno = <error number>.

The peek system call on input from the backup and restore filter pipe failed.
The 'errno' is the number of the operating system error returned.

Refer to your operating system documentation.


-38584	Thread creation for reading from the backup and restore filter failed.

Creating a thread that reads input from the backup and restore filter program has failed.

Refer to your operating system documentation.


-38585	Create event failed.

Creating an event failed.

Refer to your operating system documentation.


-41000	Error in reading the [INET_CONNECTION] section of the INFORMIX.INI file.

Check the [INET_CONNECTION] section of the INFORMIX.INI file to make
sure this section has the following section heading:

[INET_CONNECTION]


-41001	The INFORMIX.INI file does not have a hostname or has a format error.

Check the INFORMIX.INI file. If you did not define a host name variable
in the InetLogin structure, the [INET_CONNECTION] section must have a
host name. The host name must be defined in the [INET_CONNECTION]
section with the following format:

host=hostname


-41002	The INFORMIX.INI file does not have a username or has a format error.

Check the INFORMIX.INI file. If you did not define a user name variable
in the InetLogin structure, the [INET_CONNECTION] section must have a
user name. You must define the user name in the [INET_CONNECTION]
section with the following format:

user=username


-41004	The INFORMIX.INI file does not have a protocolname or has a format
error.

Check the INFORMIX.INI file. If you did not define a protocol name
variable in the InetLogin structure, the [INET_CONNECTION] section must
have a protocol name. You must define the protocol name in the
[INET_CONNECTION] section with the following format:

protocol=protocolname


-41005	Error in reading the [INET_PROTOCOL] section of the INFORMIX.INI file.

Check the [INET_PROTOCOL] section of the INFORMIX.INI file to make sure
this section has the following section heading:

[INET_PROTOCOL]


-41006	Protocolname is not in the [INET_PROTOCOL] section of the INFORMIX.INI
file.

Check the INFORMIX.INI file. The protocol name that is specified in the
[INET_CONNECTION] section should match the protocol name that is
specified in the [INET_PROTOCOL] section. The protocol name must define
the correct .DLL module for that protocol. If you are using an IPX/SPX
protocol, then ipx=INETIPX.DLL. If you are using a Windows Sockets
1.1-compliant TCP/IP protocol, then tcpip=INETWSOK.DLL.


-41007	Error in loading IBM Informix NET for Windows library.

Check your path. If you are using a Windows Sockets 1.1-compliant
TCP/IP protocol, the INETWSOK.DLL module must be in your path. If you
are using the IPX/SPX protocol, the INETIPX.DLL module must be in your
path. These modules must be in your path. In addition, you might not
have enough memory to load the correct DLL module.


-41008	Number of protocols exceeds the number of protocols that are supported
in this version.

You must use only one protocol at a time to communicate with your
remote database server.


-41009	Error in closing connection.

An error occurred when the connection was closed. No corrective action
is provided.


-41020	Connection error.

Too many applications are active under Windows. Close some of your
applications and try again.


-41021	Connection Busy.

You are currently making a database server request. You cannot make
another argument until the current request is finished.


-42306	Could not set lock mode to wait.

The utility that you were running could not access the contents of a
table because it could not wait for a table lock. Wait a while and
retry running dbschema or dbexport.


-43000	ON-Bar backup usage.

The backup command was entered incorrectly. For details, see the Backup
and Restore Guide.

Revise the command and try again.


-43001	ON-Bar restore usage.

The restore command was entered incorrectly. For details, see the Backup
and Restore Guide.

Revise the command and try again.


-43002	ON-Bar session usage.

The session command was entered incorrectly. For details, see the Backup
and Restore Guide.

Revise the command and try again.


-43003	onbar_w usage.

The onbar_w command was entered incorrectly. For details, see the Backup
and Restore Guide.

Revise the command and try again.


-43004	The connection-address is determined by the XCC package.

A command was entered incorrectly. This message might indicate an
error in ON-Bar, as this process should be started only by an onbar
command-line process and rarely by hand.

To start onbar_m by hand, use the ON-Bar activity log of the
command-line process (BAR_ACT_LOG or /tmp/bar_act.log) to determine
the correct value and try again. If this message was issued
automatically, contact IBM Technical Support.


-43005	The syntax <syntax-1> will not be supported in future
releases - use <syntax-2>.

The command-line syntax for ON-Bar backup has changed. The current action
will complete as requested.

In the future, use the new ON-Bar syntax. To use this new syntax, you might
have to change scripts you have written.


-43006	onsmsync usage.

The onsmsync command was entered incorrectly. For details, see
the Backup and Restore Guide.

Revise the command and try again.


-43010	Bad option usage: -f option requires a filename.

The user entered the -f option and did not specify a filename. ON-Bar does
not know which storage spaces to use in this command, so it cannot continue.

Specify the name of a file that contains the list of storage spaces ON-Bar
should act upon, after the -f option, and rerun the command.


-43011	The -f command is ignored for whole system backup/restore and
fake backup.

The user entered the command options -w -f <filename> or -F -f <filename>.
Because whole-system backup, whole-system restore, and fake backup affect all
spaces, the backup and restore will continue and the -f <filename> option
will be ignored.


-43012	Setting backup level to 0 for this command.

Only level-0 backup is supported for a fake backup or external backup.
For IBM Informix Dynamic Server 9.2 or later, this message also applies to backup
verification. The backup level is reset to 0.

No action is required.


-43013	Unable to read backup level, defaulting to level <level-number>.

The backup level entered on the command line is not valid. A level-0 backup
is automatically performed instead.


-43014	Unable to read logical log ID.

The logical log ID entered on the command line is not valid.

Verify that the logical log ID is correct and retry the command.


-43015	Restore cannot be restarted. No unfinished restartable restore
found.

The restore cannot be restarted because no restore file exists in the
$INFORMIXDIR/etc or %INFORMIXDIR%\etc directory. This means that no previous
restore exists or that the restore succeeded.

Use 'onbar -r' for a first-time restore.


-43016	Invalid Point In Time value specified: <value>.

Contact IBM Technical Support.


-43017	A Point in Log restore is permitted only during a Full restore.

You cannot do a point-in-log restore when the database server is online.

Do a cold restore.


-43018	A point-in-time restore is permitted only during a full restore.

You cannot do a point-in-time restore unless all spaces are restored.

Do not specify any spaces on the command line.


-43019	Invalid serial number. Consult your installation
instructions.

An error occurred during the installation of ON-Bar.

Ask your database server administrator to reinstall ON-Bar.


-43020	Storage space names ignored for fake backup, whole system
backup/restore, log restore, or log salvage.

A fake backup or whole-system restore backs up and restores all storage
spaces. Storage spaces are not included in the log restore or log salvage.


-43021	Expiration specification <spec> is invalid for the <option-name>
option.

The value given to the named command-line option is inappropriate for
that option. Either the format is incorrect or the option is missing.

Compare the value of the option to the usage statement, revise the command,
and try again.


-43022	Cannot expire all versions of all objects. Must give -g option
a value > 0.

The onsmsync command will not remove all backup objects, which is the meaning
of -g 0.

Try onsmsync again with a positive integer argument to -g.


-43023	Bad option usage: -n option requires a log number.

The user entered the -n option and did not specify a log number. ON-Bar does
not know which log to restore to in this command, so it cannot continue.

Specify the log number, after the -n option, and rerun the command.


-43024	Chunk rename failed.

An error occurred while mapping old chunk location to new chunk location.

Check the rename options of your command line and the mapping, then retry.
If the error persists, refer to the database server message log for more
information. If the cause of the error is still unclear, contact
IBM Technical Support.


-43025	Chunk rename failed.

An error occurred while mapping old chunk location to new chunk location.

Refer to the database server message log for more information.
Check the rename options of your command line and retry the command.
If the error persists and the cause of the error is still unclear,
contact IBM Technical Support.


-43035	You must be user root or informix to run ON-Bar.

Only users root and informix or members of the bargroup group are
allowed to execute ON-Bar.

Log in as user root or informix, or have your system administrator
add your login name to the bargroup group before you attempt the backup
or restore.


-43036	You must be a member of informix-admin group to run ON-Bar.

Only users listed in the informix-admin group are allowed to execute ON-Bar.

Ask your Database System Administrator to add your username to the
informix-admin Group.


-43037	You must be user informix to run ON-Bar.

Only users informix are allowed to execute ON-Bar.

Log in as user informix before attempting the backup or restore.


-43038	The ON-Bar log file cannot be a symbolic link.

The ON-Bar log file that ON-Bar is attempting to open is a
symbolic link.  For security reasons, this is not permissible.

Remove the symbolic link or change the onconfig file so that the
ON-Bar parameters BAR_DEBUG_LOG and/or BAR_ACT_LOG in your ONCONFIG file
point to non-symbolic linked files.


-43039	The ON-Bar log file must be owned by user informix.

The log file that ON-Bar is attempting to open is owned by a user
other than user informix.

Change the ownership of the log file to user informix, or change
the BAR_ACT_LOG and/or BAR_DEBUG_LOG values in the ONCONFIG
file to point to different log files.


-43040	Supplied point in time later than latest log - using latest
logfile <unique ID>.

The point in time specified on the command line is later than the last
logged transaction. The time of the latest logged transaction will be used
instead.


-43041	There were partial logfiles - timestamp 0x<timestamp1> pit
0x<pittime2>.

This is an ON-Bar progress message.


-43042	All logfiles complete - timestamp 0x<timestamp1> pit 0x<pittime2>.

This is an ON-Bar progress message.


-43043	All logfiles complete - timestamp 0x<timestamp1> rolling forward.

This is an ON-Bar progress message.


-43044	Consistent global timestamp not found - recovery is not
possible.

ON-Bar was unable to find the correct log to restore in the emergency
boot file.

Verify that all log files have been either backed up or salvaged and
that each has an entry in the emergency boot file. If everything appears
to be correct, contact IBM Technical Support.


-43045	There are no storage space backups before the specified
point in time - recovery is not possible.

The specified point-in-time value is earlier than the earliest backup
entry in the emergency boot file.

Verify that the point-in-time value entered on the command line is
correct. If it is, the emergency boot file might have been corrupted
or is missing and needs to be restored.


-43046	boot_find_first_logs failed <value-1>.

ON-Bar failed to find the correct log files to restore in the
emergency boot file. This could happen if your system has run out of
memory or if the emergency boot file is missing or corrupted.

Verify that there is sufficient memory in your system to complete a
restore. If there is, the emergency boot file might need to be restored.


-43047	Send bootfile....

This is an ON-Bar progress message.


-43048	Error received from node <node-id> "<error-text>".

On-Bar attempted to communicate with <node-id> and failed.

Verify that all coservers on all nodes are running properly. Try the
restore again. If it still fails, contact IBM Technical Support.


-43049	Error writing to the ON-Bar emergency boot file. Before
attempting a restore, insert the following into <filename>:
<text>.

An error occurred when ON-Bar attempted to write information to the
ON-Bar emergency boot file. The backup of this object succeeded;
however, the object will not be included in a cold restore unless the
specified information is added to the emergency boot file.

To include the object in a cold restore, ask your database server
administrator to insert the specified data into the ON-Bar emergency
boot file or try running onsmsync -b. (The emergency boot file is
$INFORMIXDIR/etc/Bixbar_<hostname>.<dbservernum> for IBM Informix Extended
Parallel Server, $INFORMIXDIR/etc/ixbar.<dbservernum> for IBM Informix
Dynamic Server 9.2 or later on UNIX, or %INFORMIXDIR%\etc\ixbar.<dbservernum>
for Dynamic Server 9.2 or later on Windows.) 


-43050	Copy of old emergency bootfile saved in <filename>.

Before regenerating the emergency boot file, onsmsync makes a copy of the
previous version. In case of catastrophic failure, this message tells you
the name of this copy so you can put it back in place before running
onsmsync again or starting a cold restore.

You cannot take any corrective action unless onsmsync fails. If onsmsync
fails to finish writing the new boot file, copy the named file back to the
original location.


-43051	Copy of old emergency bootfile failed.

Before regenerating the emergency boot file, onsmsync makes a copy of the
previous version. If this copying process fails, then this message is
produced. An operating-system error should be written in the activity log.

Try to correct the operating-system error. ON-Bar will continue to regenerate
the new emergency boot file.


-43052	Error parsing the emergency bootfile <filename>.

ON-Bar and onsmsync read information about backups from the emergency
boot file for various reasons. The emergency boot file might be corrupt.

ON-Bar and onsmsync will ignore corrupted backup entries while parsing
the emergency boot file. Contact IBM Technical Support.


-43060	The buffer <buffer-name> exceeded maximum allowed limit. Changing
buffer size to <size-value>.

Transport buffer size is limited by the X/Open Backup Services API
specification. ON-Bar is changing the buffer size to the maximum allowed
value.


-43061	BAR_MAX_BACKUP has been reduced to <size-value> to avoid
allocating more than SHMTOTAL KB.

The value of BAR_MAX_BACKUP multiplied by BAR_XFER_BUF_SIZE and
BAR_NB_XPORT_COUNT will exceed the amount of shared memory reserved by the
SHMTOTAL parameter in the ONCONFIG file. This ON-Bar process will use a
lower BAR_MAX_BACKUP value to avoid exceeding this boundary.

Either raise the amount of shared memory the database server is allowed to
use by increasing SHMTOTAL or lower the value of BAR_MAX_BACKUP,
BAR_XFER_BUF_SIZE, or BAR_NB_XPORT_COUNT.


-43062	Unable to read parameters from $INFORMIXDIR/etc/$ONCONFIG
(UNIX) or %INFORMIXDIR%\etc\%ONCONFIG% (Windows).

The ONCONFIG file is inaccessible. It might be missing or have incorrect
permission values, or the file contents might be corrupted.

Verify that an ONCONFIG file exists and that the permissions for it are
correct. For details, see the Administrator's Reference.


-43075	Unable to open file <filename>.

The file or its directory permissions prevent it from being created or opened.

Verify the permissions on the file and its directory.


-43076	Error <error-number> while reading data from the file
<filename>.

An error occurred while data was read from the file. The file might be
corrupted.


-43077	Unable to create <chunk-name>. There may not be enough space.

Not enough disk space is available for chunk creation.

Free some disk space or create a file for this chunk.


-43078	Open or close failed on file <filename>, errno = <error-number>.

An operating-system error prevents the file from being created or
opened.

Correct the error and retry your command.


-43079	Unable to open file <filename>.

The file or its directory permissions prevent it from being created
or opened.

Verify the permissions on the file and its directory.


-43080	Process <process-id> received signal <signal-number>.
Process will exit after cleanup.

An ON-Bar process received a signal. Someone might have intentionally
terminated the ON-Bar process with signal 2 (SIGINT), 3 (SIGQUIT), 9
(SIGKILL), or 15 (SIGTERM). ON-Bar is attempting to exit gracefully.

If the signal that terminated the ON-Bar process is not one of the
signals listed above, contact IBM Technical Support.


-43081	Closing unused end of pipe failed.

The system call to close the unused end of the backup and restore filter pipe failed.

This error is internal. Retry the operation and if it continues to fail,
contact IBM Support.


-43082	Writing to the backup and restore filter failed with error <error number>.

Writing data to the backup and restore filter pipe failed with the given error.

Check the log of the filter program for possible errors.
If the cause of the error is still unclear, contact 
technical support  for your filter or IBM Support.


-43090	Out of memory.

ON-Bar was unable to allocate more memory.

Reduce the number of processes that are running at the same time as ON-Bar,
if possible, or ask your system administrator either to increase your swap
space or to install more memory in your system.


-43091	Unable to attach to shared memory.

Unable to initialize a shared-memory connection to the database server.

Either the database shared memory has not been initialized or the maximum
number of users are already using the system.


-43092	Unable to set process group id.

If you are doing a parallel backup or restore, ON-Bar tries to use
setpgid() to group together all the processes. This error occurs if
setpgid() fails.

Retry the backup or restore. If it fails again, contact IBM Technical
Support.


-43100	No Storage Manager instances were defined in $ONCONFIG.

The list of available storage-manager instances has not been defined in the
ONCONFIG file. Backup and restore operations will be queued until a storage
manager is defined.

Define storage-manager instances in your ONCONFIG file.


-43101	Unable to create a session: <session-id>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43102	Unable to destroy a session: <session-id>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43103	Session <session-id> complete.

The specified backup and restore session has completed.


-43104	Session <session-id> complete with error <error-number>.

The specified backup and restore session has completed with an error.


-43105	Unable to register a new worker process: <process-id>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43106	Unable to deregister a new worker process: <process-id>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43107	Unable to get the next event: <event-id>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43108	Received an invalid event from the database server:
<event-id>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43109	Unable to create the logstream backup session: <session-id>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43110	Unable to start the logical log backup: <unique ID>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43111	Unable to get logical log backup data from the database
server: <server-name>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43112	Unable to close the logical log backup: <unique ID>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43113	Unable to commit the logical log backup: <unique ID>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43114	Unable to create the storage space backup session:
<session-id>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43115	Unable to start the storage space backup: <storage-space>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43116	Unable to get storage space backup data from the database
server: <server-name>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43117	Unable to close the storage space backup: <storage-space>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43118	Unable to commit the storage space backup: <storage-space>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43119	Unable to create the storage space restore session:
<session-id>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43120	Unable to start the storage space restore: <storage-space>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43121	Unable to write storage space restore data to the database
server: <server-name>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43122	Unable to close the storage space restore: <storage-space>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43123	Unable to commit the storage space restore: <storage-space>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43124	Unable to create the logical log restore session:
<session-id>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43125	Unable to start the logical log restore: <unique ID>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43126	Unable to write logical log restore data to the database
server: <server-name>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43127	Unable to close the logical log restore: <unique ID>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43128	Unable to commit the logical log restore: <unique ID>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43129	Unable to create the salvage logs session: <session-id>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43130	Unable to start logical log salvage: <unique ID>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43131	Unable to get logical log salvage data from disk: <unique ID>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43132	Unable to commit the logical log salvage: <unique ID>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, IBM contact Technical Support.


-43133	Unable to open logical log placement: <log-id>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43134	Unable to close logical log placement: <log-id>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43135	Error suspending session <session-id>: <error-number>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43136	Error resuming session <session-id>: <error-number>.

An error occurred in the database server.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43137	The log backup may have made at least 1 blobspace unrestorable.

A log was backed up when a blobspace was down. The transactions in the logs
(transactions that involve TEXT or BYTE data) might not be restorable.

You might have to re-create the TEXT or BYTE data after the restore is
complete.


-43138	Unable to allocate the transport buffer: <text>.

An error occurred when the database server tried to allocate the transport
buffers.

Note all circumstances, save a copy of the ON-Bar activity log and
database server message log, and contact IBM Technical Support.


-43139	Unable to free the transport buffer: <buffer-name>.

An error occurred when the database server tried to free the transport
buffers. This error might occur in onbar workers if the database server
is brought down. 

In all other cases, note the circumstances, save a copy of the ON-Bar
activity log and database server message log, and contact IBM Technical 
Support.


-43140	Due to the previous error, logical restore will not be
attempted.

An error occurred in the physical restore. ON-Bar does not attempt a
logical restore to give the user a chance to fix the problem. If the
physical restore was cold, the database server is left in fast recovery
mode.

You have the following two choices:

1) Fix the problem and finish the restore with onbar -r or 
   onbar -r <failed_space>. ON-Bar re-attempts to restore the failed
   storage space.

2) Finish the restore with onbar -r -l. ON-Bar performs a logical
   restore but leaves off-line any storage spaces that are not yet
   physically restored.


-43143	WARNING: Storage space is being dropped and cannot be backed up.

On-Bar found that the storage space is in the process of being dropped.

Verify that the storage space has been dropped or is in the process
of being dropped.


-43150	Must restore logical logs from <timestamp> or later.

The user wants to stop the restore at too early a logical log. A storage-space
backup occurred after the log that the user specified.

Retry the restore up to the specified logical log or later.


-43151	Cannot warm restore critical media: <space-id>. Skipped restore
of this space.

Critical media (root dbspace or any dbspace that contains a logical or
physical log) cannot be restored if the database server is online. This
space will be skipped.


-43152	Begin cold level <level-number> restore <value-2> (Storage
Manager copy ID: <value-3> <value-4>).

This is an ON-Bar progress message.


-43153	Completed cold level <level-number> restore <value-2>.

This is an ON-Bar progress message.


-43154	Begin fake backup.

This is an ON-Bar progress message.


-43155	Completed fake backup.

This is an ON-Bar progress message.


-43156	Fake backup failed. <error-number>

Contact IBM Technical Support.


-43157	Begin level <level-number> backup <value-2>.

This is an ON-Bar progress message.


-43158	Completed level <level-number> backup <value-2> (Storage Manager
copy ID: <value-3> <value-4>).

This is an ON-Bar progress message.


-43159	Begin salvage for log <unique ID>.

This is an ON-Bar progress message.


-43160	Completed salvage of logical log <unique ID> (Storage Manager copy ID:
<value-2> <value-3>).

This is an ON-Bar progress message.


-43161	<Number-of-spaces> off-line blobspaces (<space-ids>) were found
while salvaging logical logs.

The logical-log backup of changes to a blobspace requires the blobspace to
be online. Any blobspace that is off-line during a logical-log salvage
(which means the blobspace was off-line before the database server failed)
is no longer restorable using ON-Bar.

Re-create the blobspace and reload it as recommended in the Administrator's
Guide.


-43162	Begin warm level <level-number> restore <value-2> (Storage
Manager copy ID: <value-3> <value-4>).

This is an ON-Bar progress message.


-43163	Completed warm level <level-number> restore <value-2>.

This is an ON-Bar progress message.


-43164	Begin backup logical log <unique ID>.

This is an ON-Bar progress message.


-43165	Completed backup logical log <unique ID> (Storage Manager copy ID:
<value-2> <value-3>).

This is an ON-Bar progress message.


-43166	Begin restore logical log <unique ID> (Storage Manager copy ID:
<value-2> <value-3>).

This is an ON-Bar progress message.


-43167	Completed restore logical log <unique ID>.

This is an ON-Bar progress message.


-43168	ON-Bar suspended the logical restore on log <value-1>
(expected to restore to <value-2>).

ON-Bar was able to restore up through log file x.

To restore all data, however, you also need to restore log files x + 1
through y. Query your storage manager to find out if the backups of these
log files exist and if they are restorable. If the log files are not
restorable or you do not want to restore them, issue the following commands
to force the logical restore to end:

   onmode -k; oninit

Otherwise, issue onbar -r -l to resume the logical restore.


-43169	You must restore all critical storage spaces for a cold restore.

A cold restore was attempted that did not include the critical storage spaces.

Try the restore again, but include the root dbspaces and all other critical
dbspaces, if any.


-43170	ON-Bar could not find the proper log from which to begin the
logical restore.

Either no logical-log restore is needed or a logical-log backup is not
restorable.

If the database server is not in quiescent or online mode, contact
IBM Technical Support.


-43171	Cannot restart a warm logical restore.

ON-Bar cannot restart a logical restore with the database server in online
or quiescent mode.

Bring down the database server and restart the restore.


-43172	Completed external restore.

This message is an ON-Bar progress message.


-43173	External restore failed. 

An error occurred in the database server.

Refer to the ON-Bar activity log or database server message log for
more information. If the cause of the error is still unclear, contact
IBM Technical Support.


-43174	<percent-number> percent of <dbspace-name> has been backed up.

This message provides progress feedback for backup as a percentage of dbspace
size.


-43175	<percent-number> percent of <dbspace-name> has been restored.

This message provides progress feedback for restore as a percentage of
dbspace size.


-43176	<buffer-quantity> buffers of <value-2> have been restored.

This is an ON-Bar progress message that reports the number of buffers
restored.


-43177	Physical restore complete. Logical restore required before work
can continue. Use 'onbar -r -l' to do logical restore.

This restore was a physical-only restore, or the logical restore failed.

Perform a logical restore. 


-43178	The data returned from the Storage Manager for restore is
incomplete.

The amount of data in the buffer that the storage manager returned for
the restore is not a multiple of the database server page size
(2 kilobytes, 4 kilobytes, or 8 kilobytes, depending on your system
and configuration). A restore requires complete pages of data.

Check your storage manager for possible errors. Verify that all the
storage media are complete and usable and that all the storage devices
are functional and online.


-43179	Continuous logical log backup sessions cannot be destroyed. Use
onbar off "Log backup <coserver-id>".

An attempt to destroy a continuous logical-log backup session (Log backup
<coserver id>) was made. This action is not allowed.

If you need to stop a logical-log backup session for some reason, use
'onbar off "Log backup <coserver-id>"', in which <coserver-id> is the number
of the coserver (1, 2, 3, and so on), to temporarily suspend the session.
You can use 'onbar on "Log backup <coserver-id>"' to resume the session when
the problem is resolved. Do not use 'onbar -d "Log backup <coserver-id>"'
to destroy the session.


-43180	One of the spaces externally restored on coserver <coserver-id>
was backed up after <time-stamp>.

ON-Bar has determined the most recent time to which all coservers can be
restored and has reported the internal global time stamp in the error
message. One of the storage spaces that was externally restored on the
named coserver was backed up after that time. Hence a logical restore
cannot return all storage spaces to a consistent state.

Use the ctime() function to convert the global time stamp to a
clock time. Then check that all the external backups used in the
external restore of data on the named coserver were made before that
time. Any space that was restored from too recent a backup needs to be
re-restored from an older backup. Then try the ON-Bar external restore
command again.


-43181	Completed logical restore.

This message is an ON-Bar progress message.

No action is required.


-43182	Completed whole-system restore.

This message is an ON-Bar progress message.

No action is required.


-43183	Logical logs will not be backed up / salvaged because LTAPEDEV
value is <value>.

If the LTAPEDEV value in your ONCONFIG file is /dev/null on UNIX or 
NUL on Windows, logical-log backups are not performed. You set these
special values to tell the database server and ON-Bar not to perform
any logical-log backups. Data in the logical logs cannot be restored.

Set the LTAPEDEV value to something other than /dev/null on UNIX or NUL
on Windows or to blank if you want to perform logical-log backups.
If you do not want any logical-log backups, you can restore only from
whole-system backups, performed with the following command:

   onbar -b -w

Also, you must restore with the following command:

   onbar -r -w -p


-43184	The transport buffer size has changed since the backup.
Changing buffer size to <value> for restore.

A space or a logical log must be restored using the same transport buffer
size as was used when the space or log was backed up.  ON-Bar automatically
detects that the buffer size has changed and uses the buffer size from
the backup.


-43185	A change in physical configuration has occurred. A level-0
backup of <space_name> is being performed.

The physical configuration of the database server has changed. For
example, a storage space, chunk, or logical-log file has been added or
dropped, or the physical log has been moved. To guarantee a successful
restore, a level-0 backup of the affected space and the root dbspace
is being performed now.

No action is required.


-43186	The logical log is full on one or more coservers. ON-Bar's
attempt to back up these logs failed. A logical-log backup is needed.

The logical log is full on one or more coservers. Processing will be
blocked until these logical logs are backed up.

Perform a logical-log backup. Processing will continue after this
backup is complete.


-43187	ON-Bar received an error/signal. The onbar session will
abort after cleanup.

If any of the ON-Bar processes encounters a non-fatal error and if
BAR_RETRY is set to ABORT(0), the parent process will not create any new
child processes. If the parent process receives a signal, the process
ignores the BAR_RETRY value and then aborts. In both cases, the ON-Bar
child processes that are running will continue to completion.

Rerun the backup or restore command.


-43189	Logical Logs cannot be restored because LTAPEDEV value is
<value>.

If the LTAPEDEV parameter value in your ONCONFIG file is /dev/null (UNIX)
or NUL (NT) or blank, logical log restore cannot be performed.  These are
special values that you set to tell the server and ON-Bar that
log backups are not desired. Data in the logical log cannot be restored.

Set the LTAPEDEV parameter value to something other than /dev/null (UNIX)
or NUL (NT) or blank if logical log restores are desired.  If logical
log restores are not desired use the -w and -p options with ON-Bar
commands to perform whole system, physical-only restore.


-43190	WARNING: Storage space names with path will not be supported
from next release onwards. Correct this in <filename>.

Only space (dbspace, blobspace, and so forth) names should be specified to ON-Bar
in a file or command line. ON-Bar will backup all the chunks belonging
to the spaces.

Correct the file to specify storage space name without path prefixing.


-43194	WARNING: XBSA connect to storage manager failed.
Continuing external restore.

Either the storage manager is not running or it has not been installed and
configured.

For pure external physical-only restore, no storage manager is needed.
Therefore, the external restore is continued at this point.
However, a storage manager may be necessary later if logical logs need
to be restored from backup media.


-43200	Shared memory not initialized.

The database server is not running.

Start the database server. For instructions, see the Administrator's
Guide.


-43201	The database server has crashed or been shutdown. Exiting...

The database server has failed or has been shut down while one or more
ON-Bar worker processes are still running. The ON-Bar worker processes
will be automatically shut down.


-43202	Unable to determine mode of all coservers.

It was not possible to determine what mode each coserver is in (online,
quiescent, off-line, or microkernel).

Verify that all coservers are running and that the coservers are
communicating with each other properly.


-43203	Not all coservers are in a compatible mode.

Not all coservers are in the same mode. Each coserver must be in a mode
compatible to all the others. For example, all the coservers must be in
microkernel mode to perform a cold restore. On-line and quiescent modes are
compatible, so a backup or warm restore can be performed as long as all
coservers are in one of these two modes.

Change all coservers to the same mode or to compatible modes.


-43204	ON-Bar is waiting for the database server to exit fast recovery
mode.

After finishing the logical restore phase of a cold restore, the database
server enters fast recovery mode. ON-Bar waits for fast recovery to complete
before cataloging the activity of the cold restore.


-43205	Failed to connect to the sysmaster or sysutils database.
Wait until these databases are created and try again.

Either the sysmaster or sysutils database has not been created.

Monitor the database server message log until the following messages
appear:
 
   "'sysmaster' database built successfully" 
   "'sysutils' database built successfully"

Then retry your command.

If one or both of these messages fail to appear, contact IBM Technical
Support.


-43206	An attempt to change the database server operating mode
failed: <server-name>.

An error occurred during an attempt to change the database server operating
mode.

Check the database server message log for errors.


-43207	Unable to open connection to database server: <server-name>.

The database server is in an incorrect operating mode.

Bring the database server to the correct mode. For a backup, the
database server should be in online or quiescent mode. For a warm
restore, the database server should be in online, quiescent, backup,
or recovery mode. For a cold restore, the database server should be
off-line for IBM Informix Dynamic Server 9.2x or later and in microkernel
mode for IBM Informix Extended Parallel Server. To change the database
server mode, use the onmode or oninit command.


-43208	Fatal error initializing ASF; asfcode = <asfcode_value>

An error occurred during initialization of the ASF layer.

To determine the cause of the error, refer to the ASF error codes
and then rerun the backup or restore command.


-43210	ON-Bar failed to initialize the XCC communications mechanism
(<mechanism-id>).

An error occurred in an attempt to initialize communications between
coservers.

Refer to the database server message log for more information. If the
cause of the error is still unclear, contact IBM Technical Support.


-43211	The onbar process is waiting for onbar_m processes to connect
at <address-name>.

In a cold restore on IBM Informix Extended Parallel Server or IBM Informix
Dynamic Server with Advanced Decision Support and Extended Parallel options,
the ON-Bar process that the user started launches onbar_m processes on
various nodes of the MPP to collect data required to perform the cold
restore. Each onbar_m process needs to connect to the ON-Bar process using a
communications address that the ON-Bar process devised. This message names
the address.

If you are starting onbar_m by hand, type the address that the message named
on the onbar_m command line.


-43212	Waiting for onbar_m processes to connect...

Several onbar_m processes have just started, and ON-Bar is waiting for all
of them to come up.


-43213	All onbar_m processes have connected.

This is an ON-Bar progress message.


-43214	The onbar_m process started on node <node-name> failed with
status <status-id> : <status-information>.

One of the onbar_m processes failed to connect to ON-Bar.

If this message occurs once, try to start an onbar_m process on the named
node by hand as user informix. If this message occurs repeatedly, contact
IBM Technical Support with the status information in the 
error message and with the contents of your ONCONFIG file.


-43215	The onbar_m process on node <node-name> sent an unexpected
message (<message-1> instead of <message-2>).

This message indicates either an error in the ON-Bar software or an onbar_m
process that did not start correctly.

Contact IBM Technical Support.


-43216	The ON-Bar process received a polling error from XCC
(<value-1> : <value-2>).

An error occurred in inter-coserver communications.

If this message occurs once, try to start the cold restore again. If
this message occurs repeatedly, contact IBM Technical Support
with the status information in the error message and with the contents
of your ONCONFIG file.


-43217	The ON-Bar process failed to send an XCC message
(<value-1> : <value-2>).

An error occurred in inter-coserver communications.

If this message occurs once, try to start the cold restore again. If
this message occurs repeatedly, contact IBM Technical Support
with the status information in the error message and with the contents
of your ONCONFIG file.


-43218	The ON-Bar process failed to receive an XCC message
(<value-1> : value-2).

An error occurred in inter-coserver communications.

If this message occurs once, try to start the cold restore again. If
this message occurs repeatedly, contact IBM Technical Support
with the status information in the error message and with the contents
of your ONCONFIG file.


-43219	A rename chunk restore failed. Server is not in off-line mode.

Restore with chunk rename can only be done as cold restore when the server
is off-line.

To do a restore with chunk rename, bring the server off-line and do
a cold restore.


-43225	There may be duplicate copy ID's in use for backup objects 
in the sysutils database.  More than one backup object may share 
the same copy ID.  Expiring backups using onsmsync in this 
scenario may cause backup objects that should not be expired 
to be removed from the PSM storage manager.

The number of unique ins_aid, ins_oid pairs for backup objects 
(act_type 1 or 5) does not match the number of unique copy ID's 
(ins_copyid_hi, ins_copyid_lo) for the backup objects in sysutils. 
This may indicate that there is more than one backup object with 
the same copy ID in sysutils.

Duplicate copy ID's in sysutils may result from exporting/importing 
backup objects from one PSM storage manager to another PSM 
storage manager where the same object ID's (copy ID's) in use in 
sysutils are now being used for new backups.  In such cases, 
onsmsync may not be able to distinguish between the two objects 
during expiration processing.  Manual clean-up may be needed until 
the sysutils info and the PSM storage manager catalog are compatible.

To skip the check for duplicate copy ID's in sysutils, set the 
environment variable BAR_SKIP_DUPS_CHECK=1 and re-run the 
onsmsync expiration command.


-43230	The problem just reported is not fatal; processing will continue.

ON-Bar just reported a warning or error in the activity log. However, this
problem is not fatal. ON-Bar will continue processing, either retrying or
using a different algorithm to complete the task. Other unrecoverable errors
might occur later.

Watch for further errors. Be aware that further processing may take longer
than expected.


-43231	An unexpected error occurred: <value-1> <value-2>.

Several possible causes exist for this error, including operating-system
failures, version incompatibilities, and software errors.

Verify that the versions of the database server, ON-Bar, and the storage
manager are compatible. For a list of compatible versions, refer to the
IBM Informix Backup and Restore Guide, release notes, machine notes, or storage
manager documentation.

If the versions are compatible, try to stop the backup and restore process
or processes and restart them.

If the error persists, note all circumstances, save a copy of the ON-Bar
and database server message logs, and contact IBM Technical Support.


-43232	The error just encountered may be transitory. ON-Bar is
retrying the last statement.

ON-Bar just reported a warning or error. This problem, however, might be
caused by another process and might clear up after the other process
continues. ON-Bar will automatically retry the failed statement.

Monitor for further errors. If the automatic retry fails, retry the
backup or restore command.


-43233	Linked list operation failed <operation>.

A linked list operation failed.

This error is internal. Retry the operation and if it
continues to fail, contact IBM Technical Support.


-43234	New BAR_DEBUG level recognized:  old value was <value>, new
value is <value> .

The BAR_DEBUG parameter in the ONCONFIG file has changed values or
debug level is specified on command line. The new debug level value
will be used for further tracing.


-43240	Process <process-id> successfully forked.

This is an ON-Bar progress message.


-43241	Process <process-id> completed.

This is an ON-Bar progress message.


-43242	The ON-Bar process <process ID> exited without returning an exit code.

An ON-Bar child process was started and exited, but the parent process could
not find its exit code.  This situation can occur if too many child processes
exit at the same time.

ON-Bar proceeds as if this child process were successful and cataloged its
activity properly. Check the activity log for any evidence whether this process
encountered an error. Make sure the bar_action and bar_object tables in the
sysutils database correctly reflect the success or failure of this process.


-43243	The process <process ID> is participating in a backup/restore
session but is suspended.

The database administrator, computer operator, or storage manager sent SIGSTOP
or SIGTSTP, usually a CTRL-Z or CTRL-Y, to this process. Presumably this
action was taken to halt processing temporarily during resolution of a problem.

Send SIGCONT to this process (kill -CONT <process ID>) to allow the process to
complete its backup or restore, SIGTERM to stop this particular process, or
SIGQUIT to end the whole backup or restore session.


-43244	All onbar processes participating in the backup/restore session are
suspended.

The database administrator, computer operator, or storage manager sent
SIGSTOP or SIGTSTP, usually a CTRL-Z or CTRL-Y, to all of the processes
involved in this backup or restore session. Presumably this action was
taken to halt processing temporarily during resolution of a problem.

Use the ps system command to find a list of all ON-Bar processes. Send
SIGCONT to each of them (kill -CONT <process ID>) to allow each process
to complete its backup or restore, SIGTERM to stop a particular process,
or SIGQUIT to one of the processes to end the whole backup or restore
session.


-43245	ON-Bar could not start another child process.

ON-Bar encountered an error starting another process to back up or restore
data in parallel.  A lack of sufficient memory or the user having too many
processes running at the same time usually causes this situation.

Increase the amount of real memory or swap space, end any unnecessary
processes, or reduce BAR_MAX_BACKUP value in your ONCONFIG file.


-43246	The ON-Bar process <process ID> exited with a problem (exit code
<value> (0x<hex value>), signal <signal number>).

An ON-Bar child process encountered an error while performing its backup or
restore. The child process returned an error (the exit code) to its parent.
If the exit code has the value 141 (0x8d), then the child process exited
because it received an operating-system signal, reported by this message.

If the exit code reported in the message is non-zero, then look at the list
of ON-Bar exit codes in the documentation or at the ON-Bar activity log to
find the cause of the problem. If the signal number is non-zero, look at
the documentation for your operating system to see what might have caused
this problem.


-43247	<process ID> complete, returning <status-value> (0x<hex value>).

An ON-Bar process has completed its processing and is exiting.

If the process returned 0, then no further action is required. If the
process returned a nonzero value, then check the activity log for errors and
take action appropriate for those errors.


-43255	Successfully connected to Storage Manager.

This is an ON-Bar progress message.


-43256	Version <version-1> of the XBSA shared library is not
compatible with version <version-2> of ON-Bar.

Either the XBSA shared library that the storage manager vendor
provided has not been validated by IBM, or an error occurred during
the installation of ON-Bar or the storage manager application.

Look at the contents of the sm_versions file in $INFORMIXDIR/etc
or %INFORMIXDIR%\etc. Make sure that the data matches the version of
your storage manager and confirm that this version of the storage
manager has been certified with this version of ON-Bar. Consult your
storage-manager documentation for the correct storage manager version
to put into the sm_versions table in the sysutils database.


-43257	Could not open XBSA library <library-name>.

The shared library does not exist, it has a bad format, or you do not have
permission to read it.

Make sure that the shared library for the Storage Manager was installed
properly and that the ONCONFIG file has the correct value for BAR_BSALIB_PATH.


-43258	ON-Bar could not get logical log <unique ID> from the Storage
Manager.

The backup of this logical log file is missing.

Query your storage manager to find out if the backup of this log file
exists and if it is restorable.


-43259	Could not open XBSA library <library-name>, so trying default
path.

The shared library does not exist, it has a bad format, or you do not have
permission to read it.

Make sure that the shared library for the storage manager was installed
properly and that the ONCONFIG file has the correct value for BAR_BSALIB_PATH.


-43260	ON-Bar was unable to get backup record of <space-name> from
storage manager.

The storage manager does not have a backup record for the dbspace or
blobspace.

For more information, contact the storage manager vendor or IBM Technical
Support.


-43261	BAR_BSALIB_PATH is undefined; trying default path.

Either a line in the ONCONFIG file contains BAR_BSALIB_PATH with no value,
or a problem occurred reading the ONCONFIG file.

Verify that the format of the ONCONFIG file is correct. Also make sure that
either BAR_BSALIB_PATH is assigned a correct value or is not specified in
the file at all.


-43262	The wrong version of <object-name> was returned from the
Storage Manager.

The storage space or log file returned by the storage manager for
restore is not the object requested by ON-Bar.

Query your storage manager to find out if the correct backup of this
storage space or log file exists and if it is restorable.


-43263	XBSA Error: (<error-number>) Active object does not exist.
Attempt to deactivate it failed.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43264	XBSA Error: (<error-number>) A system error occurred. Aborting XBSA session.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43265	XBSA Error: (<error-number>) Attempt to authorize <user-id>
failed.

Verify that the username is informix or root or is a member of the
bargroup group.


-43266	XBSA Error: (<error-number>) Invalid XBSA function call
sequence.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43267	XBSA Error: (<error-number>) Invalid XBSA session handle
<handle-id>.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43268	XBSA Error: (<error-number>) XBSA buffer is too small for
the object.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43269	XBSA Error: (<error-number>) Description of the object
exceeds the maximum allowed value: <maximum-value>.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43270	XBSA Error: (<error-number>) The database server name
exceeds maximum allowed size <size-value>.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43271	XBSA Error: (<error-number>) The new security token name is
invalid.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43272	XBSA Error: (<error-number>) Invalid vote value: Must be
BSAVoteCOMMIT or BSAVote_ABORT.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43273	XBSA Error: (<error-number>) Invalid environment keyword.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43274	XBSA Error: (<error-number>) That object already exists.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43275	XBSA Error: (<error-number>) A new security token must be
created.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43276	XBSA Error: (<error-number>) Backup object does not exist in
Storage Manager.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43277	XBSA Error: (<error-number>) Exceeded available resources.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43278	XBSA Error: (<error-number>) A DataBlock pointer is
required.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43279	XBSA Error: (<error-number>) An object name is required.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43280	XBSA Error: (<error-number>) Unable to access NULL pointer.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43281	XBSA Error: (<error-number>) Rule ID is required.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43282	XBSA Error: (<error-number>) The object is not empty.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43283	XBSA Error: (<error-number>) This object has not been
backed up.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43284	XBSA Error: (<error-number>) Object information data exceeds
maximum allowed size <size-value>.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43285	XBSA Error: (<error-number>) Object name exceeds maximum
allowed size <size-value>.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43286	XBSA Error: (<error-number>) Operation is not authorized
for <user-id>.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43287	XBSA Error: (<error-number>) A value for the old security
token is required.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43288	XBSA Error: (<error-number>) The security token has expired.
Create a new one.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43289	XBSA Error: (<error-number>) The transaction was aborted.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43290	XBSA Error: (<error-number>) A quote is missing from an
environment keyword.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43291	XBSA Error: (<error-number>) A username cannot be deleted
while it owns objects.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43292	XBSA Error (<value-1>): An unspecified XBSA error has
occurred: <value-2>.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43293	XBSA Error: (<error-number>) A query or object retrieval
tried to get more data than exists.

An error occurred in the storage manager application.

Refer to the storage manager message log (or equivalent) for more
information. If the cause of the error is still unclear, contact your
storage manager technical support. If you are using the IBM Informix Storage
Manager, contact IBM Technical Support.


-43294	ON-Bar was unable to get the backup record of logical log <unique ID>
from the storage manager.

The storage manager issued an error when finding a backup record
for the logical log.

For further information, contact the storage manager vendor
or IBM Technical Support.


-43295	WARNING: BAR_TIMEOUT unable to initialize connection to Storage
Manager.

The storage manager may not be running or there may be storage manager
configuration problems.

Refer to the storage manager message log (or equivalent) for more information.
If the cause of the error is still unclear, contact your storage manager
Technical Support. If you are using the IBM Informix Storage Manager, contact
IBM Technical Support.


-43296	WARNING: BAR_TIMEOUT Storage Manager Progress may be stalled.

The current command has exceeded the BAR_TIMEOUT value. This may indicate
a normal transfer of a large data set or it may mean the storage manager
needs attention.

Check to make sure the storage manager is still running and that data is still
being transfered to/from the storage manager.
Refer to the storage manager message log (or equivalent) for more information.
If the cause of the error is still unclear, contact your storage manager
Technical Support. If you are using the IBM Informix Storage Manager, contact
IBM Technical Support.


-43297	BAR_BSALIB_PATH in ONCONFIG is not an absolute pathname.

The absolute path of the XBSA library was not specified for the BAR_BSALIB_PATH
parameter in the ONCONFIG file.

Modify the BAR_BSALIB_PATH parameter in the ONCONFIG file by specifying
the absolute path of the XBSA library.


-43300	WARNING: BAR_TIMEOUT: The backup and restore filter program progress might be stalled.

The current command has exceeded the amount of time specificed by 
the BAR_TIMEOUT configuration parameter. This  can indicate a slow 
filter program, the transfer of a large data set, or it  can mean 
that the storage manager needs attention.
.ACTION
Make sure the storage manager is still running and that data is still
being transfered  to or from the storage manager. 
Review the storage manager message log or the log file for the filter.
If the cause of the error is still unclear, contact your storage manager
or Technical Support for your filter. If you are using the IBM Informix
Storage Manager, contact IBM Support.


-43303	Creating the backup and restore filter process <filter program> failed with error code <error number>.

ON-Bar attempted to create a filter process for running the configured 
filter program. The process creation for execution of the filter 
program failed with the given error code.
.ACTION
Check that the BACKUP_FILTER and RESTORE_FILTER configuration parameters 
are configured correctly in the onconfig file. If the cause of the 
error is still unclear, contact Technical Support  for your filter.

-43305	<object-name> (copy ID <id-1> <id-2>) not expired even though it
matches the expiration policy.

The named object matches the expiration policy named on the command line
with the -g, -i, or -t option. The object cannot be deleted, however, because
it is needed to allow the restore of another object that does not match the
expiration policy.

This message is informational.


-43306	Whole system backup from <timestamp> not expired even though it
matches the expiration policy.

The whole-system backup started at the described time matches the expiration
policy named on the command line. The backup cannot be deleted, however,
because it is needed to allow the restore of another whole-system backup that
does not match the expiration policy.

This message is informational.


-43307	Expired <object-name> (copy ID <id-1> <id-2>), backed up
<timestamp>.

The named object has been expired as requested.


-43308	Expired <object-name> (copy ID <id-2> <id-3>), backed up
<timestamp>; restore may not be possible.

The named object has been expired as requested. Normally onsmsync would not
have removed it, but the -O option was passed on the command line. If the
object is a storage space, ON-Bar cannot determine if it can restore that
space from remaining data in the sysutils database. If the object is a logical
log, ON-Bar cannot determine if any subsequent restore attempts will fail.

If the object can be re-created in the storage manager and you think you may
need to restore this object with ON-Bar, then follow the procedures for
re-creating the object in the storage manager. Then contact IBM Technical
Support for assistance.


-43309	Expired whole system backup from <timestamp>; restore may not be
possible.

The whole-system backup started at the described time has been expired as
requested. Normally onsmsync would not have removed it, but the -O option was
passed on the command line. ON-Bar cannot determine if it can restore from
the remaining data in the sysutils database.

If the objects in this whole-system backup can be re-created in the storage
manager and you think you may need them to restore with ON-Bar, then follow
the procedures for re-creating them in the storage manager. Then contact
IBM Technical Support for assistance.


-43310	Could not update the sysutils database - run onsmsync -b when
the database server is quiescent or online.

Either a log salvage was run as a distinct step (onbar -b -l -s), ON-Bar
encountered an error cataloging an action but successfully updated the
emergency boot file, or onsmsync was run when the database server was
off-line or otherwise unavailable. Therefore the sysutils database is
inconsistent with the storage manager and emergency boot file.

Bring the database server online (possibly including a physical and
logical restore) and run onsmsync -b.


-43319	Exiting without expiring any backup object. All the storage spaces
met the expiration policy or storage spaces were not backed-up using ON-Bar.

After applying the expiration policies specified by the -g option, the onsmsync
list of objects contains only logical logs. The list does not contain space
backups.

Use the -t or -i option to expire logical log backups.


-43320	Begin backup verification of level <level-number> for <object-id>
(Storage Manager copy ID: <copy-id1> <copy-id2>).

This message is an ON-Bar progress message.


-43321	<percent-number> percent of <verification> has been verified.

This message provides progress feedback for the backup verification as a
percentage of dbspace size.


-43322	Completed level <level-number> backup verification successfully.

This message is an ON-Bar progress message.


-43323	ERROR: Unable to create the physical check session:
<session-number>.

This error occurs during backup verification.

Before you call Technical Support, examine the message log files for
the database server, ON-Bar, and archecker.


-43324	ERROR: Unable to open the physical check errtxt: <error-number>.

This error occurs during backup verification. It indicates a problem running
the archecker process. 

Check permissions and disk space for the archecker temporary files. For
these file locations, see $INFORMIXDIR/etc/ac_config.std or
%INFORMIXDIR%\etc\ac_config.std. Before you call Technical
Support, examine the message log files for the database server,
ON-Bar, and archecker.


-43325	ERROR: Unable to write the physical check errtxt: <error-number>.

This error occurs during backup verification. It indicates a problem
running the archecker process.

Check permissions and disk space for the archecker temporary files. For
these file locations, see $INFORMIXDIR/etc/ac_config.std or
%INFORMIXDIR%\etc\ac_config.std. Before you call Technical
Support, examine the message log files for the database server,
ON-Bar, and archecker.


-43326	ERROR: Unable to close the physical check errtxt: <error-number>.

This error occurs during backup verification. It indicates either a problem
running the archecker process or a corrupt backup.

Check permissions and disk space for the archecker temporary files. For
these file locations, see $INFORMIXDIR/etc/ac_config.std or
%INFORMIXDIR%\etc\ac_config.std. Before you call Technical
Support, examine the message log files for the database server,
ON-Bar, and archecker.


-43328	Failure in archecker process execution status.

An error occurred during Level <value> backup verification.

Check permissions and disk space for the archecker temporary files. For
these file locations, see $INFORMIXDIR/etc/ac_config.std or
%INFORMIXDIR%\etc\ac_config.std.  Before you call Technical Support,
examine the message log files for the database server, ON-Bar, and archecker.
If the AC_CONFIG environment variable is not set and there is no ac_config.std
file in $INFORMIXDIR/etc or %INFORMIXDIR%\etc, then look at the msg.log file
generated by archecker in the directory where ON-Bar is executed.


-43362	Begin displaying logical log <log-id>. (Storage Manager copy ID:
<value-2> <value-3>).

This is an ON-Bar progress message.


-43363	Completed displaying logical log <log-id>.

This is an ON-Bar progress message.


-43364	No logical logs to display.

You are trying to display one or more logical logs but none of those you
specified have been archived using ON-Bar or the emergency boot file
might be corrupted.

Make sure that the emergency boot file has the log backup information.


-43365	Unable to display logical log : <unique ID> .

There could be a problem in constructing a block of log records
which shall be displayed using the callback function. The logical
log file you are displaying may be corrupted.


-43373	Sysutils database will be updated when server exits fast recovery.

ON-Bar tries to update the sysutils database while the database server
is in fast recovery. When the database server exits fast recovery, the
sysutils database is updated.

Place the database server in quiescent or online mode, then run the
onsmsync -b command. This command generates the emergency boot file.


-43376	Unable to convert datetime to string: <date>.

The date string could not be interpreted because the format
used did not match the format expected by ON-Bar.

Check for the values of environment variables related to internationalization
or localization (such as CLIENT_LOCALE and GL_DATETIME).  If the environment
is set for localization, then make sure the date specified matches the local
format for dates. If no appropriate environment variables are set, then make
sure the date was specified in the standard SQL date format.


-43380	Deadlock detected. Wait a few seconds for the lock to clear and try
again.

Two processes attempted to lock the same sysutils database table or row at
the same time resulting in a deadlock.

Wait a few seconds for the other process to complete and release the lock
and try again.


-43381	The logical logs are full. ON-Bar might encounter errors writing
to the sysutils database.

The logical logs were filled while ON-Bar was running. ON-Bar performs
database transactions when it writes a record of what it has done
to the ON-Bar catalogs in the sysutils database. Therefore, the
work performed by the current ON-Bar process is not recorded in
the sysutils database. However, it is recorded in the emergency
boot file.

If by the end of the backup or restore, the object still was not cataloged,
use onsmsync to update the data.


-43385	Restoring <storage space> even though it is online.

ON-Bar by default does not restore spaces if they are online.
To get this message, the -O option must have been used on the
onbar command line to override internal checks.

No action is necessary. ON-Bar will restore the space.


-43388	The maximum allowed number of storage spaces per ON-Bar command has
been exceeded.

There is a limit to how many storage spaces ON-Bar may process in a whole
system backup or restore. This number varies from platform to platform.
Non-whole system backup or restore does not have such a limit.

If possible, retry the backup or restore without the whole system option.
If a whole system restore is required, consider reducing the number of
storage spaces in your installation.


-43389	<storage space> does not have a level <value-1> backup.
A level <value-2> backup will be performed by default.

An incremental backup requires that a backup of the previous level exists.
For example, there must be at least one level 0 backup of the object before
a level 1 backup of it may be performed.  Both a level 0 and a level 1
backup must exist before a level 2 backup may be performed.


-43391	Skipped backup/restore of space <storage space>.

The specified storage space was a temporary space, the space was online,
or it is the root dbspace and the database server is in Fast Recovery
mode and does not need a restore.

No corrective action is necessary.


-43392	One or more BLOBspaces are down. Log backup has been aborted.

A BLOBspace is down. Backing up or salvaging the logical logs would
make it impossible to restore this BLOB in the future.

Bring all BLOBspaces online and retry the logical log backup or salvage.


-43393	Storage space <storage space> is down and cannot be backed up.

Only storage spaces that are online can be backed up.

Bring the storage space online and attempt the backup again.


-43394	Storage space <storage space> is not down so it will not be restored.

Only storage spaces that are off-line need to be restored. This storage space
will not be restored, but restore of any other storage spaces will be
attempted.


-43395	A log backup is already running. Can't start another.

This occurs when several onbar processes try to back up the logical
logs at the same time. One of the causes might be that the program
defined by the ALARMPROGRAM parameter in your ONCONFIG file calls
onbar to do log backups and is executed by the database server while another
onbar process is also trying to perform a log backup. Another possible
cause is that multiple onbar command-line calls were made to perform
restores, and they are interfering with each other.

No action is required. The first log backup that is started will
back up all of the used log files.


-43399	ERROR: No response was received from the database server.
Aborting ON-Bar.

There was no response from the database server. The database server
may not be running properly and may have a problem.

Determine what is wrong with the database server, repair it, and
retry the backup or restore.


-43400	ondblog usage.

ondblog <new mode> [-f <filename>] [<database list>]

    new mode:

        buf     - Change database to buffered mode.
        unbuf   - Change database to unbuffered mode.
        nolog   - Change database to no logging.	(not in AD/XP)
        ansi    - Change database to be ANSI-compliant
        cancel  - Cancel logging request.

    -f <filename>   File containing list of databases for logging change.

    <database list> List of databases for logging change.

This message displays after an incorrect entry of the ondblog command.

Revise the command and try again.


-43402	ERROR: Invalid serial number. Consult your installation
manual.

The serial number for ondblog is invalid.

Ask your System Administrator to re-install ondblog.


-43421	Logging mode <log-mode> is not available in this edition of the
database server.

The named logging mode is available in some but not all versions of
Informix database servers.

Find an appropriate logging mode that is available. Check the release
notes or your Administrators Guide for supported logging modes.

For IBM Informix Extended Parallel Server or IBM Informix Dynamic Server with
Advanced Decision Support and Extended Parallel options, if you are trying
to turn off logging for a database, try to convert all the tables in that
database to one of the nonlogged table types.


-46007	Cannot perform Java-to-SQL type mapping for type (<type name>).

This error can occur if you use the SQL data type, such as FLOAT, in the
EXTERNAL NAME clause of the CREATE FUNCTION statement.

Use the Java data type, not the SQL data type, in the EXTERNAL NAME
clause.


-46103	Error loading Java UDR class (<jar filename>). Verify
the three part name (<dbname.username.jarid>) of the installed jar
with the jar file name is in your JAR_TEMP_PATH or /tmp directory.

A possible cause of this error is using "thisjar" instead of using
the jar ID in the deploy.txt file.


-47086	Cannot specify current as default value with non-datetime column type.

You cannot assign a default value consisting of the current time from
the system clock when the column data type is not DATETIME. Modify the
column data type to DATETIME (if permitted), or specify a different
default value for the column.


-47087	Cannot specify null default value when column doesn't accept nulls.

Select a different (nonnull) default value for the column, or modify
the column to accept null values.


-47088	Cannot specify server or site as a default value with this column type.

You cannot specify a default value that consists of the current
database server name or current site name for a column that is not a
CHAR, NCHAR, VARCHAR, or NVARCHAR data type. Change the column data
type (if permitted), or specify a different default value.


-47089	Cannot specify server or site as a default value with this column
length.

For specifying a default value that consists of the current database server
name or current site name for a CHAR, NCHAR, VARCHAR, or NVARCHAR column,
the minimum column length must be 18. Increase the column length, or specify
a different default value.


-47090	Cannot specify today as a default value with this column type.

You cannot specify a default value that consists of the current system
date for a column when the column data type is not DATE. Change the
column data type (if permitted), or specify a different default value.


-47091	Cannot specify user as a default value with this column type.

You cannot specify a default value that consists of the login name of
the current user for a column that is not a CHAR, NCHAR, VARCHAR, or
NVARCHAR data type. Change the column data type (if permitted), or
specify a different default value.


-47092	Cannot specify user as a default value with this column length.

In order to specify a default value that consists of the login name of
the current user for a CHAR, NCHAR, VARCHAR, or NVARCHAR column, the
minimum column length must be 8. Increase the column length, or specify
a different default value.


-47093	Cannot create unique or primary key constraint with column type of
BYTE or TEXT.

In order to create a primary or unique constraint on the column, change
the column data type from TEXT or BYTE, if permitted.


-47095	Column not found in referenced table.

You cannot create a foreign-key constraint on a column that does not
exist in the referenced table. Specify a different referencing or
referenced column for the constraint.


-47098	Number of columns in composite list exceeds maximum.

You cannot include more than 16 column names in a single primary or
unique constraint on IBM Informix Dynamic Server, IBM Informix Universal
Server, or IBM Informix OnLine Dynamic Server, or 8 column
names in one primary or unique constraint on IBM Informix SE. Reduce the number
of columns that are specified in the constraint definition.


-47099	You cannot modify an existing constraint.

You cannot use the ALTER TABLE menu options to modify an existing
constraint. An asterisk preceding the name identifies existing
constraints.


-47100	Column not in this table.

You cannot create a constraint on a column that does not exist in the
table.


-47101	To drop an existing constraint, the current field must be constraint
name.

The cursor is in the wrong field on the screen. Move the cursor to
highlight an entry in the Constraint Name field to drop all columns
that are associated with a primary key, check, or unique constraint.
Highlight the Constraint field to drop all columns that are associated
with a foreign-key constraint.


-47102	You have exceeded the temporary buffer size.

The buffer in the SQL editor, which holds the check-constraint value
and the literal default-constraint value, is full. If you are modifying
the check constraint, a different editor might have a larger buffer.


-47104	The fill factor percentage must be a positive integer not exceeding 100.

You tried to specify a fill factor percentage that is a negative number
or is greater than 100 percent. Specify a different percentage, or
press RETURN to accept the default value of 90 percent.


-47105	Dbspace has already been selected as part of the strategy.

You cannot use the same dbspace more than once in a fragmentation
strategy. The dbspace you selected is already part of the strategy.
Select another dbspace from the current list.


-47106	Table has already been selected as part of the attaching strategy.

A table can be attached to a fragmentation strategy only once. The
table that you selected is already part of the fragmentation strategy.
Select another table from the current list.


-47107	An Alter Table option has already been altered.

You can execute only one menu option in an ALTER FRAGMENT menu session,
and it cannot be applied to the current strategy more than once. For
example, you can add only one dbspace to a round-robin strategy, and
you cannot delete a dbspace during the same ALTER TABLE session.


-47108	Dbspace is not part of the current strategy.

You have specified a dbspace that is not part of the current
fragmentation strategy. Select a dbspace from the list of available
dbspaces that is displayed on the screen.


-47109	A Dbspace is required if a position is defined.

You have specified a dbspace as part of your attaching table strategy.
This action indicates that you wish to position the attaching table
before or after a dbspace that is part of the fragmentation strategy
being attached to. You must define a before or after position.

-47111	ALTER currently not supported for this strategy.

The fragmentation strategy you have chosen does not currently support
ALTER FRAGMENT operations. 

If that fragmentation strategy is a design requirement of your application,
consider creating a new table that uses the strategy, and then loading
existing data into the new table whose fragmentation strategy matches 
your requirements.


-47112	Must choose a fragmentation key.

You have not chosen a fragmentation key for the current fragmentation
strategy. 

You must mark one of the table columns as selected, from the Fragment-key
menu of the dbaccess utility.

-47113	Must write an interval value expression.

You have not written an interval value expression for the fragmentation 
strategy. Interval fragmentation requires that you choose an interval
value appropriate for the fragmentation key.

For example, with a fragment key of type DATE, valid interval values are:
   
          INTERVAL(YYYY-MM) YEAR TO MONTH
          INTERVAL(MM) MONTH TO MONTH
          INTERVAL(YYYY) YEAR TO YEAR
          INTERVAL(DD) DAY TO DAY

Where:
          YYYY = years
          MM = months
          DD = days

For fragment keys of INTEGER, and other numeric types, the interval value 
must be a constant expression that evaluates to the same type as the fragment key.

For example, with a fragment key of INTEGER TYPE, some valid interval values are:

        1337
        0.1337E4

-47114	Must specify at least one partition.

You must have at least one partition for data storage using the selected 
fragmentation strategy.

Within a given dbspace, each partition name that you declare must be unique
among the names of partitions of the same table or index.


-47115	Missing name from a partition.

You have omitted the name of one of the partitions in the fragmentation strategy. 

Within a given dbspace, each partition name that you declare must be unique
among the names of partitions of the same table or index.

-47116	Missing expression from a partition.

You have omitted the partition expression from one of the partitions in the
fragmentation strategy.

1. For Interval fragmentation, valid partition expressions are of the form:

   a. VALUES < {transition}

   The transition value, depends on the interval value, and the data type of 
   the fragment key.

   For example, with fragment key of DATE type, and an interval value of 
   INTERVAL(1-3) YEAR TO MONTH, some valid partition expressions are:

       VALUES < DATETIME(1980-02-13) YEAR TO DAY 
       VALUES < DATETIME(1986-11-01) YEAR TO DAY

   b. VALUES IS NULL

   This form is used to specify the NULL partition. You can only have
   one NULL partition in a fragmentation strategy.

2. For List fragmentation, valid partition expressions are of the form:

   a. VALUES ({constant, ...})

   The constant value must be valid for the data type of the fragment key.

   For example, with a fragment key of CHAR(20) type, some valid partition
   expressions are:

       VALUES ("FL", "CA", "NY", "NJ")
       VALUES ("OH", "MD", "MI")
       VALUES (NULL)

   b. REMAINDER

   This form is used to specify the REMAINDER partition. There can only
   be one REMAINDER partition, and it must be the last partition in
   the partition list.

-47117	Missing dbspace name from a partition.

You have omitted the dbspace name from one of the partitions in the 
fragmentation strategy.


-55900	Missing option list.

You specified a processor command-line option of -cc, -l, or -r and
terminated the option incorrectly. For information on how command-line
graphics terminate these options, see "Command-Line Conventions" on
page 6 of the Introduction or online help.


-55901	Unrecognized sub-option (option_name).

Text (option_name) following a colon (:) was not a valid suboption. For
information on which suboptions are valid with the option, see the
online help.


-55902	Incompatible file extension (file_extension) in option list.

For ESQL/C: You specified a processor command-line option of -cc -l,
or -r and terminated the option with an incorrect file extension. For
information on how command-line graphics terminate these options, see
the IBM Informix  ESQL/C Programmer's Supplement for Microsoft Windows
Environments or online help.

For ESQL/COBOL: You specified a processor command-line option of -cb,
-l, or -r and terminated the option with an incorrect file extension.
For information on how command-line graphics terminate these options,
see the IBM Informix ESQL/COBOL Programmer's Supplement for Microsoft
Windows Environments or online help.


-55903	Processor type option conflict.

You specified more than one CPU-type command-line option (for example,
-cpu:i386 and -pm) that identifies the CPU type. Enter the esql command
again without the conflicting options.


-55904	Error in spawned program.

For ESQL/C: The esql command processor created a program (compiler,
linker, or resource compiler) that returned an error and caused esql to
terminate. Check the generated output to determine the error, resolve
the error, and run the esql command processor again.

For ESQL/COBOL: The esqlcobo command processor created a program
(compiler, linker, or resource compiler) that returned an error and
caused esqlcobo to terminate. Check the generated output to determine
the error, resolve the error, and run the esqlcobo command processor
again.


-55905	Illegal character in filename, `file_name'.

The file file_name contains one or more invalid characters.


-55906	Run-time option conflict.

For ESQL/C: You specified more than one runtime option (for example,
-runtime:libc and -rt:d). Enter the esql command again without the
conflicting options.

For ESQL/COBOL: You specified more than one runtime option (for
example, -runtime:mfrts32 and -rt:s). Enter the esqlcobo command again
without the conflicting options.


-55907	Subsystem option conflict.

For ESQL/C: You specified more than one subsystem option (for example,
-ss:c and -S:w). Enter the esql command again without the conflicting
options.

For ESQL/COBOL: You specified more than one subsystem option (for
example, -ss:c and -Sw). Enter the esqlcobo command again without the
conflicting options.


-55909	I/O error in file (file_name).

An I/O error occurred in the file file_name. Probably no space is
available. Increase available space and enter the command again.


-55910	Option (option_name) is no longer supported.

For ESQL/C: This release does not support the specified command-line
option. For valid options, check the IBM Informix ESQL/C Programmer's
Supplement for Microsoft Windows Environments.

For ESQL/COBOL: This release does not support the specified
command-line option. For valid options, check the IBM Informix ESQL/COBOL
Programmer's Supplement for Microsoft Windows Environments.


-55911	Unable to open the log file.

For ESQL/C: Unable to open the ESQL/C preprocessor log file. Probably
no space is available. Increase available space and enter the command
again.

For ESQL/COBOL: Unable to open the ESQL/COBOL preprocessor log file.
Probably no space is available. Increase available space and enter the
command again.


-55912	Incompatible file extension for -e option.

For ESQL/C: You specified the -e command-line option but did not
specify an ESQL/C source file (.ec file extension). Enter the command
again, specifying the name of the .ec file.

For ESQL/COBOL: You specified the -e command-line option but did not
specify an ESQL/COBOL source file (.eco file extension). Enter the
command again, specifying the name of the .eco file.


-55913	Missing target filename for `-o' option.

You specified the -o command-line option but did not specify an output
file. Enter the command again, specifying the filename of the output
file.


-55914	Incompatible file extension for `-c' option.

You specified the -c command-line option but specified an incompatible
file extension. Enter the command again, specifying the name of the
file with a compatible file extension.


-55915	Missing name of log file for `-log' option.

You specified the -log command-line option but omitted a filename for
the log file. Enter the command again, specifying the name of the log
file.


-55917	Compiler option conflict.

You specified more than one command-line option that identifies the
compiler type (for example, -mc and -bc). Enter the esql command again
without the conflicting option.


-55918	Missing name of source file list file for '-f' option.

For ESQL/C: You specified the -f command-line option but omitted a
filename for the list of ESQL/C source files. Enter the command again,
specifying the name of the list file.

For ESQL/COBOL: You specified the -f command-line option but omitted a
filename for the list of ESQL/COBOL source files. Enter the esqlcobo
command again, specifying the name of the list file.


-55919	Application type option conflict.

For ESQL/C: You specified more than one application type option (for
example, -wd and -target:exe). Enter the esql command again without the
conflicting options.

For ESQL/COBOL: You specified more than one application type option
(for example, -wd and -target:exe). Enter the esqlcobo command again
without the conflicting options.


-55920	Cannot open ESQL response file 'file_name'.

For ESQL/C: The esql command processor cannot open the specified ESQL
command-line response file. Verify that the name of the file after the
'@' option exists.

For ESQL/COBOL: The esqlcobo command processor cannot open the
specified ESQLCOBO command-line response file. Verify that the name of
the file after the `@' option exists.


-55921	Unable to allocate memory.

For ESQL/C: ESQL cannot allocate memory. Terminate one or more
applications and enter the command again.

For ESQL/COBOL: ESQL/COBOL cannot allocate memory. Terminate one or
more applications and enter the command again.


-55922	Preprocessor detected errors.

For ESQL/C: The ESQL/C preprocessor detected one or more errors,
causing the processor to stop. Correct the errors and rerun.

For ESQL/COBOL: The ESQL/COBOL preprocessor detected one or more
errors, causing the esqlcobo command processor to stop. Correct the
errors and rerun.


-55923	No source or object file.

You did not specify the name of a source or the program object file. No
files could be passed to the linker. Enter the command again,
specifying the name of the file to pass to the linker.


-55925	Cannot open file 'file_name'.

For ESQL/C: The esql command processor could not open the specified
file. If you specified the -f option, check that the source list file
exists. If -f was omitted, this error indicates that the processor
cannot find the necessary space to create some file.

For ESQL/COBOL: The esqlcobo command processor could not open the
specified file. If you specified the -f option, check that the source
list file exists. If -f was omitted, this error indicates that the
processor cannot find the necessary space to create some file.


-55926	Unable to spawn the compiler.

For ESQL/C: The esql command processor cannot start the compiler. Make
sure the directory that contains your C compiler is included in the
PATH environment variable.

For ESQL/COBOL: The esqlcobo command processor cannot start the
compiler. Make sure the directory that contains your COBOL compiler is
included in the PATH environment variable.


-55927	Unable to spawn the linker.

For ESQL/C: The esql command processor cannot start the linker. Make
sure the directory that contains your linker is included in the PATH
environment variable.

For ESQL/COBOL: The esqlcobo command processor cannot start the
linker. Make sure that the directory containing your linker is
included in the PATH environment variable.


-55928	Unable to spawn the resource compiler.

For ESQL/C: The esql command processor cannot start the resource
compiler. Make sure the directory that contains your resource compiler
is included in the PATH environment variable.

For ESQL/COBOL: The esqlcobo command processor cannot start the
resource compiler. Make sure the directory that contains your resource
compiler is included in the PATH environment variable.


-55929	Missing ESQL response file.

For ESQL/C: The esql command processor cannot locate the ESQL
command-line response file (specified after the '@'). Verify that the
filename is correct.

For ESQL/COBOL: The esqlcobo command processor cannot locate the
ESQLCOBO command-line response file (specified after the `@'). Verify
that the filename is correct.


-55930	Too many parameters specified.

You exceeded the maximum number of parameters for the preprocessor,
compiler, linker (linker options or list of libraries), or resource
compiler. Reduce the number of parameters and run the command again.


-55931	No source file provided.

For ESQL/C: You have not provided the name of an ESQL/C source file.
Possibly you specified the -e option (preprocess only) and omitted the
name of an ESQL/C source file (.ec file extension). Possibly you
specified the -c option (preprocess and compile only) and omitted the
name of an ESQL/C source file (.ec) or C source file (.c).

For ESQL/COBOL: You have not provided the name of an ESQL/COBOL source
file. Possibly you specified the -e option (preprocess only) and
omitted the name of an ESQL/COBOL source file (.eco file extension).
Possibly you specified the -c option (preprocess and compile only) and
omitted the name of an ESQL/COBOL source file (.eco) or COBOL source
file (.cbl).


-55932	File_name has incompatible file format.

The command-line response file file_name is too large. Decrease its
size and run the command again.


-55933	esql: error error_num: Multibyte filter detected error.

The ESQL/C multibyte filter has encountered one of the following
conditions:

   -Unable to initialize GLS library routines

   -Unable to write to the source (.c) file when it renames the file

   -Unable to write to the output file

   -Some other I/O error

Check the file permissions on the directory that contains your ESQL/C
source file to ensure that you have read and write permission. Also
check the file permissions on the ESQL/C source file itself to ensure
that you have read and write permission.


-73002	Cannot issue a SQL statement in the secondary thread.

You need to define the user-defined routine as variant.


-73003	An invalid argument is specified.

Either the return type buffer is empty or the length of the buffer is
not valid.


-73018	Unsupported data type.

Check the file permissions on the directory that contains your ESQL/C
source file to ensure you have read and write permission. Also check
the file permissions on the ESQL/C source file itself to ensure you
have read and write permission.


-79700	Method not supported.

IBM Informix JDBC Driver does not support this JDBC method.


-79701	Blob not found

The IBM Informix JDBC Driver encountered an exception during the
access of BLOB. With JDK 1.4 and above, the initial exception is available 
through the cause facility of java.lang.Throwable.


-79702	Can't create new object 

The software could not allocate memory for a new String object. 


-79703	Row/column index out of range

The row or column index is out of range. Compare the index to the 
number of rows and columns expected from the query to ensure that it 
is within range.


-79704	Can't load driver

IBM Informix JDBC Driver could not create an instance of itself and 
register it in the DriverManager class. The rest of the SQLException 
text describes what failed.


-79705	Incorrect URL format

The database URL you have submitted is invalid. IBM Informix JDBC Driver 
does not recognize the syntax. Check the syntax and try again.


-79706	Incomplete input

An invalid character was found during conversion of a String value to 
an IntervalDF or IntervalYM object. For correct values, see the IBM Informix JDBC
Driver Programmer's Guide.


-79707	Invalid qualifier.

An error was found during construction of an INTERVAL qualifier from 
atomic elements: length, start, or end values. Check the length, start, 
and end values to verify that they are correct.

For correct values, see the IBM Informix JDBC Driver Programmer's Guide.


-79708	Can't take null input.

The string you provided is null. IBM Informix JDBC Driver does not 
understand null input in this case.

Check the input string to ensure that it has the proper value.


-79709	Error in date format.

The expected input is a valid date string in the following format: 
yyyy-mm-dd.

Check the date and verify that it has a four-digit year followed
by a valid two-digit month and two-digit day. The delimiter 
must be a hyphen (-).


-79710	Syntax error in SQL escape clause.

Invalid syntax was passed to a JDBC escape clause. Curly braces and
a keyword demarcate valid JDBC escape clause syntax: for example,
{keyword syntax}.

Check the JDBC 2.0 documentation from Sun Microsystems for a list
of valid escape clause keywords and syntax.


-79711	Error in time format.

An invalid time format was passed to a JDBC escape clause.

The escape clause syntax for time literals has the following format:

   {t "hh:mm:ss"}.


-79712	Error in timestamp format.

An invalid timestamp format was passed to a JDBC escape clause.

The escape clause syntax for timestamp literals has the following format:

   {ts "yyyy-mm-dd hh:mm:ss.f..."}.


-79713	Incorrect number of arguments.

An incorrect number of arguments was passed to the scalar function 
escape syntax. The correct syntax is {fn function(arguments)}.

Verify that the correct number of arguments was passed to the function.


-79714	Type not supported.

You specified a data type that IBM Informix JDBC Driver does not support.

Check your program to make sure the data type is among those that the
driver supports.


-79715	Syntax error.

Invalid syntax was passed to a JDBC escape clause. Curly braces and
a keyword demarcate valid JDBC escape clause syntax: for example,
{keyword syntax}.

Check the JDBC 2.0 documentation from Sun Microsystems for a list
of valid escape clause keywords and syntax.


-79716	System or internal error.

An operating or runtime system error or a driver internal error 
occurred.

The accompanying message describes the problem.


-79717	Invalid qualifier length.

The length value for an INTERVAL object is incorrect.

For correct values, see the IBM Informix JDBC Driver Programmer's Guide.


-79718	Invalid qualifier start code.

The start value for an INTERVAL object is incorrect.

For correct values, see the IBM Informix JDBC Driver Programmer's Guide.


-79719	Invalid qualifier end code.

The end value for an INTERVAL object is incorrect.

For correct values, see the IBM Informix JDBC Driver Programmer's Guide.


-79720	Invalid qualifier start or end code.

The start or end value for an INTERVAL object is incorrect.

For correct values, see the IBM Informix JDBC Driver Programmer's Guide.


-79721	Invalid interval string.

An error occurred during conversion of a STRING value to an IntervalDF or
IntervalYM object.

For the correct format, see the IBM Informix JDBC Driver Programmer's Guide.


-79722	Numeric characters expected.

An error occurred during conversion of a STRING value to an IntervalDF or 
IntervalYM object. A numeric value was expected and not found.

For the correct format, see the IBM Informix JDBC Driver Programmer's Guide.


-79723	Delimiter characters expected.

An error occurred during conversion of a STRING value to an IntervalDF or 
IntervalYM object. A delimiter was expected and not found.

For the correct format, see the IBM Informix JDBC Driver Programmer's Guide.


-79724	Characters expected.

An error occurred during conversion of a STRING value to an IntervalDF or 
IntervalYM object. End of string was encountered before conversion was
complete.

For the correct format, see the IBM Informix JDBC Driver Programmer's Guide.


-79725	Extra characters found.

An error occurred during conversion of a STRING value to an IntervalDF or 
IntervalYM object. End of string was expected, but more characters were
in the string.

For the correct format, see the IBM Informix JDBC Driver Programmer's Guide.


-79726	Null SQL statement.

The SQL statement passed in was null.

Check the SQL statement string in your program to make sure the string
contains a valid statement.


-79727	Statement was not prepared.

The SQL statement contains one or more host variables but was not
prepared properly.

If you use host variables in your SQL statement (for example, insert
into mytab values (?, ?);), you must use connection.prepareStatement()
to prepare the SQL statement before you can execute it.


-79728	Unknown object type.

If this object type is a null opaque type, the type is unknown and
cannot be processed. If this object type is a complex type, the data
in the collection or array is of an unknown type and cannot be mapped
to an Informix type. If this object type is a row, one of the elements
in the row cannot be mapped to an Informix type.

Verify the customized type mapping or data type of the object.


-79729	Method cannot take argument.

An argument was supplied for a method that does not take an
argument.

Refer to your Java API specification or the IBM Informix JDBC Driver
Programmer's Guide to make sure you are using the method properly.


-79730	Connection not established.

A method was not called to establish a connection.

You must obtain the connection by calling the
DriverManager.getConnection() method first.


-79731	MaxRows out of range.

The specified MaxRows value is invalid because it is not within
the range of possible values for MaxRows.

Make sure you specify a value between 0 and Integer.MAX_VALUE.


-79732	Illegal cursor name.

The specified name is not a valid cursor name.

Make sure the string passed in is not null or empty.


-79733	No active result.

The statement does not contain an active result.

Check your program logic to make sure you have called the executeXXX()
method before you refer to the result.


-79734	INFORMIXSERVER has to be specified.

INFORMIXSERVER is a property required for connecting to an 
Informix database.

You can specify the INFORMIXSERVER property in the database URL 
or as part of a properties object that is passed to the 
connect() method.


-79735	Can't instantiate protocol.

An internal error occurred during a connection attempt.

Call IBM Technical Support.


-79736	No connection/statement establish yet.

There is no current connection or statement.

Check your program to make sure a connection was properly established
or a statement was created.


-79737	No meta data.

The SQL statement attempts to use metadata, but no metadata is
available.

Make sure the statement generates a result set before you attempt
to use it.


-79738	No such column name.

The specified column does not exist.

Make sure the column name is correct.


-79739	No current row.

The cursor is not properly positioned.

You must first position the cursor within the result set by using
a method such as resultset.next(), resultset.beforefirst(),
resultset.first(), or resultset.absolute().


-79740	No statement created.

There is no current statement.

Make sure the statement was properly created.


-79741	Can't convert to.

No data conversion is possible from the column data type to the 
one specified. The actual data type is appended to the end of this 
message.

Review your program logic to make sure that the conversion 
you asked for is supported. For the data mapping matrix,
see the IBM Informix JDBC Driver Programmer's Guide.


-79742	Can't convert from.

No data conversion is possible from the data type you specified to 
the column data type. The actual data type is appended to the end 
of this message.

Check your program logic to make sure that the conversion you asked
for is supported. For the data mapping matrix, see the IBM Informix
JDBC Driver Programmer's Guide.


-79743	Forward fetch only.

This error number is not in use by a current version of IBM Informix JDBC
Driver.


-79744	Transactions not supported.

The user tried to call commit() or rollback() on a database that 
does not support transactions or has tried to set autoCommit to false 
on a nonlogging database.

Verify that the current database has the correct logging mode and
review the program logic.


-79745	Read only mode not supported.

Informix does not support read-only mode.


-79746	No Transaction Isolation on non-logging db's.

Informix does not support setting the transaction isolation level on 
nonlogging databases.


-79747	Invalid transaction isolation level.

If the database server could not complete the rollback, this error occurs. 

For details about why the rollback failed, see the rest of the
SQLException message. This error also occurs if an invalid transaction
level is passed to setTransactionIsolation(). The valid values follow:

   TRANSACTION_READ_UNCOMMITTED
   TRANSACTION_READ_COMMITTED
   TRANSACTION_REPEATABLE_READ
   TRANSACTION_SERIALIZABLE


-79748	Can't lock the connection.

IBM Informix JDBC Driver normally locks the connection object just before 
beginning the data exchange with the database server. The driver 
could not obtain the lock.

Only one thread at a time should use the connection object.


-79749	Number of input values does not match number of question marks.

The number of variables that you set using the PreparedStatement.setXXX()
methods in this statement does not match the number of ? placeholders
that you wrote into the statement.

Locate the text of the statement and verify the number of placeholders,
and then check the calls to PreparedStatement.setXXX().


-79750	Method only for queries.

The Statement.executeQuery(String) and PreparedStatement.executeQuery() 
methods should only be used if the statement is a SELECT statement.

For other statements, use the Statement.execute(String), 
Statement.executeBatch(), Statement.executeUpdate(String), 
Statement.getUpdateCount(), Statement.getResultSet(), 
or PreparedStatement.executeUpdate() method.


-79751	Forward fetch only.

The result set is not set to FETCH_FORWARD.

Call Resultset.setFetchDirection(ResultSet.FETCH_FORWARD) to reset 
the direction.


-79752	Insufficient Blob data

The IBM Informix JDBC Driver encountered an unexpected exception during
the access of BLOB. The IBM Informix JDBC Driver was unable to transfer
the specified number of bytes.


-79753	Out of Blob memory

The IBM Informix JDBC Driver was unable to allocate memory while handling
BLOB data.This error occurs when the JDBC driver fails to allocate memory 
required to perform LOB operations in memory.
You can reset the LOBCACHE or IFX_CODESETLOB properties to perform blob 
operations using temporary files rather than using memory.


-79754	Write Fault

The IBM Informix JDBC Driver encountered an error writing to a temporary
file while handling LOB data.


-79755	Object is null.

The object passed in is null.

Check your program logic to make sure your object reference is valid.


-79756	must start with 'jdbc'.

The first token of the database URL is not the keyword jdbc (case 
insensitive).

Start the URL with jdbc, as in the following example:

   jdbc:informix-sqli://mymachine:1234/mydatabase:user=me:password=secret


-79757	Invalid sub-protocol.

The current valid subprotocol that Informix supports is informix-sqli.

Use the informix-sqli subprotocol.


-79758	Invalid ip address.

The format of the database server's IP address is invalid.

When you connect to an Informix database server with an IP address,
specify the IP address in the correct format. A valid IP address is
a set of four numbers between 0 and 255, separated by dots (.): for
example, 127.0.0.1.


-79759	Invalid port number.

The port number must be a valid four-digit number, as follows:

   jdbc:informix-sqli://mymachine:1234/mydatabase:user=me:password=secret

In this example, 1234 is the port number.


-79760	Invalid database name.

This statement contains the name of a database in some invalid format. 

The maximum length for database names and cursor names depends on the 
version of the database server. In 7.x, 8.x, and 9.1x versions of the 
Informix database server, the maximum length is 18 characters. For 
IBM Informix SE, database names should be no longer than 10 characters 
(fewer in some host operating systems). Both database and cursor names 
must begin with a letter and contain only letters, numbers, and underscore 
characters. In 6.0 and later versions of the database server, database
and cursor names can begin with an underscore. In MS-DOS systems, 
filenames can be a maximum of eight characters plus a three-character 
extension.


-79761	Invalid Property format.

The database URL accepts property values in key=value pairs. For example, 
user=informix:password=informix adds the key=value pairs to the list of 
properties that are passed to the connection object.

Check the syntax of the key=value pair for syntax errors. Make sure
there is only one = sign; that no spaces separate the key, value,
or =; and that key=value pairs are separated by one colon (:), again
with no spaces.


-79762	Attempt to connect to a non 5.x server.

When connecting to a Version 5.x database server, the user must set the 
database URL property USE5SERVER to any non-null value. If a connection 
is then made to a Version 6.0 or later database server, this exception 
is thrown.

Verify that the version of the database server is correct and 
modify the database URL as needed.


-79763	Only CONCUR_READ_ONLY is supported.

IBM Informix JDBC Driver supports only the ResultSet.CONCUR_READ_ONLY method. 

You can only call the Connection.createStatement(int, int), 
Connection.prepareStatement(String, int, int), or 
Connection.CallableStatement(String, int, int) method with a result 
set concurrency value of CONCUR_READ_ONLY.


-79764	Invalid Fetch Direction value.

An invalid fetch direction was passed as an argument to the 
Statement.setFetchDirection() or ResultSet.setFetchDirection() method.

Verify that the argument is one of the valid fetch direction values,
which are FETCH_FORWARD, FETCH_REVERSE, and FETCH_UNKNOWN.


-79765	ResultSet Type is TYPE_FETCH_FORWARD, direction can only be 
FETCH_FORWARD.

The result set type has been set to TYPE_FORWARD_ONLY, but the 
setFetchDirection() method has been called with a value other than 
FETCH_FORWARD.

Verify that the direction specified is consistent with the result type
specified.


-79766	Incorrect Fetch Size value.

The Statement.setFetchSize() method has been called with an invalid 
value.

Verify that the value passed in is greater than 0. If the setMaxRows
method has been called, the fetch size must not exceed that value.


-79767	ResultSet Type is TYPE_FORWARD_ONLY.

A method such as ResultSet.beforeFirst(), ResultSet.afterLast(), 
ResultSet.first(), ResultSet.last(), ResultSet.absolute(), 
ResultSet.relative(), ResultSet.current(), or ResultSet.previous() 
has been called, but the result set type is TYPE_FORWARD_ONLY. 

Call only the ResultSet.next() method if the result set type is 
TYPE_FORWARD_ONLY.


-79768	Incorrect row value.

The ResultSet.absolute(int) method has been called with a value of 0. 
The parameter must be greater than 0.


-79769	A customized type map is required for this data type.

No customized type map exists for an opaque type.

You must register a customized type map to use any opaque types.


-79770	Cannot find the SQLTypeName specified in the SQLData or Struct.

The SQLTypename object you specified in the SQLData or Struct class 
does not exist in the database.

Make sure that the type name is valid.


-79771	Input value is not valid.

The input value is not accepted for this data type.

Make sure this input is valid for this data type.


-79772	No more data to read. Verify your SQLdata class or
getSQLTypeName().

You have asked for more data than is available.

Check your SQLData class to make sure it matches what is in the
database schema. The SQLTypeName object might also be incorrect.


-79773	Invalid arguments.

The IBM Informix JDBC Driver throws this exception whenever a method is called
with an invalid argument. Refer to the JDBC API documentation to ensure that a 
valid argument is being passed to the method that is throwing this exception.


-79774	Unable to create local file.

Large object data read from the database server can be stored either in 
memory or in a local file. If the LOBCACHE value is 0 or the large object 
size is greater than the LOBCACHE value, the large object data from the 
database server is always stored in a file. In this case, if a security 
exception occurs, IBM Informix JDBC Driver makes no attempt to store the 
large object into memory and throws this exception.


-79775	Only TYPE_SCROLL_INSENSITIVE and TYPE_FORWARD_ONLY are
supported.

IBM Informix JDBC Driver only supports a result set type of 
TYPE_SCROLL_INSENSITIVE and TYPE_FORWARD_ONLY.

Use only these values.


-79776	Type requested (<row-data>) does not match row type
information (<row-element>) type.

Row-type information was acquired either through the system catalogs or 
through the supplied row definition. The row data provided does not match 
this row element type.

The type information must be modified, or the data must be provided.


-79777	readObject/writeObject() only supports UDTs, Distincts and
complex types.

The SQLData.writeObject() method was called for an object that is not a 
user-defined, distinct, or complex type.

Verify that you have provided customized type-mapping information.


-79778	Type mapping class must be a java.util.Collection implementation.

You provided a type mapping to override the default for a set, list, or 
multiset data type, but the class does not implement the
java.util.Collection interface.


-79779	To insert null data into a row use java null representation.

The IBM Informix JDBC Driver throws this exception whenever an application
attempts to set row column null in an incorrect manner. Ensure that java null
representation is used instead of an object to set null data.


-79780	Data within a collection must all be the same Java class and
length.

Collection data was of different Java classes or lengths.

Verify that all the objects in the collection are of the same class. 


-79781	Index/Count out of range.

Array.getArray() or Array.getResultSet() was called with index and count
values. Either the index is out of range or the count is too big.

Verify that the number of elements in the array is sufficient for the
index and count values.


-79782	Method can be called only once.

Make sure methods like Statement.getUpdateCount() and
Statement.getResultSet() are called only once per result. 


-79783	Encoding or code set not supported.

The encoding or code set entered in the DB_LOCALE or CLIENT_LOCALE 
variable is not valid.

For valid code sets, see the IBM Informix JDBC Driver Programmer's Guide.


-79784	Locale not supported.

The locale entered in the DB_LOCALE or CLIENT_LOCALE variable is not 
valid.

For valid locales, see the IBM Informix JDBC Driver Programmer's Guide.


-79785	Unable to convert JDBC escape format date string to localized 
date string.

The JDBC escape format for date values must be specified in the format 
{d 'yyyy-mm-dd'}.

Verify that the JDBC escape date format specified is correct. Verify
the DBDATE and GL_DATE settings for the correct date string format if
either of these was set to a value in the connection database URL
string or property list.


-79786	Unable to build a Date object based on localized date string
representation.

The localized date string representation specified in a CHAR, VARCHAR, or 
LVARCHAR column is not correct, and a date object cannot be built based on 
the year, month, and day values.

Verify that the date string representation conforms to the DBDATE or
GL_DATE date formats if either one of these is specified in a connection
database URL string or property list. If neither DBDATE or GL_DATE is
specified but a CLIENT_LOCALE or DB_LOCALE is explicitly set in a
connection database URL string or property list, verify that the 
date string representation conforms to the JDK short default format
(DateFormat.SHORT).


-79787	Blob/Clob object has not been created from a BLOB/CLOB column.

The IBM Informix JDBC Driver throws this exception whenever an application
calls methods that attempt to use smart large object functionality on an
object that does not represent a smart large object.
For example, smart large objects (BLOB or CLOB) support random access to the
data while simple large objects (TEXT or BYTE) do not support random access.
Ensure that the object being passed has been created from a smart large object.


-79788	User name must be specified.

The user name is required to establish a connection with IBM Informix JDBC
Driver.

Make sure you pass in user=your_user_name as part of the database URL
or one of the properties.


-79789	Server does not support GLS variables DB_LOCALE, CLIENT_LOCALE,
or GL_DATE.

These variables can only be used if the database server supports GLS.

Check the documentation for your database server version and omit these
variables if they are not supported.


-79790	Invalid complex type definition string.

The value that the getSQLtypeName() method returns is either null or invalid.

Check the string to verify that it is either a valid named-row name or a
valid row-type definition.


-79791	Invalid object. Cannot be inserted into clob/blob column.

IBM Informix JDBC Driver throws this exception whenever an application supplies
an invalid object to the JDBC driver for insertion in a clob/blob column.
The JDBC driver attempts to determine if the provided java object may be used 
for inserting data in a blob/clob column. If the JDBC driver discovers that the 
object is not compatible, this exception is thrown. Make sure that the 
application is passing the correct type of object when calling 
PreparedStatement::setObject() method.


-79792	Row must contain data.

The Array.getAttributes() or Array.getAttributes(Map) method has
returned 0 elements.

Make sure the method returns a nonzero number.


-79793	Data in array does not match getBaseType() value.

The Array.getArray() or Array.getArray(Map) method returns an array where 
the element type does not match the JDBC base type.


-79794	Row length provided (<row-data>) doesn't match row type
information (<length>).

Data in the row does not match the length in the row-type information. 

You do not have to pad string lengths to match what is in the row 
definition, but lengths for other data types should match.


-79795	Row extended id provided (<row-data>) doesn't match row type 
information (<extended-id>). 

The extended ID of the object in the row does not match the extended 
ID as defined in row-type information.

Either update the row-type information (if you are providing the row
definition) or check the type-mapping information.


-79796	Cannot find UDT, distinct or named row (<type-name>) in database.

The getSQLTypeName() method has returned a name that cannot be 
found in the database.

Verify that the Struct or SQLData object returns the correct
information.


-79797	DBDATE setting must be at least 4 characters and no longer 
than 6 characters.

This error occurs because the DBDATE format string that is passed to 
the database server either has too few characters or too many.

To fix the problem, verify the DBDATE format string with the user 
documentation and make sure that the correct year, month, day, and 
possibly era parts of the DBDATE format string are correctly identified.


-79798	A numerical year expansion is required after 'Y' character in
DBDATE string.

This error occurs because the DBDATE format string has a year designation 
(specified by the character Y), but no character follows the year
designation to denote the numerical year expansion (2 or 4).

To fix the problem, modify the DBDATE format string to include the
numerical year expansion value after the Y character.


-79799	An invalid character is found in the DBDATE string after
the 'Y' character.

This error occurs because the DBDATE format string has a year 
designation (specified by the character Y), but the character that
follows the year designation is not a 2 or 4 (for two-digit years and
four-digit years, respectively).

To fix the problem, modify the DBDATE format string to include the
required numerical year expansion value after the Y character. Only
a 2 or 4 character should immediately follow the Y character designation.


-79800	No 'Y' character is specified before the numerical year
expansion value.

This error occurs because the DBDATE format string has a numerical year 
expansion (2 or 4 to denote two-digit years or four-digit years, 
respectively), but the year designation character (Y) was not found 
immediately before the numerical year expansion character specified.
 
To fix the problem, modify the DBDATE format string to include the 
required Y character immediately before the numerical year expansion 
value requested.


-79801	An invalid character is found in DBDATE format string.

This error occurs because the DBDATE format string has a character that 
is not allowed.

To fix the problem, modify the DBDATE format string to include only
the correct date part designations: year (Y), numerical year expansion
value (2 or 4), month (M), and day (D). Optionally, you can include an
era designation (E) and a default separator character (hyphen, dot, or
slash), which is specified at the end of the DBDATE format string.
For further information on correct DBDATE format string character
designations, refer to the user documentation.


-79802	Not enough tokens are specified in the string representation 
of a date value.

This error occurs because the date string specified does not have the 
minimum number of tokens or separators needed to form a valid date value 
(composed of year, month, and day numerical parts). For example, 
12/15/98 is a valid date string representation with the slash character 
as the separator or token. But 12/1598 is not a valid date string 
representation because there are not enough separators or tokens.
To fix the problem, modify the date string representation to include
a valid format for separating the day, month, and year parts of a date 
value.


-79803	Date string index out of bounds during date format parsing to 
build Date object.

This error occurs because there is not a one-to-one correspondence
between the date string format required by DBDATE or GL_DATE and the
actual date string representation you defined. For example, if GL_DATE
is set to %b %D %y and you specify a character string of 'Oct', there is
a definite mismatch between the format required by GL_DATE and the
actual date string. 

To fix the problem, modify the date string representation of the DBDATE 
or GL_DATE setting so that the date format specified matches one-to-one 
with the required date string representation.


-79804	No more tokens are found in DBDATE string representation of
a date value.

This error occurs because the date string specified does not have any more 
tokens or separators needed to form a valid date value (composed of year, 
month, and day numerical parts) based on the DBDATE format string. For 
example, 12/15/98 is a valid date string representation when DBDATE is 
set to MDY2/. But 12/1598 is not a valid date string representation
because there are not enough separators or tokens.

To fix the problem, modify the date string representation to include a
valid format for separating the day, month, and year parts of a date
value based on the DBDATE format string setting.


-79805	No era designation found in DBDATE/GL_DATE string representation
of date value.

This error occurs because the date string specified does not have a valid 
era designation as required by the DBDATE or GL_DATE format string setting. 
For example, if DBDATE is set to Y2MDE-, but the date string representation 
specified by the user is 98-12-15, this is an error because no era
designation is at the end of the date string value.

To fix the problem, modify the date string representation to include a
valid era designation based on the DBDATE or GL_DATE format string
setting. In this example, a date string representation of 98-12-15 AD
would probably suffice, depending on the locale.


-79806	Numerical day value cannot be determined from date string
based on DBDATE.

This error occurs because the date string specified does not have a valid 
numerical day designation as required by the DBDATE format string setting. 
For example, if DBDATE is set to Y2MD-, but the date string representation 
you specify is 98-12-nn, this is an error, because nn is not a valid 
numerical day representation.

To fix the problem, modify the date string representation to include a
valid numerical day designation (1-31) based on the DBDATE format string
setting.


-79807	Numerical month value cannot be determined from date string
based on DBDATE.

This error occurs because the date string specified does not have a valid 
numerical month designation as required by the DBDATE format string setting. 
For example, if DBDATE is set to Y2MD-, but the date string representation 
you specify is 98-nn-15, this is an error, because nn is not a valid 
numerical month representation.

To fix the problem, modify the date string representation to include a
valid numerical month designation (1-12) based on the DBDATE format
string setting.


-79808	Not enough tokens specified in %D directive representation
of date string.

This error occurs because the date string specified does not have the
correct number of tokens or separators needed to form a valid date value
based on the GL_DATE %D directive (mm/dd/yy format). For example, 12/15/98
is a valid date-string representation based on the GL_DATE %D directive,
but 12/1598 is not a valid date-string representation because there are not
enough separators or tokens.

To fix the problem, modify the date-string representation to include a valid
format for the GL_DATE %D directive.


-79809	Not enough tokens specified in %x directive representation of
date string.

This error occurs because the date string specified does not have the correct
number of tokens or separators needed to form a valid date value based on 
the GL_DATE %x directive (format required is based on day, month, and year 
parts, and the ordering of these parts is determined by the specified
locale). For example, 12/15/98 is a valid date-string representation based
on the GL_DATE %x directive for the U.S. English locale, but 12/1598 is not
a valid date-string representation because there are not enough separators or
tokens.

To fix the problem, modify the date-string representation to include a valid 
format for the GL_DATE %x directive based on the locale.


-79810	This release of JDBC requires to be run with JDK 1.2+.

IBM Informix JDBC Driver, Version 2.x, requires a JDK version of 1.2 or greater.


-79811	Connection without user/password not supported.

You called the getConnection() method for the DataSource object, and the 
user name or the password is null.

Use the user name and password arguments of the getConnection() method or
set these values in the DataSource object.


-79812	User/Password does not match with Datasource.

You called the getConnection(user, passwd) method for the DataSource 
object, and the values you supplied did not match the values already found 
in the data source.


-79813	Cannot call setBindColType() after executeQuery().

IBM Informix JDBC Driver allows an application to specify the
output type of the resultset values so that the server can cast to that
type before returning to the client. However the output type needs to be
specified before the query is executed.This error occurs when an application
attempts to specify the output type after the query has been executed.


-79814	Blob/Clob object is either closed or invalid.

If you retrieve a smart large object using the ResultSet.getBlob() or 
ResultSet.getClob() method or create one using the IfxBlob() or IfxCblob() 
constructor, a smart large object is opened. You can then read from or write 
to the smart large object.

After you execute the IfxBlob.close() method, do not use the
smart-large-object handle for further read/write operations, or this
exception is thrown.


-79815	Not in Insert mode. Need to call moveToInsertRow() first.

You tried to use the insertRow() method, but the mode is not set to Insert.

Call the moveToInsertRow() method before you call insertRow().


-79816	Cannot determine the table name.

The table name in the query either is incorrect or refers to a table that
does not exist.


-79817	No serial, rowid, or primary key specified in the statement.

The updatable scrollable feature works only for tables that have a SERIAL 
column, a primary key, or a row ID specified in the query. If the table does
not have any of these, an updatable scrollable cursor cannot be created.


-79818	Statement concurrency type is not set to CONCUR_UPDATABLE.

You tried to call the insertRow(), updateRow(), or deleteRow() method for a 
statement that has not been created with the CONCUR_UPDATABLE concurrency
type.

Re-create the statement with this type set for the concurrency attribute.


-79819	Still in Insert mode. Call moveToCurrentRow() first.

You cannot call the updateRow() or deleteRow() method while still in Insert 
mode.

Call the moveToCurrentRow() method first.


-79820	Function contains an output parameter.

You have passed in a statement that contains an OUT parameter, but you have 
not used the drivers CallableStatement.registerOutParameter() and getXXX()
methods to process the OUT parameter.


-79821	Name unnecessary for this data type.

The data type you specified does not require a name.

Use another method that does not have a type parameter.

If you have a data type that requires a name (an opaque type or complex 
type), you must call a method that has a parameter for the name, such as the
following methods:

   public void IfxSetNull(int i, int ifxType, String name)

   public void registerOutParameter(int parameterIndex, int sqlType, 
               java.lang.String name);

   public void IfxRegisterOutParameter(int parameterIndex, int ifxType, 
               java.lang.String name);


-79822	OUT parameter has not been registered.

The function you specified using the CallableStatement interface has an OUT
parameter that has not been registered.

Call one of the registerOutParameter() or IfxRegisterOutParameter() methods
to register the OUT parameter type before you call the executeQuery() method.


-79823	IN parameter has not been set.

The function you specified using the CallableStatement interface has an IN 
parameter that has not been set.

Call the setNull() or IfxSetNull() method if you want to set a null IN
parameter. Otherwise, call one of the set methods inherited from the
PreparedStatement interface.


-79824	OUT parameter has not been set.

The function specified using the CallableStatement interface has an OUT 
parameter that has not been set.

Call the setNull() or IfxSetNull() method if you want to set a null OUT
parameter. Otherwise, call one of the set methods inherited from the
PreparedStatement interface.


-79825	Type name is required for this data type.

This data type is an opaque type, distinct type, or complex type, and it 
requires a name.

Use set methods for IN parameters and register methods for OUT parameters
that take a type name as a parameter.


-79826	Ambiguous java.sql.Type. Use IfxRegisterOutParameter().

The SQL type specified either has no mapping to an Informix data type or has 
more than one mapping.

Use one of the IfxRegisterOutParameter() methods to specify the Informix data
type.


-79827	Function does not have an output parameter.

This function does not have an OUT parameter, or this function has an OUT 
parameter whose value the server version does not return. None of the 
methods in the CallableStatement interface apply.

Use the inherited methods from the PreparedStatement interface.


-79828	Function parameter specified is not an OUT parameter.

Informix functions can have only one OUT parameter, and it is always the last
parameter.


-79829	Invalid directive used for the GL_DATE environment variable.

One or more of the directives that the GL_DATE environment variable specifies
is not allowed.

For a list of the valid directives for a GL_DATE format, see the IBM Informix
JDBC Driver Programmer's Guide.


-79830	Insufficient information given for building a Time or Timestamp
Java object.

For correct performance of string to binary conversions for building a
java.sql.Timestamp or java.sql.Time object, all the DATETIME fields must be 
specified for the chosen date-string representation.

For java.sql.Timestamp objects, specify the year, month, day, hour, minute,
and second parts in the string representation.

For java.sql.Time objects, specify the hour, minute, and second parts in the
string representation.


-79831	Exceeded maximum number of connections configured for Connection
Pool Manager.

If you repeatedly connect to a database using a DataSource object without 
closing the connection, connections accumulate. When the total number of 
connections for the DataSource object exceeds the maximum limit (100), this 
error is thrown.


-79832	Netscape Exception! Permission to connect denied by user.

User does not have permission to connect.


-79833	Netscape Exception! Unknown exception while enabling privilege.

This error is raised by the IBM Informix JDBC Driver when it fails to perform
a privileged operation. Check the java security policy file to make sure that
necessary privileges have been granted.


-79834	Distributed transactions (XA) not supported by this server.

This error results when an application attempts to open an XA connection
to a server that does not support distributed transactions. Ensure that the
server that the application is connecting to supports distributed transactions.


-79835	RowSet is set to ReadOnly.

This error results when an application attempts an update/insert or delete
operation on a read-only RowSet. Ensure that the RowSet in use is not read-only.


-79836	Proxy Error: No database connection.

This error is thrown by the Informix HTTP Proxy if you try to communicate 
with the database on an invalid or bad database connection.

Make sure your application has opened a connection to the database. Check your
Web server and database error logs.


-79837	Proxy Error: Input/output error while communicating with the
database.

This error is thrown by the Informix HTTP Proxy if an error is detected while
the proxy is communicating with the database. This error can occur if your 
database server is not accessible.

Make sure your database server is accessible. Check your database and Web
server error logs.


-79838	Cannot execute change permission command (chmod/attrib).

The driver is unable to change the permissions on the client JAR file. This
could happen if your client platform does not support the chmod or attrib
command, or if the user running the JDBC application does not have the
authority to change access permissions on the client JAR file.

Make sure the chmod or attrib command is available for your platform and that
the user running the application has the authority to change access
permissions on the client JAR file.


-79839	Same Jar SQL name already exists in the system catalog.

The JAR filename specified when your application called
UDTManager.createJar() has already been registered in the database server.

Use UDTMetaData.setJarFileSQLName() to specify a different SQL name for the
JAR file.


-79840	Unable to copy JAR file from client to server.

This error occurs when the pathname set using setJarTmpPath() is not writable
by user informix or the user specified in the JDBC connection.

Make sure the pathname is readable and writable by any user.


-79841	Invalid or Inconsistent Tuning Parameters for Connection Pool Datasource

The IBM Informix JDBC Driver encountered an invalid Connection Pool Datasource
property value. Make sure that application is using valid values to set
Connection Pool Datasource properties. Refer to the IBM Informix JDBC 
Programmer's Guide for details of valid values.


-79842	No UDR information was set in UDRMetaData.

Your application called the UDRManager.createUDRs() method without specifying
any UDRs for the database server to register.

Specify UDRs for the database server to register by calling the
UDRMetaData.setUDR() method before calling the UDRManager.createUDRs()
method.


-79843	SQL name of the JAR file was not set in UDR/UDT metaData.

Your application called either the UDTManager.createUDT() method or the
UDRManager.createUDRs() method without specifying an SQL name for the JAR
file that contains the opaque types or UDRs for the database server to
register.

Specify an SQL name for a JAR file by calling the
UDTMetaData.setJarFileSQLName() or UDRMetaData.setJarFileSQLName() method
before you call the UDTManager.createUDT() or UDRManager.createUDRs() method.


-79844	Cannot create/remove UDT/UDR as no database is specified in the
connection.

Your application created a connection without specifying a database.

The following example establishes a connection and opens a database
named "test":

   url = "jdbc:informix-sqli:myhost:1533/test:" +

   "informixserver=myserver;user=rdtest;password=test";

   conn = DriverManager.getConnection(url);

The following example establishes a connection with no database open:

   url = "jdbc:informix-sqli:myhost:1533:" +

   "informixserver=myserver;user=rdtest;password=test";

   conn = DriverManager.getConnection(url);

To resolve this problem, use the following SQL statements after the
connection is established and before you call the createUDT() or createUDRs()
method:

   Statement stmt = conn.createStatement();

   stmt.executeUpdate("create database test ...");

Alternatively, use the following code:

   stmt.executeUpdate("database test");


-79845	JAR file on the client does not exist or cannot be read.

This error occurs for one of the following reasons:

   You failed to create a client JAR file.

   You specified an incorrect pathname for the client JAR file.

   The user running the JDBC application or the user specified in the 
   connection does not have permission to open or read the client JAR file.


-79846	Invalid JAR file name.

The client JAR file your application specified as the second parameter to
UDTManager.createUDT() or UDRManager.createUDRs() must end with the .jar
extension.


-79847	The javac or jar command failed.

The driver encountered compilation errors in one of the following cases:

   Compiling .class files into .jar files, using the jar command, in response
   to a createJar() command from a JDBC application

   Compiling .java files into .class files and .jar files, using the javac
   and jar commands, in response to a call to the UDTManager.createUDTClass()
   method from a JDBC application


-79848	Same UDT SQL name already exists in the system catalog.

Your application called UDTMetaData.setSQLName() and specified a name that is
already in the database server.


-79849	UDT SQL name was not set in UDTMetaData.

Your application failed to call UDTMetaData.setSQLName() to specify an SQL
name for the opaque type.


-79850	UDT field count was not set in UDTMetaData.

Your application called UDTManager.createUDTClass() without first specifying
the number of fields in the internal data structure that defines the opaque
type.

Specify the number of fields by calling UDTMetaData.setFieldCount().


-79851	UDT length was not set in UDTMetaData.

Your application called UDTManager.createUDTClass() without first specifying
a length for the opaque type.

Specify the total length for the opaque type by calling
UDTMetaData.setLength().


-79852	UDT field name or field type was not set in UDTMetaData.

Your application called UDTManager.createUDTClass() without first specifying
a field name and data type for each field in the data structure that defines
the opaque type.

Specify each field name by calling UDTMetaData.setFieldName(). Specify a data
type for each field by calling UDTMetaData.setFieldType().


-79853	No class files to be put into the jar.

Your application called the createJar() method and passed a zero-length
string for the classnames parameter.

The method signature is as follows:

   createJar(UDTMetaData mdata, String[] classnames)


-79854	UDT java class must implement java.sql.SQLData interface.

Your application called UDTManager.createUDT() to create an opaque type whose
class definition does not implement the java.sql.SQLData interface.
UDTManager cannot create an opaque type from a class that does not implement
this interface.


-79855	Specified UDT java class is not found.

Your application called the UDTManager.createUDT() method, but the driver
could not find a class with the name you specified for the third parameter.


-79856	Specified UDT does not exists in the database.

Your application called UDTManager.removeUDT(String sqlname) to remove an
opaque type named sqlname from the database, but no opaque type with that
name exists in the database.


-79857	Invalid support function type.

This error occurs only if your application calls the
UDTMetaData.setSupportUDR() method and passes an integer other
than 0 through 7 for the type parameter. 

Use the constants defined for the support UDR types. For more information,
see the IBM Informix JDBC Driver Programmer's Guide.


-79858	The command to remove file on the client failed.

If UDTMetaData.keepJavaFile() is not called or is set to FALSE, the driver
removes the generated .java file when the UDTManager.createUDTClass() method
executes. This error results if the driver was unable to remove the .java
file.


-79859	Invalid UDT field number.

Your application called a UDTMetaData.setXXX() or UDTMetaData.getXXX() method
and specified a field number that was less than 0 or greater than the value
set through the UDTMetaData.setFieldCount() method.


-79860	Ambiguous java type - cannot use Object/SQLData as method
argument.

One or more parameters of the method to be registered as a UDR is of type 
java.lang.Object or java.sql.SQLData. These Java data types can be mapped to
more than one Informix data type, so the driver is unable to choose a type.

Avoid using java.lang.Object or java.sql.SQLData as a method argument.


-79861	Specified UDT field type has no Java type match.

Your application called UDTMetaData.setFieldType() and specified a data type
that has no 100% match in Java. The following data types are in this
category:

   IfxTypes.IFX_TYPE_BYTE

   IfxTypes.IFX_TYPE_TEXT

   IfxTypes.IFX_TYPE_VARCHAR

   IfxTypes.IFX_TYPE_NVCHAR

   IfxTypes.IFX_TYPE_LVARCHAR

Use IFX_TYPE_CHAR or IFX_TYPE_NCHAR instead; these data types map to
java.lang.String.


-79862	Invalid UDT field type.

Your application called UDTMetaData.setFieldType() and specified an
unsupported data type for the opaque type.

For supported data types, see the IBM Informix JDBC Driver Programmer's Guide.


-79863	UDT field length was not set in UDTMetaData.

Your application specified a field of a character, datetime, or interval
data type by calling UDTMetaData.setFieldType() but failed to specify a field
length.

Call UDTMetaData.setFieldLength() to set a field length.


-79864	Statement length exceeds the maximum.

Your application issued an SQL PREPARE, DECLARE, or EXECUTE IMMEDIATE
statement that is longer than the database server can handle. The limit
differs with different implementations but in most cases is up to 65,535
characters.

Review the program logic to ensure that an error has not caused your
application to present a string that is longer than intended. If the text has
the intended length, revise the application to present fewer statements at a
time.

This error is the same as error -460 that the database server returns.


-79865	'Statement' already closed.

This error occurs when an application attempts to call a method on a
Statement object that has already been closed.
Make sure that the Statement object has not already been closed.


-79868	ResultSet not open, operation not permitted.

This error occurs when an application attempts to call a method on a ResultSet
object that has already been closed.The method can be called only on an open 
ResultSet object. Ensure that the ResultSet object in use has not already been 
implicitly or explicitly closed.


-79877	Invalid parameter value for setting maximum field size.

This error occurs when an application attempts to set a maximum field size
to a negative value. Ensure that application is passing a non-negative integer
when calling the setMaxFieldSize() method on a Statement object.


-79878	ResultSet not open, operation 'next' not permitted. Verify that autocommit is OFF

This message appears when an application attempts to fetch a row using
a ResultSet that has been closed. Make sure that the ResultSet in use has not 
been closed, automatically or explicitly.
A ResultSet object is automatically closed when the Statement object that
generated the ResultSet object is closed, re-executed, or used to retrieve
the next result from a sequence of multiple results.


-79879	An unexpected exception was thrown.  See next exception for details.

This message appears when the JDBC driver encounters an exception that is not
anticipated in the normal course of events.Another exception chained to this 
exception contains further information regarding the unexpected error condition
that occurred.


-79880	Unable to set JDK Version for the Driver.

This message appears when the JDBC driver fails to determine which version 
of JDK is being used to run the java application. JDBC driver attempts to read 
"java.version" system property to find out which JDK version is being used.
Ensure that the JDBC driver JAR has necessary privileges to access the
"java.version" system property.


-79881	Already in local transaction, so cannot start XA transaction.

This error message appears when a JDBC application attempts to start an XA
transaction for a connection that is already associated with a local
transaction. XAResource does not support nested transactions. Before 
attempting to start an XA transaction, the application needs to ensure 
that the connection is not associated with any other transaction.


-79882	Method not supported with this server.

This error message appears when a JDBC client attempts to use functionality
that is not supported by the version of server the JDBC client is connected to.
This functionality is available in later versions of the server.
You can migrate to the latest server version to use this functionality


-79883	Class that implements IfmxPAM interface could not be located or loaded.

This error message appears when the JDBC driver fails to load the class
specified by the IFX_PAM_CLASS connection property.In order to use the PAM 
authentication mechanism, the JDBC application specifies the name of a class 
as a connection property. The JDBC driver failed to load the specified class.
Ensure that the specified class is in the CLASSPATH.


-79884	Class must implement com.informix.jdbc.IfmxPAM interface for PAM functionality.

This message appears when the class whose name has been set as a value of 
the IFX_PAM_CLASS property does not implement the com.informix.jdbc.IfmxPAM
interface.In order to use the PAM authentication mechanism, the JDBC 
application needs to set the IFX_PAM_CLASS connection property.The class 
specified as value of a IFX_PAM_CLASS connection property should Implement 
the com.informix.jdbc.IfmxPAM interface.


-79885	PAM authorization has failed.

This message appears when PAM authorization of a JDBC client fails.
Ensure that your application is responding with a correct response string
to the challenge message received from a PAM-enabled server.


-79886	PAM Response Message Size exceeds maximum size allowed.

Length of the PAM response string set by your application exceeds the
maximum allowed size. The PAM standard defines the maximum size of
a PAM message to be 512 bytes (IfxPAMChallenge.PAM_MAX_MESSAGE_SIZE).
Ensure that a correct PAM response string is supplied by your application.


-79887	Parameter name not found.

A parameter name is not found in the argument names of the specified 
stored procedure. Either one of the parameter names is not valid or 
the stored procedure name is incorrect.

Correct the parameter or procedure name and run the procedure again.

-79888	Parameters are specified by both name and ordinal position for the same CallableStatement object.

A CallableStatement object must be consistent in the way it specifies
parameters; that is, it must only use methods that take parameter names
(String objects), or it must use only methods that take parameter ordinal 
positions (integers).  A CallableStatement object that mixes the two types 
of references throws an SQLException object.

Specify parameters either by name or by ordinal for a particular 
CallableStatement object.

-79889	You cannot set a savepoint, rollback to a savepoint, or release a savepoint when the transaction is in autocommit mode.

The JDBC application attempted to create or reference a savepoint while the
autocommit transaction mode was true for the connection. Before attempting 
to set a savepoint, to rollback to a savepoint, or to release a savepoint, 
the application needs to ensure that autocommit is false. By default, 
autocommit is true in JDBC for connections to any IDS database that 
supports transaction logging.

-79890	You cannot set a savepoint, rollback to a savepoint, or release a savepoint within an XA transaction.

The JDBC application attempted to create or reference a savepoint within an
XA transaction.  Savepoints are not supported in XA transactions.

-79891	The identifier declared for the named savepoint cannot be null.

The JDBC application attempted to set a savepoint by passing NULL as the
the savepoint name. The savepoint name cannot be NULL for the connection.
setSavepoint(string) method.  Use instead the setSavepoint() method if you
want to create an unnamed savepoint.

-79892	The savepoint cannot be null when rolling back to a savepoint or releasing a savepoint.

The JDBC application attempted to rollback to a savepoint or to release a
savepoint by passing a NULL savepoint object. Only savepoint objects
that were created by the setSavepoint() methods can be passed to methods 
that rollback to a savepoint or that release a savepoint.

-79893	The savepoint is not valid in the current connection.

The JDBC application attempted to rollback to a savepoint (or to release a
savepoint) by passing an invalid savepoint object. Before the application
can rollback to a savepoint or release a savepoint, that savepoint must
first be created in the current connection.

-79894	You cannot return the numeric identifier of a named savepoint.

The JDBC application attempted to call getSavepointId() on a named
savepoint. If the savepoint was declared using the setSavepoint(string)
method, then getSavepointId() is not a valid method, and it returns this
exception. Call instead the getSavepointName() method to return the 
name of a savepoint.


-79895	You cannot return the name of an unnamed savepoint.

The JDBC application attempted to call getSavepointName() on an unnamed
savepoint. If the savepoint was  declared using the setSavepoint()
method, then getSavepointName() is not a valid method, and it returns 
this exception. Call instead the getSavepointId() method to return the 
numeric identifier of an unnamed savepoint.


-79896	Incorrect connection array index in the connection pool.

The connection array index is not a valid index. 
This is caused when the application tries to remove a connection from the 
connection pool and the array index is either negative or more than the
maximum connection size for the pool.

This problem is probably caused by the JVM running out of resources.
Check for any relevant operating system messages.


-79999	Message text will be provided in later release.

An error message with detailed message text will be provided in future
releases.


21511	Cannot request more than 1 page for online index build.

The online index build has requested more than 1 page during parallel build.

-21511	Cannot request more than 1 page for online index build.

The online index build has requested more than 1 page during parallel build.


21512	Exclusive access required to pre-image buffer.

Exclusive access required to pre-image buffer. Either a buffer was released
with BF_MODIFY flag, or it was shared or waited for by some other thread.

-21512	Exclusive access required to pre-image buffer.

Exclusive access required to pre-image buffer. Either a buffer was released
with BF_MODIFY flag, or it was shared or waited for by some other thread.


21513	Error in online index operation

Some internal error occurred during the online index operation.

-21513	Error in online index operation

Some internal error occurred during the online index operation.


21514	Error saving keyp after online index build

There was some error when saving new keyp after online index build.

-21514	Error saving keyp after online index build

There was some error when saving new keyp after online index build.


21515	Cannot perform online index build for attached indices

Online index build is allowed only for detached and semi-detached indices.
It is not supported for attached index builds.

-21515	Cannot perform online index build for attached indices

Online index build is allowed only for detached and semi-detached indices.
It is not supported for attached index builds.


21516	Partially read row

This is an internally set error on reading rows for parallel index build.
It is ignored if the parallel build is being performed for an online index

-21516	Partially read row

This is an internally set error on reading rows for parallel index build.
It is ignored if the parallel build is being performed for an online index


21517	Error allocating bufQ for preimage or updator log

Error occurred when allocating buffer queue for preimage or updator logging.

-21517	Error allocating bufQ for preimage or updator log

Error occurred when allocating buffer queue for preimage or updator logging.


21518	Error occurred while starting a thread to process preimage or updator
log.

Error occurred while starting a thread for processing preimage or updator log.

-21518	Error occurred while starting a thread to process preimage or updator
log.

Error occurred while starting a thread for processing preimage or updator log.


21519	No preimage exists

No preimage exists when one was believed to be there.

-21519	No preimage exists

No preimage exists when one was believed to be there.


21520	Bad temp partition physaddr

Bad temp partition physaddr was obtained for preimage or updator log partition.

-21520	Bad temp partition physaddr

Bad temp partition physaddr was obtained for preimage or updator log partition.


21521	More than 1 online index operation on the same table

More than 1 online index operation is not allowed on the same table.

-21521	More than 1 online index operation on the same table

More than 1 online index operation is not allowed on the same table.


21522	No online index build possible

No online index build is possible in the requested scenario.
The index build requires reading rows one by one, or online index builds
are not allowed in this IDS edition.

-21522	No online index build possible

No online index build is possible in the requested scenario.
The index build requires reading rows one by one, or online index builds
are not allowed in this IDS edition.


21523	Cannot proceed with a dirty/modified table data dictionary entry.

DML operations are susceptible to this error when they are referencing an
older copy of the table's data dictionary information.
Most likely, the database server just completed a 'CREATE/DROP INDEX ... '
operation on the table referred to by the DML operation.

This error is accompanied by SQL Error -710.

-21523	Cannot proceed with a dirty/modified table data dictionary entry.

DML operations are susceptible to this error when they are referencing an
older copy of the table's data dictionary information.
Most likely, the database server just completed a 'CREATE/DROP INDEX ... '
operation on the table referred to by the DML operation.

This error is accompanied by SQL Error -710.

21524	Cannot create a temporary operating system file to use in a sort

A sort was being performed that did not use a dbspace partition to store
overflow data. Overflow data is written to a temporary operating system 
file. However, the database server could not create a temporary operating
system file for this sort. Consider setting the PSORT_DBTEMP environment
variable to a secure directory with a minimum of 200 MB of free space. 
If PSORT_DBTEMP is not set then the database server stores overflow data
in the /tmp or $INFORMIXDIR/tmp directory.

-21524	Cannot create a temporary operating system file to use in a sort

A sort was being performed that did not use a dbspace partition to store
overflow data. Overflow data is written to a temporary operating system 
file. However, the database server could not create a temporary operating
system file for this sort. Consider setting the PSORT_DBTEMP environment 
variable to a secure directory with a minimum of 200 MB of free space. 
If PSORT_DBTEMP is not set then the database server stores overflow data
in the /tmp or $INFORMIXDIR/tmp directory.

21525	Cannot write to a temporary operating system file during a sort

A sort was being performed that did not use a dbspace partition to store
overflow data. Overflow data is written to a temporary operating
system file. However, the database server could not write to this 
temporary operating system file, most likely because the file directory
is out of space. The location of this file is in the path specified by
the PSORT_DBTEMP environment variable. If PSORT_DBTEMP is not set then 
the database server puts these temporary files in the /tmp or
$INFORMIXDIR/tmp directory.

-21525	Cannot write to a temporary operating system file during a sort

A sort was being performed that did not use a dbspace partition to store
overflow data. Overflow data is written to a temporary operating
system file. However, the database server could not write to this 
temporary operating system file, most likely because the file directory 
is out of space. The location of this file is in the path specified by
the PSORT_DBTEMP environment variable. If PSORT_DBTEMP is not set then 
the database server puts these temporary files in the /tmp or
$INFORMIXDIR/tmp directory.

21526	This log cannot be dropped, because the next log has an open transaction.

This error occurs when a log is requested to be dropped, but cannot be
because the next log contains the beginning of an open transaction. This log
is required to roll back that transaction, explicitly or implicitly during
long transaction abort. Also, the remaining log space might not be
sufficient to hold the rollback log records.

-21526	This log cannot be dropped, because the next log has an open transaction.

This error occurs when a log is requested to be dropped, but cannot be
because the next log contains the beginning of an open transaction. This log
is required to roll back that transaction, explicitly or implicitly during
long transaction abort. Also, the remaining log space might not be
sufficient to hold the rollback log records.

21527	The partition could not be created because the dbspace is currently unavailable.

The partition could not be created in the specified dbspace because that dbspace
is either disabled, in the process of being restored from a backup, or in the
process of being updated as part of fast recovery.

Enable the dbspace or wait for it to complete its recovery, and then run the
command to create the partition again.

-21527	The partition could not be created because the dbspace is currently unavailable.

The partition could not be created in the specified dbspace because that dbspace
is either disabled, in the process of being restored from a backup, or in the
process of being updated as part of fast recovery.

Enable the dbspace or wait for it to complete its recovery, and then run the
command to create the partition again.

-21542	IBM Global Security Kit (GSKit) library call failed.

A call into the IBM Global Security Kit (GSKit) library failed in an
unexpected manner.


-21543	Encryption key not found.

An encrypted database server instance was unable to find the encryption key
necessary to perform encryption or decryption.


-21544	Attempt to encrypt data that is already encrypted.

An encrypted database server instance unexpectedly encountered data that
appears to be already encrypted while attempting to encrypt data.


-21545	Attempt to decrypt data that is not encrypted.

An encrypted database server instance unexpectedly encountered data that
appears to be already unencrypted while attempting to decrypt data.


-21546	Error registering encryption key.

An encrypted database server instance encountered an error registering
the encryption key with the encryption/decryption subsystem.  This may
indicate an illegal or corrupt encryption key.  The associated data cannot
be encrypted or decrypted.


-21547	Encryption of data failed.

An encrypted database server instance encountered an error encrypting 
data.


-21548	Decryption of data failed.

An encrypted database server instance encountered an error decrypting 
data.


-21549	Unable to initialize encryption cipher.

This error is raised by an encrypted database server instance.  The server
was unable to initialize the encryption cipher due to an internal resource
constraint or because the encryption cipher is unsupported.


-21550	Error creating or accessing the Encryption Key Database.

An encrypted database server instance saves encryption keys in an
Encryption Key Database.  If this error occurs when initializing a new
encrypted server instance (-i and -e options to oninit) or creating an
encrypted instance from an archive restore ("-E on" option to the restore),
the server encountered an error creating the Encryption Key Database.  If
this error occurs when booting an existing server instance, the server
encountered an error accessing the Encryption Key Database.
Refer to the message log for additional information.


-26014	Alter fragment on typed table is not allowed.

Alter fragment on table/index is not supported for typed table. 

-26015	All fragments of the table or index need to be of same pagesize.

This error can occur on creating a fragmented table or index across dbspaces
of different pagesize. It can also occur while performing an ALTER FRAGMENT
on a table or index and the new dbspaces are of different pagesize than the 
dbspaces in the existing fragmentation strategy. For an interval fragmented
table or index, this error can occur if the pagesize of the dbspaces in the
STORE IN clause is different from the pagesize of initial fragment dbspaces.


-26016	Illegal leading byte 0x20 in Index name (index_name).

In some situations, such as when a constraint is defined, the database
server creates indexes internally. These indexes, by convention, always
have a leading ASCII blank (hex 20) as the first byte of their name. To
avoid a conflict, user-created indexes cannot have an ASCII blank (hex 20)
as the first byte of their name. Also, there can be no reference to indexes
with a leading blank in any user-issued statements. This rule is enforced
regardless of the locale. This rule is also enforced regardless of the use
of the DELIMIDENT environment variable.

-26017	External indices are not supported with non-default pagesizes.

Virtual-Index Interface (VII) does not support creating index on non-default
pagesize dbspaces. This error can occur while creating a R-Tree index (which
is part of the server and internally implemented using VII), or when creating
any index which was implemented using VII.


32000	The rollback was caused by an unspecified reason.

This error is same as XA_RBROLLBACK in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_commit context, the Resource Manager rolled back the transaction 
branch for an unspecified reason. The Resource Manager did not commit the 
work done on behalf of the transaction branch. Upon return, the Resource 
Manager has rolled back the branch's work and has released all held resources.
This value can be returned only if TMONEPHASE is set in flags.

In the xa_end context, the Resource Manager marked the transaction branch 
rollback-only for an unspecified reason. The Resource Manager has dissociated 
the transaction branch from the thread of control and has marked rollback-only 
the work performed on behalf of *xid. 

In the xa_prepare context, the Resource Manager rolled back the transaction 
branch for an unspecified reason. The Resource Manager did not prepare to 
commit the work done on behalf of the transaction branch. Upon return, the 
Resource Manager has rolled back the branch's work and has released all held 
resources.

In the xa_rollback context, the Resource Manager rolled back the transaction 
branch for an unspecified reason. The Resource Manager has rolled back the 
transaction branch's work and has released all held resources. These values 
are typically returned when the branch was already marked rollback-only.

In the xa_start context, the Resource Manager marked the transaction branch 
rollback-only for an unspecified reason. The Resource Manager has not 
associated the transaction branch with the thread of control and has 
marked *xid rollback-only.

Also refer to the Resource Manager guide for more details.


-32000	The rollback was caused by an unspecified reason.

This error is same as XA_RBROLLBACK in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_commit context, the Resource Manager rolled back the transaction 
branch for an unspecified reason. The Resource Manager did not commit the 
work done on behalf of the transaction branch. Upon return, the Resource 
Manager has rolled back the branch's work and has released all held resources.
This value can be returned only if TMONEPHASE is set in flags.

In the xa_end context, the Resource Manager marked the transaction branch 
rollback-only for an unspecified reason. The Resource Manager has dissociated 
the transaction branch from the thread of control and has marked rollback-only 
the work performed on behalf of *xid. 

In the xa_prepare context, the Resource Manager rolled back the transaction 
branch for an unspecified reason. The Resource Manager did not prepare to 
commit the work done on behalf of the transaction branch. Upon return, the 
Resource Manager has rolled back the branch's work and has released all held 
resources.

In the xa_rollback context, the Resource Manager rolled back the transaction 
branch for an unspecified reason. The Resource Manager has rolled back the 
transaction branch's work and has released all held resources. These values 
are typically returned when the branch was already marked rollback-only.

In the xa_start context, the Resource Manager marked the transaction branch 
rollback-only for an unspecified reason. The Resource Manager has not 
associated the transaction branch with the thread of control and has 
marked *xid rollback-only.

Also refer to the Resource Manager guide for more details.


32001	The rollback was caused by a communication failure.

This error is same as XA_RBCOMMFAIL in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

A communication failure occurred within the Resource Manager.

In the xa_commit context, the Resource Manager did not commit the work done 
on behalf of the transaction branch. Upon return, the Resource Manager has 
rolled back the branch's work and has released all held resources. This value 
can be returned only if TMONEPHASE is set in flags.

In the xa_end context, the Resource Manager has dissociated the transaction 
branch from the thread of control and has marked rollback-only the work 
performed on behalf of *xid. 

In the xa_prepare context, the Resource Manager did not prepare to commit the 
work done on behalf of the transaction branch. Upon return, the Resource 
Manager has rolled back the branch's work and has released all held resources.

In the xa_rollback context, the Resource Manager has rolled back the 
transaction branch's work and has released all held resources. These values 
are typically returned when the branch was already marked rollback-only.

In the xa_start context, the Resource Manager has not associated the 
transaction branch with the thread of control and has marked *xid rollback-only.

Also refer to the Resource Manager guide for more details.


-32001	The rollback was caused by a communication failure.

This error is same as XA_RBCOMMFAIL in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

A communication failure occurred within the Resource Manager.

In the xa_commit context, the Resource Manager did not commit the work done 
on behalf of the transaction branch. Upon return, the Resource Manager has 
rolled back the branch's work and has released all held resources. This value 
can be returned only if TMONEPHASE is set in flags.

In the xa_end context, the Resource Manager has dissociated the transaction 
branch from the thread of control and has marked rollback-only the work 
performed on behalf of *xid. 

In the xa_prepare context, the Resource Manager did not prepare to commit the 
work done on behalf of the transaction branch. Upon return, the Resource 
Manager has rolled back the branch's work and has released all held resources.

In the xa_rollback context, the Resource Manager has rolled back the 
transaction branch's work and has released all held resources. These values 
are typically returned when the branch was already marked rollback-only.

In the xa_start context, the Resource Manager has not associated the 
transaction branch with the thread of control and has marked *xid rollback-only.

Also refer to the Resource Manager guide for more details.


32002	The rollback was caused by a deadlock was detected.

This error is same as XA_RBDEADLOCK in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

The Resource Manager detected a deadlock.

In the xa_commit context, the Resource Manager did not commit the work done 
on behalf of the transaction branch. Upon return, the Resource Manager has 
rolled back the branch's work and has released all held resources. This value 
can be returned only if TMONEPHASE is set in flags.

In the xa_end context, the Resource Manager has dissociated the transaction 
branch from the thread of control and has marked rollback-only the work 
performed on behalf of *xid. 

In the xa_prepare context, the Resource Manager did not prepare to commit the 
work done on behalf of the transaction branch. Upon return, the Resource 
Manager has rolled back the branch's work and has released all held resources.

In the xa_rollback context, the Resource Manager has rolled back the 
transaction branch's work and has released all held resources. These values 
are typically returned when the branch was already marked rollback-only.

In the xa_start context, the Resource Manager has not associated the 
transaction branch with the thread of control and has marked *xid rollback-only.

Also refer to the Resource Manager guide for more details.


-32002	The rollback was caused by a deadlock was detected.

This error is same as XA_RBDEADLOCK in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

The Resource Manager detected a deadlock.

In the xa_commit context, the Resource Manager did not commit the work done 
on behalf of the transaction branch. Upon return, the Resource Manager has 
rolled back the branch's work and has released all held resources. This value 
can be returned only if TMONEPHASE is set in flags.

In the xa_end context, the Resource Manager has dissociated the transaction 
branch from the thread of control and has marked rollback-only the work 
performed on behalf of *xid. 

In the xa_prepare context, the Resource Manager did not prepare to commit the 
work done on behalf of the transaction branch. Upon return, the Resource 
Manager has rolled back the branch's work and has released all held resources.

In the xa_rollback context, the Resource Manager has rolled back the 
transaction branch's work and has released all held resources. These values 
are typically returned when the branch was already marked rollback-only.

In the xa_start context, the Resource Manager has not associated the 
transaction branch with the thread of control and has marked *xid rollback-only.

Also refer to the Resource Manager guide for more details.


32003	A condition that violates the integrity of the resources was detected.

This error is same as XA_RBINTEGRITY in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

The Resource Manager detected a violation of the integrity of its resources.

In the xa_commit context, the Resource Manager did not commit the work done 
on behalf of the transaction branch. Upon return, the Resource Manager has 
rolled back the branch's work and has released all held resources. This value 
can be returned only if TMONEPHASE is set in flags.

In the xa_end context, the Resource Manager has dissociated the transaction 
branch from the thread of control and has marked rollback-only the work 
performed on behalf of *xid. 

In the xa_prepare context, the Resource Manager did not prepare to commit the 
work done on behalf of the transaction branch. Upon return, the Resource 
Manager has rolled back the branch's work and has released all held resources.

In the xa_rollback context, the Resource Manager has rolled back the 
transaction branch's work and has released all held resources. These values 
are typically returned when the branch was already marked rollback-only.

In the xa_start context, the Resource Manager has not associated the 
transaction branch with the thread of control and has marked *xid rollback-only.

Also refer to the Resource Manager guide for more details.


-32003	A condition that violates the integrity of the resources was detected.

This error is same as XA_RBINTEGRITY in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

The Resource Manager detected a violation of the integrity of its resources.

In the xa_commit context, the Resource Manager did not commit the work done 
on behalf of the transaction branch. Upon return, the Resource Manager has 
rolled back the branch's work and has released all held resources. This value 
can be returned only if TMONEPHASE is set in flags.

In the xa_end context, the Resource Manager has dissociated the transaction 
branch from the thread of control and has marked rollback-only the work 
performed on behalf of *xid. 

In the xa_prepare context, the Resource Manager did not prepare to commit the 
work done on behalf of the transaction branch. Upon return, the Resource 
Manager has rolled back the branch's work and has released all held resources.

In the xa_rollback context, the Resource Manager has rolled back the 
transaction branch's work and has released all held resources. These values 
are typically returned when the branch was already marked rollback-only.

In the xa_start context, the Resource Manager has not associated the 
transaction branch with the thread of control and has marked *xid rollback-only.

Also refer to the Resource Manager guide for more details.


32004	The Resource Manager rolled back the transaction branch for a reason not on the XA rollback errors.

This error is same as XA_RBOTHER in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_commit context, the Resource Manager rolled back the transaction 
branch for a reason not on the XA rollback errors. The Resource Manager 
did not commit the work done on behalf of the transaction branch. Upon return, 
the Resource Manager has rolled back the branch's work and has released all 
held resources. This value can be returned only if TMONEPHASE is set in flags.

In the xa_end context, the Resource Manager marked the transaction branch 
rollback-only for a reason not on the XA rollback errors. The Resource Manager 
has dissociated the transaction branch from the thread of control and has 
marked rollback-only the work performed on behalf of *xid. 

In the xa_prepare context, the Resource Manager rolled back the transaction 
branch for a reason not on the XA rollback errors. The Resource Manager did 
not prepare to commit the work done on behalf of the transaction branch. Upon 
return, the Resource Manager has rolled back the branch's work and has released
all held resources.

In the xa_rollback context, the Resource Manager rolled back the transaction 
branch for a reason not on the XA rollback errors. The Resource Manager has 
rolled back the transaction branch's work and has released all held resources. 
These values are typically returned when the branch was already marked 
rollback-only.

In the xa_start context, the Resource Manager marked the transaction branch 
rollback-only for a reason not on the XA rollback errors. The Resource Manager 
has not associated the transaction branch with the thread of control and has 
marked *xid rollback-only.

Also refer to the Resource Manager guide for more details.


-32004	The Resource Manager rolled back the transaction branch for a reason not on the XA rollback errors.

This error is same as XA_RBOTHER in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_commit context, the Resource Manager rolled back the transaction 
branch for a reason not on the XA rollback errors. The Resource Manager 
did not commit the work done on behalf of the transaction branch. Upon return, 
the Resource Manager has rolled back the branch's work and has released all 
held resources. This value can be returned only if TMONEPHASE is set in flags.

In the xa_end context, the Resource Manager marked the transaction branch 
rollback-only for a reason not on the XA rollback errors. The Resource Manager 
has dissociated the transaction branch from the thread of control and has 
marked rollback-only the work performed on behalf of *xid. 

In the xa_prepare context, the Resource Manager rolled back the transaction 
branch for a reason not on the XA rollback errors. The Resource Manager did 
not prepare to commit the work done on behalf of the transaction branch. Upon 
return, the Resource Manager has rolled back the branch's work and has released
all held resources.

In the xa_rollback context, the Resource Manager rolled back the transaction 
branch for a reason not on the XA rollback errors. The Resource Manager has 
rolled back the transaction branch's work and has released all held resources. 
These values are typically returned when the branch was already marked 
rollback-only.

In the xa_start context, the Resource Manager marked the transaction branch 
rollback-only for a reason not on the XA rollback errors. The Resource Manager 
has not associated the transaction branch with the thread of control and has 
marked *xid rollback-only.

Also refer to the Resource Manager guide for more details.


32005	A protocol error occurred in the Resource Manager.

This error is same as XA_RBPROTO in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

A protocol error occurred within the Resource Manager.

In the xa_commit context, the Resource Manager did not commit the work done 
on behalf of the transaction branch. Upon return, the Resource Manager has 
rolled back the branch's work and has released all held resources. This value 
can be returned only if TMONEPHASE is set in flags.

In the xa_end context, the Resource Manager has dissociated the transaction 
branch from the thread of control and has marked rollback-only the work 
performed on behalf of *xid. 

In the xa_prepare context, the Resource Manager did not prepare to commit the 
work done on behalf of the transaction branch. Upon return, the Resource 
Manager has rolled back the branch's work and has released all held resources.

In the xa_rollback context, the Resource Manager has rolled back the 
transaction branch's work and has released all held resources. These values 
are typically returned when the branch was already marked rollback-only.

In the xa_start context, the Resource Manager has not associated the 
transaction branch with the thread of control and has marked *xid rollback-only.

Also refer to the Resource Manager guide for more details.


-32005	A protocol error occurred in the Resource Manager.

This error is same as XA_RBPROTO in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

A protocol error occurred within the Resource Manager.

In the xa_commit context, the Resource Manager did not commit the work done 
on behalf of the transaction branch. Upon return, the Resource Manager has 
rolled back the branch's work and has released all held resources. This value 
can be returned only if TMONEPHASE is set in flags.

In the xa_end context, the Resource Manager has dissociated the transaction 
branch from the thread of control and has marked rollback-only the work 
performed on behalf of *xid. 

In the xa_prepare context, the Resource Manager did not prepare to commit the 
work done on behalf of the transaction branch. Upon return, the Resource 
Manager has rolled back the branch's work and has released all held resources.

In the xa_rollback context, the Resource Manager has rolled back the 
transaction branch's work and has released all held resources. These values 
are typically returned when the branch was already marked rollback-only.

In the xa_start context, the Resource Manager has not associated the 
transaction branch with the thread of control and has marked *xid rollback-only.

Also refer to the Resource Manager guide for more details.


32006	The rollback was caused by a transaction branch took too long.

This error is same as XA_RBTIMEOUT in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

The work represented by this transaction branch took too long.

In the xa_commit context, the Resource Manager did not commit the work done 
on behalf of the transaction branch. Upon return, the Resource Manager has 
rolled back the branch's work and has released all held resources. This value 
can be returned only if TMONEPHASE is set in flags.

In the xa_end context, the Resource Manager has dissociated the transaction 
branch from the thread of control and has marked rollback-only the work 
performed on behalf of *xid. 

In the xa_prepare context, the Resource Manager did not prepare to commit the 
work done on behalf of the transaction branch. Upon return, the Resource 
Manager has rolled back the branch's work and has released all held resources.

In the xa_rollback context, the Resource Manager has rolled back the 
transaction branch's work and has released all held resources. These values 
are typically returned when the branch was already marked rollback-only.

In the xa_start context, the Resource Manager has not associated the 
transaction branch with the thread of control and has marked *xid rollback-only.

Also refer to the Resource Manager guide for more details.


-32006	The rollback was caused by a transaction branch took too long.

This error is same as XA_RBTIMEOUT in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

The work represented by this transaction branch took too long.

In the xa_commit context, the Resource Manager did not commit the work done 
on behalf of the transaction branch. Upon return, the Resource Manager has 
rolled back the branch's work and has released all held resources. This value 
can be returned only if TMONEPHASE is set in flags.

In the xa_end context, the Resource Manager has dissociated the transaction 
branch from the thread of control and has marked rollback-only the work 
performed on behalf of *xid. 

In the xa_prepare context, the Resource Manager did not prepare to commit the 
work done on behalf of the transaction branch. Upon return, the Resource 
Manager has rolled back the branch's work and has released all held resources.

In the xa_rollback context, the Resource Manager has rolled back the 
transaction branch's work and has released all held resources. These values 
are typically returned when the branch was already marked rollback-only.

In the xa_start context, the Resource Manager has not associated the 
transaction branch with the thread of control and has marked *xid rollback-only.

Also refer to the Resource Manager guide for more details.


32007	The Resource Manager detected transient error.

This error is same as XA_RBTRANSIENT in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

The Resource Manager has detected a transient error.

In the xa_commit context, the Resource Manager did not commit the work done 
on behalf of the transaction branch. Upon return, the Resource Manager has 
rolled back the branch's work and has released all held resources. This value 
can be returned only if TMONEPHASE is set in flags.

In the xa_end context, the Resource Manager has dissociated the transaction 
branch from the thread of control and has marked rollback-only the work 
performed on behalf of *xid. 

In the xa_prepare context, the Resource Manager did not prepare to commit the 
work done on behalf of the transaction branch. Upon return, the Resource 
Manager has rolled back the branch's work and has released all held resources.

In the xa_rollback context, the Resource Manager has rolled back the 
transaction branch's work and has released all held resources. These values 
are typically returned when the branch was already marked rollback-only.

In the xa_start context, the Resource Manager has not associated the 
transaction branch with the thread of control and has marked *xid rollback-only.

Also refer to the Resource Manager guide for more details.


-32007	The Resource Manager detected transient error.

This error is same as XA_RBTRANSIENT in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

The Resource Manager detected a transient error.

In the xa_commit context, the Resource Manager did not commit the work done 
on behalf of the transaction branch. Upon return, the Resource Manager has 
rolled back the branch's work and has released all held resources. This value 
can be returned only if TMONEPHASE is set in flags.

In the xa_end context, the Resource Manager has dissociated the transaction 
branch from the thread of control and has marked rollback-only the work 
performed on behalf of *xid. 

In the xa_prepare context, the Resource Manager did not prepare to commit the 
work done on behalf of the transaction branch. Upon return, the Resource 
Manager has rolled back the branch's work and has released all held resources.

In the xa_rollback context, the Resource Manager has rolled back the 
transaction branch's work and has released all held resources. These values 
are typically returned when the branch was already marked rollback-only.

In the xa_start context, the Resource Manager has not associated the 
transaction branch with the thread of control and has marked *xid rollback-only.

Also refer to the Resource Manager guide for more details.


32009	Routine returned with no effect and may  be re-issued.

This error is same as XA_RETRY in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_commit context, the Resource Manager is not able to commit the 
transaction branch at this time.  This value can be returned when a blocking 
condition exists and TMNOWAIT was set. Note, however, that this value can 
also be returned even when TMNOWAIT is not set (for example, if the necessary 
stable storage is currently unavailable). This value cannot be returned if 
TMONEPHASE is set in flags. All resources held on behalf of *xid remain in a 
prepared state until commitment is possible. The Transaction Manager should 
re-issue xa_commit at a later time.

In the xa_complete context, TMNOWAIT was set in flags and no asynchronous 
operation has completed.

In the xa_start context, TMNOWAIT was set in flags and a blocking condition 
exists.

Also refer to the Resource Manager guide for more details.


-32009	Routine returned with no effect and may  be re-issued.

This error is same as XA_RETRY in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_commit context, the Resource Manager is not able to commit the 
transaction branch at this time.  This value can be returned when a blocking 
condition exists and TMNOWAIT was set. Note, however, that this value can 
also be returned even when TMNOWAIT is not set (for example, if the necessary 
stable storage is currently unavailable). This value cannot be returned if 
TMONEPHASE is set in flags. All resources held on behalf of *xid remain in a 
prepared state until commitment is possible. The Transaction Manager should 
re-issue xa_commit at a later time.

In the xa_complete context, TMNOWAIT was set in flags and no asynchronous 
operation has completed.

In the xa_start context, TMNOWAIT was set in flags and a blocking condition 
exists.

Also refer to the Resource Manager guide for more details.


32010	The transaction branch has been heuristically committed and rolled back.

This error is same as XA_HEURMIX in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_commit context, due to a heuristic decision, the work done on 
behalf of the specified transaction branch was partially committed and 
partially rolled back.

In the xa_rollback context, due to a heuristic decision, the work done on 
behalf of the specified transaction branch was partially committed and 
partially rolled back. A Resource Manager can return this value only if it 
has successfully prepared *xid.

Also refer to the Resource Manager guide for more details.


-32010	The transaction branch has been heuristically committed and rolled back.

This error is same as XA_HEURMIX in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_commit context, due to a heuristic decision, the work done on 
behalf of the specified transaction branch was partially committed and 
partially rolled back.

In the xa_rollback context, due to a heuristic decision, the work done on 
behalf of the specified transaction branch was partially committed and 
partially rolled back. A Resource Manager can return this value only if it 
has successfully prepared *xid.

Also refer to the Resource Manager guide for more details.


32011	The transaction branch has been heuristically rolled back.

This error is same as XA_HEURRB in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_commit context, due to a heuristic decision, the work done on 
behalf of the specified transaction branch was rolled back.

In the xa_rollback context, due to a heuristic decision, the work done on 
behalf of the specified transaction branch was rolled back. A Resource 
Manager can return this value only if it has successfully prepared *xid.

Also refer to the Resource Manager guide for more details.


-32011	The transaction branch has been heuristically rolled back.

This error is same as XA_HEURRB in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_commit context, due to a heuristic decision, the work done on 
behalf of the specified transaction branch was rolled back.

In the xa_rollback context, due to a heuristic decision, the work done on 
behalf of the specified transaction branch was rolled back. A Resource 
Manager can return this value only if it has successfully prepared *xid.

Also refer to the Resource Manager guide for more details.


32012	The transaction branch has been heuristically committed.

This error is same as XA_HEURCOM in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_commit context, due to a heuristic decision, the work done on 
behalf of the specified transaction branch was committed.

In the xa_rollback context, due to a heuristic decision, the work done on 
behalf of the specified transaction branch was committed. A Resource 
Manager can return this value only if it has successfully prepared *xid.

Also refer to the Resource Manager guide for more details.


-32012	The transaction branch has been heuristically committed.

This error is same as XA_HEURCOM in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_commit context, due to a heuristic decision, the work done on 
behalf of the specified transaction branch was committed.

In the xa_rollback context, due to a heuristic decision, the work done on 
behalf of the specified transaction branch was committed. A Resource 
Manager can return this value only if it has successfully prepared *xid.

Also refer to the Resource Manager guide for more details.


32013	The transaction branch might have been heuristically completed.

This error is same as XA_HEURHAZ in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_commit context, due to some failure, the work done on behalf of 
the specified transaction branch might have been heuristically completed.

In the xa_rollback context, due to some failure, the work done on behalf of 
the specified transaction branch might have been heuristically completed. A 
Resource Manager can return this value only if it has successfully prepared 
*xid.

Also refer to the Resource Manager guide for more details.


-32013	The transaction branch might have been heuristically completed.

This error is same as XA_HEURHAZ in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_commit context, due to some failure, the work done on behalf of 
the specified transaction branch might have been heuristically completed.

In the xa_rollback context, due to some failure, the work done on behalf of 
the specified transaction branch might have been heuristically completed. A 
Resource Manager can return this value only if it has successfully prepared 
*xid.

Also refer to the Resource Manager guide for more details.


32014	Resumption must occur where suspension occurred.

This error is same as XA_NOMIGRATE in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_end context, the Resource Manager was unable to prepare the 
transaction context for migration.  However, the Resource Manager has 
suspended the association. The Transaction Manager can resume the 
association only in the current thread. This code can be returned only 
when both TMSUSPEND and TMMIGRATE are set in flags. A Resource Manager 
that sets TMNOMIGRATE in the flags element of its xa_switch_t structure 
need not return [XA_NOMIGRATE].

Also refer to the Resource Manager guide for more details.


-32014	Resumption must occur where suspension occurred.

This error is same as XA_NOMIGRATE in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_end context, the Resource Manager was unable to prepare the 
transaction context for migration.  However, the Resource Manager has 
suspended the association. The Transaction Manager can resume the 
association only in the current thread. This code can be returned only 
when both TMSUSPEND and TMMIGRATE are set in flags. A Resource Manager 
that sets TMNOMIGRATE in the flags element of its xa_switch_t structure 
need not return [XA_NOMIGRATE].

Also refer to the Resource Manager guide for more details.


32015	Asynchronous operation already outstanding.

This error is same as XAER_ASYNC in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

TMASYNC was set in flags, and either the maximum number of outstanding
asynchronous operations has been exceeded, or TMUSEASYNC is not set in the
flags element of the Resource Manager's xa_switch_t structure.

Also refer to the Resource Manager guide for more details.


-32015	Asynchronous operation already outstanding.

This error is same as XAER_ASYNC in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

TMASYNC was set in flags, and either the maximum number of outstanding
asynchronous operations has been exceeded, or TMUSEASYNC is not set in the
flags element of the Resource Manager's xa_switch_t structure.

Also refer to the Resource Manager guide for more details.


32016	An Resource Manager error occurred in the transaction branch.

This error is same as XAER_RMERR in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_close context, an error occurred when closing the resource.

In the xa_commit context, an error occurred in committing the work performed 
on behalf of the transaction branch and the branch's work has been rolled back.
Note that returning this error signals a catastrophic event to a Transaction 
Manager because other Resource Managers might successfully commit their work on 
behalf of this branch. This error should be returned only when a Resource 
Manager concludes that it can never commit the branch and that it cannot hold 
the branch's resources in a prepared state. Otherwise, [XA_RETRY] should be 
returned.

In the xa_end context, an error occurred in dissociating the transaction 
branch from the thread of control.

In the xa_forget context, an error occurred in the Resource Manager and the 
Resource Manager has not forgotten the transaction branch.

In the xa_open context, an error occurred when opening the resource.

In the xa_prepare context, the Resource Manager encountered an error in 
preparing to commit the transaction branch's work. The specified XID might or 
might not have been prepared.

In the xa_recover context, an error occurred in determining the XIDs to return.

In the xa_rollback context, an error occurred in rolling back the transaction 
branch. The Resource Manager is free to forget about the branch when returning 
this error so long as all accessing threads of control have been notified of 
the branch's state.

In the xa_start context, an error occurred in associating the transaction 
branch with the thread of control.

Also refer to the Resource Manager guide for more details.


-32016	An Resource Manager error occurred in the transaction branch.

This error is same as XAER_RMERR in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_close context, an error occurred when closing the resource.

In the xa_commit context, an error occurred in committing the work performed 
on behalf of the transaction branch and the branch's work has been rolled back.
Note that returning this error signals a catastrophic event to a Transaction 
Manager because other Resource Managers might successfully commit their work on 
behalf of this branch. This error should be returned only when a Resource 
Manager concludes that it can never commit the branch and that it cannot hold 
the branch's resources in a prepared state. Otherwise, [XA_RETRY] should be 
returned.

In the xa_end context, an error occurred in dissociating the transaction 
branch from the thread of control.

In the xa_forget context, an error occurred in the Resource Manager and the 
Resource Manager has not forgotten the transaction branch.

In the xa_open context, An error occurred when opening the resource.

In the xa_prepare context, the Resource Manager encountered an error in 
preparing to commit the transaction branch's work. The specified XID might or 
might not have been prepared.

In the xa_recover context, an error occurred in determining the XIDs to return.

In the xa_rollback context, an error occurred in rolling back the transaction 
branch. The Resource Manager is free to forget about the branch when returning 
this error so long as all accessing threads of control have been notified of 
the branch's state.

In the xa_start context, an error occurred in associating the transaction 
branch with the thread of control.

Also refer to the Resource Manager guide for more details.


32017	The XID is not valid.

This error is same as XAER_NOTA in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_commit, xa_end, xa_prepare, xa_rollback context, the specified XID is
not known by the Resource Manager.

In the xa_forget context, the specified XID is not known by the Resource 
Manager as a heuristically completed XID.
 
In the xa_start context, either TMRESUME or TMJOIN was set in flags, and the 
specified XID is not known by the Resource Manager.

Also refer to the Resource Manager guide for more details.


-32017	The XID is not valid.

This error is same as XAER_NOTA in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_commit, xa_end, xa_prepare, xa_rollback context, the specified XID is
not known by the Resource Manager.

In the xa_forget context, the specified XID is not known by the Resource 
Manager as a heuristically completed XID.
 
In the xa_start context, either TMRESUME or TMJOIN was set in flags, and the 
specified XID is not known by the Resource Manager.

Also refer to the Resource Manager guide for more details.


32018	Invalid arguments were given.

This error is same as XAER_INVAL in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_close, xa_commit, xa_complete, xa_end, xa_forget, xa_open, 
xa_prepare, xa_rollback, or xa_start context, invalid arguments were specified.

In the xa_recover context, the pointer xids is NULL and count is greater 
than 0, count is negative, or an invalid flags was specified, or the thread of 
control does not have a recovery scan open and did not specify TMSTARTRSCAN 
in flags.

Also refer to the Resource Manager guide for more details.


-32018	Invalid arguments were given.

This error is same as XAER_INVAL in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_close, xa_commit, xa_complete, xa_end, xa_forget, xa_open, 
xa_prepare, xa_rollback, or xa_start context, invalid arguments were specified.

In the xa_recover context, the pointer xids is NULL and count is greater 
than 0, count is negative, or an invalid flags was specified, or the thread of 
control does not have a recovery scan open and did not specify TMSTARTRSCAN 
in flags.

Also refer to the Resource Manager guide for more details.


32019	Routine invoked in improper context.

This error is same as XAER_PROTO in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

The routine was invoked in an improper context.

Also refer to the Resource Manager guide for more details.


-32019	Routine invoked in improper context.

This error is same as XAER_PROTO in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

The routine was invoked in an improper context.

Also refer to the Resource Manager guide for more details.


32020	Resource Manager unavailable.

This error is same as XAER_RMFAIL in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_commit, xa_end, xa_forget, xa_recover, xa_rollback, xa_start context,
An error occurred that makes the Resource Manager unavailable.

In the xa_prepare context, an error occurred that makes the Resource Manager 
unavailable. The specified XID might or might not have been prepared.

Also refer to the Resource Manager guide for more details.


-32020	Resource Manager unavailable.

This error is same as XAER_RMFAIL in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_commit, xa_end, xa_forget, xa_recover, xa_rollback, xa_start context,
An error occurred that makes the Resource Manager unavailable.

In the xa_prepare context, an error occurred that makes the Resource Manager 
unavailable. The specified XID might or might not have been prepared.

Also refer to the Resource Manager guide for more details.


32021	The XID already exists.

This error is same as XAER_DUPID in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_start context, if neither TMRESUME nor TMJOIN was set in flags 
(indicating the initial use of *xid) and the XID already exists within the 
Resource Manager, the Resource Manager must return [XAER_DUPID]. The Resource 
Manager failed to associate the transaction branch with the thread of control.

Also refer to the Resource Manager guide for more details.


-32021	The XID already exists.

This error is same as XAER_DUPID in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_start context, if neither TMRESUME nor TMJOIN was set in flags 
(indicating the initial use of *xid) and the XID already exists within the 
Resource Manager, the Resource Manager must return [XAER_DUPID]. The Resource 
Manager failed to associate the transaction branch with the thread of control.

Also refer to the Resource Manager guide for more details.


32022	Resource Manager doing work outside global transaction.

This error is same as XAER_OUTSIDE in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_start context, the Resource Manager is doing work outside any global 
transaction on behalf of the application.

Also refer to the Resource Manager guide for more details.


-32022	Resource Manager doing work outside global transaction.

This error is same as XAER_OUTSIDE in the X/OPEN XA Specification Standard. 
For more information, refer to the "Distributed Transaction Processing: 
The XA Specification". 

According to the X/OPEN XA Specification Standard :

In the xa_start context, the Resource Manager is doing work outside any global 
transaction on behalf of the application.

Also refer to the Resource Manager guide for more details.


32023	Error in executing an xadatasource purpose routine execution sequence.

An error occurred when an attempt was made to execute an xadatasource purpose
routine. Try the statement again.


-32023	Error in executing an xadatasource purpose routine execution sequence.

An error occurred when an attempt was made to execute an xadatasource purpose
routine. Try the statement again.


32024	Error indicated by an xadatasource purpose routine.

An xadatasource purpose routine returned MI_ERROR.


-32024	Error indicated by an xadatasource purpose routine.

An xadatasource purpose routine returned MI_ERROR.


32025	Improper return value from xadatasource purpose routine.

An xadatasource purpose routine returned a value that is not valid. Possibly a
bug exists in the xadatasource purpose routine.


-32025	Improper return value from xadatasource purpose routine.

An xadatasource purpose routine returned a value that is not valid. Possibly a
bug exists in the xadatasource purpose routine.


-26018	Table %s has a referential key constraint and is not empty.

The table being truncated has a unique or primary key that is referenced by
the above table. 


-26019	Purpose function am_truncate not defined for table or index.

The am_truncate purpose function is not defined for the VTI table or 
a VII index on the table being truncated.


-26020	Truncating a table with delete trigger requires ALTER privilege.

You cannot truncate a table that has delete triggers unless you have ALTER
privilege. A user with DELETE privilege can truncate such a table only
if there are no delete triggers active.


-26021	No operations allowed after truncate or online alter fragment in a transaction.

The only allowed operations in a transaction after a truncate or online alter
fragment are COMMIT and ROLLBACK.


-26022	EXTERNAL NAME too long.

The EXTERNAL NAME clause of the CREATE FUNCTION or CREATE PROCEDURE 
cannot contain more than 255 characters.  

26023	Cannot perform rename operation while non-mastered or strict mastered -- column and table names must match along with data types across all replicate participants -- replicates are defined for it

Rename table and column operations are allowed only on Enterprise Replication 
tables that are defined with non-strict mastered replicates. 
With non-strict mastered replicates, column names can be different but 
column data types must match. Non-strict mastered replicates can be defined 
with --name=n attribute of 'cdr define repl' or with 'cdr modify repl' commands.
For more information about non-strict mastered replicates, mastered replicates
and non-mastered replicates see Enterprise Replication Manual.

-26023	Cannot perform rename operation while non-mastered or strict mastered -- column and table names must match along with data types across all replicate participants -- replicates are defined for it

Rename table and column operations are allowed only on Enterprise Replication 
tables that are defined with non-strict mastered replicates. 
With non-strict mastered replicates, column names can be different but 
column data types must match. Non-strict mastered replicates can be defined 
with --name=n attribute of 'cdr define repl' or with 'cdr modify repl' commands.
For more information about non-strict mastered replicates, mastered replicates
and non-mastered replicates see Enterprise Replication Manual.


-26024	The sysdbopen and sysdbclose routines cannot have arguments or return values.

The SPL routines sysdbopen and sysdbclose must be defined without any arguments
or return values.

-26025	SELECT FROM INSERT syntax is disallowed in this context.

SELECT FROM INSERT syntax is not allowed in the following cases
    * SELECT statement is part of join or is nested as a subquery.
    * SELECT statement is part of CREATE VIEW statement.
    * SELECT statement appears as a subquery either in query predicates or projection
      list.
    * SELECT statement appears as part of INSERT INTO SELECT statement.


-26026	Remote table reference in INSERT statement disallowed in SELECT FROM INSERT syntax.

SELECT FROM INSERT statement does not support remote object references in the 
INSERT part of statement. Please rewrite the query so that there are no remote 
object references in the INSERT part of the statement.

-26027	Label label-name specified on  a GOTO statement is not valid.

An undefined or invalid label is used with  the GOTO statement.
The GOTO label must be defined within the same procedure.
Check the label-name for correct spelling.

-26028	Label label-name must be unique within an SPL procedure.

The scope of the label-name is a procedure, so the label names must be unique
between the CREATE [PROCEDURE|FUNCTION] and END [PROCEDURE|FUNCTION] keywords.

-26029	GOTO cannot be used, and labels cannot be defined, within an exception h
andler.

Rewrite the exception handler block so that it includes no GOTO statements.

Example of error:

        CREATE PROCEDURE testproc()
        BEGIN
        ON EXCEPTION IN (-206)
        <<ex_label>>                             -- error
        CREATE TABLE emp_list (lname CHAR(15));
        GOTO ex_label;                           -- error
        INSERT INTO emp_list VALUES ('john');
        END EXCEPTION WITH RESUME
        INSERT INTO emp_list VALUES ('john');
        END
        ...

        ...
        END PROCEDURE;

-26030	Invalid usage of EXIT or CONTINUE statement, which should be within a st
atement loop.

Within the SPL routine,EXIT and CONTINUE statements must be placed within
a WHILE, FOR or LOOP statement loop.

-26031	END LOOP label label-name doesn't not match with the LOOP label label-na
me.

The LOOP lable-name and END LOOP label-name do not match.
Check the label-names for correct spelling.

-26032	Invalid label label-name used with EXIT WHEN clause.

The label is not defined or is not a valid label for the LOOP statement.
The EXIT WHEN label must be defined within a scope that the LOOP
statement can reach.  Check the label-names for correct spelling.


-26041	Invalid values specified for the %s environment variable.

An invalid value was provided for the environment variable. Please check your user documentation, and provide the correct value, and try again.

-26042	Function (explain_sql) failed in %s.

In the explain_sql UDR, the execution failed in the specified function.

-26043	Function (explain_sql): The required parameter %s is NULL

The required parameter is missing when you execute the explain_sql UDR.

-26044	Function (explain_sql): An error occurred during the reading of the parameter %s.  

An error occurred during the reading of the parameter.

-26045	Warning: Function (explain_sql) %s and the current support version does not match.

The provided major_version or minor_version of explain_sql does not match the current server version. Please check your client version and make the necessary adjustment.
 
-26046	Warning: Function (explain_sql): The requested locale was not provided. The default locale %s will be used. 

Because a locale was not provided in explain_sql UDR, the default locale will be used in the query.

-26047	Function (explain_sql) does not support the query provided in (%s). Only a single select statement is supported.

Explain_sql only supports a single SELECT statement. Please change your query.

-26048	Function (explain_sql) has an invalid parameter %s parameter.

The value you provided for the parameter is invalid.

-26049	Function (explain_sql) has invalid encoding (%s) for xml_input.

Xml_input should be in UTF-8 encoding.

-26050	Function (explain_sql) does not support a query with host variables.

Explain_sql only supports a single SELECT statement without any host variables. Please change your query.

-84500	Attempt to update a stale version of a row

An attempt was made to update a stale copy of a row.  This caused a
optimistic concurrancy failure.

This error can occur when using updates on secondary and the current
verstion of the row has not yet been replicated to the secondary on which
the client application is connected.

-84501	Connection between secondary and primary has been lost

The connection between the secondary and the primary has been lost.  This
will prevent the updates on secondary until connectivity has been
reestablished.

-26036	Cannot use the WITH VERCOLS clause because the table already has version columns.

The table already has version columns created by the WITH VERCOLS clause. You cannot add additional version columns.

-26037	Cannot drop VERCOLS when table does not have version columns.

The table that you were attempting to alter does not have VERCOLS columns.

-26051	EXECUTE IMMEDIATE and PREPARE cannot take NULL statement

Expression that specifies SQL statement text in either EXECUTE IMMEDIATE 
or PREPARE evaluates to a NULL value. Make sure to pass the text of a
valid SQL statement to these statements.

This error can be prevented by testing the expression passed to either
EXECUTE IMMEDIATE or PREPARE for a NULL value:

    Example (1)

        DEFINE qStr CHAR(255);
        ...
        LET qStr = <expression>;

        -- validate if <expression> above evalutes to NULL
        IF (qStr IS NOT NULL) THEN
            EXECUTE IMMEDIATE qStr;
        ELSE
            ...
        END IF;

    Example (2)

        DEFINE def_lc1 INTEGER;
        DEFINE lc1 INTEGER;

        LET def_lc1 = 10;

        SELECT c1 INTO lc1 FROM t1 WHERE c2 = 10;

        -- validate if query above returns a NULL value to lc1
        -- if it is NULL then logic below should use default 
        -- lc1 (def_lc1) to avoid concatenation that returns NULL

        IF (lc1 IS NOT NULL) THEN
            PREPARE stmtId FROM "select c2[" || lc1 || "] FROM t2";
        ELSE
            PREPARE stmtId FROM "select c2[" || def_lc1 || "] FROM t2";
        END IF;

-26052	OPEN attempted on already opened cursor (%s)

This OPEN statement referenced a cursor that has already been opened. Review
the program logic, and CLOSE the cursor before attempting to reopen it.

Example below makes sure to CLOSE the cursor before trying to OPEN the
same cursor with different input parameter values:

    Example

        OPEN c_emp USING lgivenname;
        ...
        CLOSE c_emp;
        OPEN c_emp USING lfamilyname;
        ...
        CLOSE c_emp;

-26053	FETCH or CLOSE cannot reference cursor (%s) that is not opened

The FETCH or CLOSE statement attempted to use an unopened cursor.
Make sure to OPEN the cursor before attempting FETCH or CLOSE that 
cursor.

    Example

        OPEN c_cust USING lfname, llname;
        ...
        FETCH c_cust INTO lcustomer_num, lcompany;
        ...
        CLOSE c_cust;

-26054	Cannot FREE a cursor (%s) that is in use

This FREE statement attempts to free a cursor that is still in use 
(i.e. not closed yet). Make sure to close this cursor by using the
CLOSE statement before a FREE attempt.

    Example

        DECLARE c_cust CURSOR FOR s_cust;

        OPEN c_cust USING lfname, llname;
        FETCH c_cust INTO lcustomer_num, lcompany;
        CLOSE c_cust;

        FREE c_cust;

-26055	Either statement-id or cursor name (%s) is not defined

This error occurs when either statement-id or a cursor name is not
defined before attempting to use it. Make sure to either PREPARE 
the statement-id or DECLARE the cursor before using it.

-26056	Function cursor (%s) in SPL cannot have WITH HOLD option

In SPL routines, the WITH HOLD option is not allowed for a function 
cursor declared for the EXECUTE PROCEDURE or EXECUTE FUNCTION statement. 
Omit the WITH HOLD keywords while declaring this cursor.

Only ESQL/C routines support function cursors WITH HOLD.

-26057	Either statement-id or cursor (%s) is already in use

This error can be returned in either of the following two cases:

    Case (1)

        Attempt to PREPARE a statement with the same identifier that
        an earlier PREPARE or DECLARE statement declared, and that has
        not yet been freed for re-use. Review the program logic, and 
        either FREE this identifier before using it again for this 
        PREPARE statement, or else specify a different identifier.

        Example below demonstrates possible way to avoid this error:

          PREPARE s_emp  FROM "select givenname from employee";
          PREPARE s_cust FROM "select fname from customer";
          ...
          FREE s_cust;
          PREPARE s_cust FROM "select lname from customer";
          ...
          FREE s_cust;
          FREE s_emp;

    Case (2)

        Attempt to DECLARE a cursor with the same identifier that an
        earlier PREPARE or DECLARE statement declared, and that has not
        yet been freed for re-use. Review the program logic, and either 
        FREE this identifier before using it again for this DECLARE
        statement, or else specify a different identifier.

        Example below demonstrates possible way to avoid this error:

          DECLARE c_emp CURSOR FOR s_emp;
          DECLARE c_cust CURSOR FOR s_cust;
          ...
          FREE c_emp;
          DECLARE c_cust CURSOR FOR s_cust;
          ...
          FREE c_cust;
          FREE c_emp;

-26058	EXECUTE IMMEDIATE and PREPARE in SPL cannot allow multiple SQL statements

Either EXECUTE IMMEDIATE or PREPARE statement in an SPL routine is trying 
to process an expression that evaluates to the text of more than one SQL
statement. Change your program logic to pass to the EXECUTE IMMEDIATE or
PREPARE statement an expression or a quoted string that evaluates to the
text of only a single SQL statement.

In an SPL routine, the following examples are not valid because the EXECUTE
IMMEDIATE or PREPARE statement specifies the text of more than one SQL
statement:

   Case (1) 
       ...
       EXECUTE IMMEDIATE "create table t1(c1 int); create table t2(c2 int);" ;
   
   Case (2)
       ...
       LET qry = "select c1,c2 from t1; select c1,c2 from t2";
       PREPARE stmt_id FROM qry;

These examples of EXECUTE IMMEDIATE and PREPARE statements are valid in an
SPL routine:

   Case (3)
       ...
       EXECUTE IMMEDIATE "create table t1(c1 int);" ;
       EXECUTE IMMEDIATE "create table t2(c2 int);" ;

   Case (4)
       ...
       LET qry1 = "select c1,c2 from t1 ;";
       PREPARE stmt_id1 FROM qry1;

       LET qry2 = "select c1,c2 from t2 ;";
       PREPARE stmt_id2 FROM qry2;
   
Only ESQL/C routines can use the EXECUTE IMMEDIATE or PREPARE statement to
process a semicolon-separated list of SQL statements.

-26059	Unsupported data type in EXECUTE IMMEDIATE or PREPARE statement

A variable passed to the EXECUTE IMMEDIATE statement or PREPARE statement 
in SPL must be one of the data types CHAR, VARCHAR, LVARCHAR, NCHAR, or 
NVARCHAR. Change your program logic to pass a variable of one of these 
supported data types to the EXECUTE IMMEDIATE statement or PREPARE 
statement in the SPL routine. 

In an SPL routine, the following examples are not valid because the
EXECUTE IMMEDIATE or PREPARE statement does not support variables of 
type TEXT: 

    Case (1)
        DEFINE qstr REFERENCES TEXT;
        ...
        LET qstr = (SELECT textcol FROM t1 WHERE qryid = 100);
        EXECUTE IMMEDIATE qstr; 

    Case (2)
        DEFINE qstr REFERENCES TEXT;
        ...
        LET qstr = (SELECT textcol FROM t1 WHERE qryid = 100);
        PREPARE stmt_id FROM qstr; 

The following examples include a valid EXECUTE IMMEDIATE statement and a
PREPARE statement in SPL routine:

    Case (3)
        DEFINE qstr varchar(120);
        ...
        LET qstr = "create table t1 (c1 int);";
        EXECUTE IMMEDIATE qstr;

    Case (4)
        DEFINE qstr lvarchar;
        ...
        LET qstr = "select lvarcol from t1 where qryid = 100";
        PREPARE stmt_id FROM qstr;

-26060	Procedure was created with an older version of the engine and must
be dropped and created again in order to work properly.

This procedure was created with an older version of the engine and
contains statements like CREATE TRIGGER, CREATE TABLE with fragmentation
expressions, ALTER TABLE or CREATE TABLE with constraint expressions
or nested CREATE PROCEDURE statements. Such procedures must be dropped
and created again using the current engine.

-26061	Procedure (%s) was created with an older version of the server and must
be dropped and recreated again in order to work properly.

This procedure was created with an older version of the server and
contains statements similar to: CREATE TRIGGER statements, CREATE TABLE 
statements with fragmentation expressions, ALTER TABLE or CREATE TABLE with 
constraint expressions or nested CREATE PROCEDURE statements. These types of 
procedures must be dropped and recreated again using the current server.

-26062	The specified case is not defined in the CASE statement	

The value of the case did not match any value in the WHEN clause of the CASE
statement and no ELSE clause is defined. The following example returns this
error because the LET statement specifies a case that is not defined in the 
CASE statement.

CREATE PROCEDURE case_proc( ) 
RETURNING CHAR(1);
DEFINE grade CHAR(1);
LET grade = 'D';
CASE grade
    WHEN 'A' THEN LET grade = 'a';
    WHEN 'B' THEN LET grade = 'b';
    WHEN 'C' THEN LET grade = 'c';
  END CASE;
RETURN grade;
END PROCEDURE;

EXECUTE PROCEDURE case_proc();

To reduce the risk of this error, you might revise your CASE statement logic to include an ELSE clause to take appropriate action if no WHEN condition is true, or to add additional WHEN clauses that define how to handle additional cases.

-26063	Data type not supported with CASE statement of SPL

The value specified in the CASE statement cannot be of type BLOB, CLOB, BYTE,
TEXT, Collection, DISTINCT, or OPAQUE. The BOOLEAN and LVARCHAR types are the
only built-in opaque data types that the CASE statement in SPL supports.

-26064	The stored procedure execution failed because a statement cannot be prepared(%s).

The stored procedure execution failed because a statement with in the stored
procedure could not be prepared. Change the statement or try to run it with the EXECUTE IMMEDIATE statement. 

-26071	Update statistics is not allowed on cross database or cross server objects

You can only update statistics on objects that reside in the local database.
To update statistics on objects in a remote database, connect to that
database directly.

-26072	The (%s) operator cannot be used in this context.

The word (%s) is an operator in the server and cannot be used in this context.

-11417	Selected locale/codeset will result in performance degradation.

The selected locale/codeset will result in performance degradation.
For optimum performance, use the same client and database locale.

-11418	Locales not found.

The displayed locale and codeset have not been found on the client machine.
Using these locale/codeset will result in -23101 Unable to load locale
categories error message. Please install the locales.

-11419	The connection could not be enlisted with MSDTC.

The connection could not be enlisted with MSDTC because the distributed
transaction has been committed or aborted by the transaction manager. This
problem could be the result of a short transaction timeout in your
application or MSDTC configuration.

-11420	The MSDTC transaction is no longer active.

The MSDTC transaction is no longer active. This problem could be the result
of a short transaction timeout in your application or MSDTC configuration.

-11422	Smart large objects can only be used by setting SQL_INFX_ATTR_LO_AUTOMATIC.

The SQL_INFX_ATTR_LO_AUTOMATIC connection or statement level attribute must be set when working 
with smart large objects. You can set the SQL_INFX_ATTR_LO_AUTOMATIC attribute by setting the 
SQLSetConnectAttr or SQLSetStmtAttr functions or by turning on the Report Standard ODBC Types option 
under the Advanced tab of the ODBC Administration for Informix Driver DSN.

-26073	Savepoint name is unspecified.

The savepoint action - SAVEPOINT or RELEASE SAVEPOINT - requires a savepoint
name to identify the action. Please provide a name for this action.

-26074	Unable to set savepoint %s.

The savepoint referenced in the statement could not be set. Check the
accompanying isam error for more details.

-26075	Unable to release savepoint %s.

The savepoint referenced in the statement could not be released. Check the
accompanying isam error for more details.

-26076	Unable to rollback to savepoint %s.

The transaction could not be rolled back to the savepoint referenced in the
statement. Check the accompanying ISAM error for more details.

-32026	Savepoint not found.

The savepoint referenced in the statement could not be found in the current
transaction. Set a new savepoint using the "SAVEPOINT <savepoint_name>"
statement.

-26077	Savepoint statements are disallowed inside triggers.

Savepoint statements cannot be executed as a trigger action.

-32027	A savepoint with the same name exists and the UNIQUE option was specified.

The savepoint name specified in the SAVEPOINT statement was used in creating 
a previous savepoint, with either the previous, current, or both savepoints 
having the UNIQUE option. After the UNIQUE option is specified, another 
savepoint with the same name cannot be set in the same savepoint level until 
the original savepoint is released. You must either specify a different 
name, or else first release the UNIQUE savepoint before you reuse its 
identifier.

-32028	Limit on savepoint levels reached.

No more than 2 ** 30 of savepoint levels are valid in a transaction. New
savepoint levels are automatically created for the duration of execution of
a stored procedure or UDR. Recursive calls to the stored procedure or UDR
also increment the savepoint level of the current transaction.

-26078	Rollback to savepoint disallowed on updating an old server in same transaction

Rolling back to a savepoint set within a cross-server transaction is not allowed if
a participating server that does not support savepoints is also updated
in the same transaction. End the transaction that updated that server,
and retry the ROLLBACK TO SAVEPOINT statement.

-26079	CONNECT BY query resulted in a loop.

A CONNECT BY query is resulting in a cycle/loop. Use CONNECT_BY_ISCYCLE 
psuedo column to identify the row causing cycle/loop. Change your 
query to remove the row or use the NOCYCLE keyword to allow the query to 
skip the row.

-26080	Generic error in CONNECT BY query processing.

There was a problem in processing the CONNECT BY query. 

-26081	Incorrect use of the CONNECT BY keywords in this context.

The statement could not be run because CONNECT BY clause keywords were used incorrectly.
Keywords that can only be used in the context of a CONNECT BY clause were used outside of a CONNECT BY clause.
One of the following keywords was used outside of the context of a
CONNECT BY clause:
- the LEVEL, CONNECT_BY_ISLEAF, or CONNECT_BY_ISCYCLE pseudocolumn
- the PRIOR or CONNECT_BY_ROOT unary operator
- the SYS_CONNECT_BY_PATH() function
- the ORDER SIBLINGS BY clause
- the START WITH expression clause
Make sure that you have provided CONNECT BY keywords in this context.
Make sure that you have not used nested CONNECT BY clauses in the query.

-26082	CONNECT_BY_ISCYCLE is used without the NOCYCLE keyword.

The CONNECT_BY_ISCYCLE keyword is used without the NOCYCLE keyword 
in a CONNECT BY query. Include the NOCYCLE keyword in the 
CONNECT_BY_ISCYCLE context.

-26084	Cross server objects cannot be referenced in CONNECT BY queries.

The table specified in the FROM clause of a CONNECT BY query must 
be in a database of the Dynamic Server instance to which the session 
is connected. No clause of a SELECT statement that includes the 
CONNECT BY clause can reference a database object that is managed 
by a remore database server.

If you need to perform a CONNECT BY query on a table that resides 
in a database of a remote server, you should first connect to that 
database, and then issue the CONNECT BY query on the (local) table.

-26085	You cannot have a CONNECT BY query on a join of two or more tables.

The FROM clause of a CONNECT BY query cannot have a join of two or more
tables.

For example, the following statements generate an error:

        SELECT empid, name, mgrid, deptdesc
        FROM  (employee INNER JOIN department
               ON employee.deptid == department.deptid)
        START WITH employee.name = 'David'
        CONNECT BY PRIOR employee.empid = employee.mgrid;

        SELECT *
        FROM employee, employee AS new
        CONNECT BY PRIOR employee.empid = new.mgrid;

The following statement is correct:

        SELECT empid, name, mgrid
        FROM  employee
        START WITH employee.name = 'David'
        CONNECT BY PRIOR employee.empid = employee.mgrid;

-26087	Incorrect use of the bson unwind in this context.

The statement could not be run because bson unwind clause was used incorrectly.

-26090	Column (%s) not found in the target table.

This error is generated when a user tries to insert or update data into a 
column that is not from the target table. For example:

        create table bonus (id int, bonus int);
        create table emp(id int, salary int);

        MERGE INTO bonus D
        USING emp S ON D.id = S.id
        WHEN MATCHED THEN UPDATE SET bonus = bonus + salary*.01
        WHEN NOT MATCHED THEN INSERT (id, salary) VALUES (S.id, salary);

This will generate the following error because salary in the insert column
list is not from the target table, bonus:

        26090: Column (salary) not found in the target table.
        Error in line 4
        Near character position 41


        MERGE INTO bonus
        USING emp ON bonus.id = emp.id
        WHEN MATCHED THEN UPDATE SET salary = 1000
        WHEN NOT MATCHED THEN INSERT VALUES (10, 100);

This will generate the following error because salary in the set clause of
the update is not from the target table, bonus:

        26090: Column (salary) not found in the target table.
        Error in line 3
        Near character position 44

-26091	Table (%s) is not the target table.

This error is generated when a user tries to insert data into a column that
is not from the target table. For example:

        create table bonus (id int, bonus int);
        create table emp(id int, salary int);

        MERGE INTO bonus D
        USING emp S ON D.id = S.id
        WHEN MATCHED THEN UPDATE SET bonus = bonus + salary*.01
        WHEN NOT MATCHED THEN INSERT (id, emp.bonus) VALUES (S.id, salary);

This will generate the following error because the emp.bonus table name is 
not the bonus target table:

        26091: Table (emp) is not the target table.
        Error in line 4
        Near character position 47


-26092	Column (%s) is not found in the source table.

This error is generated when a user tries to insert data into the target table
using a column from the target table. For example:

        create table bonus (id int, bonus int);
        create table emp(id int, salary int);

        MERGE INTO bonus D
        USING emp S ON D.id = S.id
        WHEN MATCHED THEN UPDATE SET bonus = bonus + salary*.01
        WHEN NOT MATCHED THEN INSERT (D.id, D.bonus) VALUES (S.id, bonus);

This will generate the following error because in the VALUE clause the
bonus column is not from the emp source table:

        26092: Column (bonus) not found in the source table.
        Error in line 4
        Near character position 66

-26093	Table (%s) is not the source table.

This error is generated when a user tries to insert data into the
target table using the column from the target table. For example:

        create table bonus (id int, bonus int);
        create table emp(id int, salary int);

        MERGE INTO bonus D
        USING emp S ON D.id = S.id
        WHEN MATCHED THEN UPDATE SET bonus = bonus + salary*.01
        WHEN NOT MATCHED THEN INSERT (D.id, D.bonus) VALUES (D.id, salary);

This will generate the following error because the salary column in the VALUE
clause is not from the source table, emp:

        26093: Table (d) is not the source table.
        Error in line 4
        Near character position 61

-26094	The MERGE operation is not allowed on this target table (%s).

The Target table in a MERGE statement cannot be a pseudo SMI table, a catalog 
table, a remote table, a VTI table or an external table.

-26095	Cannot update or delete a row twice in a MERGE statement.

If you do a MERGE operation, the join condition and any filters must be 
sufficiently strict so that no row of the target table is produced more than 
once for updating or deleting. The error occurred because the same row was 
processed twice. The query was terminated abnormally.

Either clean the data source or sources, or make the query more restrictive
so that no target table row is produced more than once for updating or deleting.

-26096	Cannot define INSTEAD OF trigger on a view when the view is specified 
as the target in the MERGE statement.

When the target of a MERGE statement is a view, then INSTEAD OF insert and
update triggers cannot be defined on the view. Delete triggers can be specified
as they are anyway ignored by the MERGE statement.

When this situation occurs, consider merging into the base table directly 
instead of into the view. The other alternative is to drop or disable the 
trigger. 

-26098	In a MERGE statement, the security policies of the target table and source table (%s) do not match.

The Label Based Access Control security polices of the source and target tables in a MERGE statement must be the same.

If the source table object in the USING clause is a subquery that accesses 
multiple tables, you can remove the source table whose policy differs from 
the target table from the USING clause of the MERGE statement.

-26099	The optimizer cannot choose a viable plan based on the ON clause filter
 specified in the MERGE statement.

Hash-join is the preferred join method between source and target tables in 
the MERGE statement. The optimizer currently prevents nested loop joins from 
occurring when the target table is the inner table of a join.  If a hash-join 
plan is also not feasible, then the optimizer throws this error.  

When this error occurs, try to change the ON condition so that at least 
one equality predicate is specified between the source and target tables 
on non-complex data-types. If this is not feasible, please contact 
IBM Informix technical support.

-26151	Could not write to external table file: errno, filename.

An error occurred when the database server tried to write to the reject file.

Look for operating-system messages that might give more information.
Possible causes include a full disk or a disk quota limit.

-26152	Could not exclusively lock external table.

Another user is currently using the external table.
Wait for the external table to be unlocked before you proceed.

-26153	Could not close external table.

An error occurred when the database server tried to close the external
table lock. Note all circumstances and contact IBM Software Support.

-26154	Could not open file: errno, filename.

An error occurred when the database server tried to open the file. Check the
accompanying error for more information. Possible causes include missing
file or incorrect permissions.

-26155	Could not close external table file: errno, filename.

An error occurred when the database server tried to close the file. Look
for operating-system messages that might give more information.
Possible causes include a full disk or hardware errors.

-26156	Failed to read from file: errno, filename.

An error occurred when the database server tried to read from the file.
Check the accompanying error for more information.

-26157	File is incorrectly specified as a DISK type: (file)=(%s).

The file named in the external table was designated as a "DISK" file type,
but it is not a disk file. If this file is a UNIX named pipe, change the 
file type in the external table to type "PIPE".

-26158	File is incorrectly specified as a PIPE type: (file)=(%s).

The file named in the external table was called a "PIPE" file type,
but it is not a UNIX named pipe. If this file is a disk file, change 
the file type in the external table to "DISK".

-26159	Error accessing AIO buffer: errno, filename.

An error occurred when the database server tried to read or write from an
internal AIO buffer. Note all circumstances and contact IBM Software
Support.

-26160	Could not remove the external table file: errno, filename.

An error occurred when the database server tried to remove the
indicated file. Look for operating-system messages that might give
more information. A likely cause is incorrect permissions.

-26161	External table internal error: errno, filename.

Note all circumstances and contact IBM Software Support
regarding this internal error.

-26162	Failed to start an AIO operation: errno, filename.

An error occurred when the database server tried to read or write to a
datafile. Check the accompanying error for more information.

-26163	Target table cannot have any BLOB columns.

The BLOB column type is not supported for the target column in 
an External table.


-26164	External table data conversion failure (unload).

A conversion failure occurred when the database server tried to convert
the data to ASCII format.

Check that the external table columns have enough space reserved to
write the ASCII representation of the data and that the
columns in the external table are compatible with the data selected.

-26165	Datafile full (unload).

An error occurred when the database server tried to write to the unload
data file. No additional data can be written to the file.

Allocate more space for the file and try again.

-26166	Datafile AIO write error (unload): errno.

An error occurred when the database server tried to write to the unload
datafile. Check the accompanying error for more information.

-26167	All data files are either full or corrupted (unload).

An error occurred during the unload. Look for operating-system messages
that might give more information. Possibly all disks with data files 
are full hardware problems have occurred.

-26168	Conversion error: errno, filename.

When the database server tried to load from the file, it encountered an
error. Unless a reject file is specified in the external table, the
database server returns the error message, and the load job ends without
saving loaded data.

Check for conversion errors, rows that violate constraints defined on
the external table, or null columns that were defined as NOT NULL.

A reason code of UNSUPPORTED_ROW_SIZE indicates that the external table
row size (other than BYTE and TEXT columns) is greater than 32K.

-26169	Failed to access file: errno, filename.

An error occurred when the database server tried to write to the reject file.

Check the accompanying operating-system error indication for more information.

-26170	Could not find record end: must stop loading.

An error occurred when the database server tried to find a record delimiter
in the delimited load file.

Check to see that the file has record delimiters (normally new-line
characters) and that the external table has defined the correct record
delimiter.

-26171	Cannot undo partial write to filename when detecting a full disk.

An error occurred when the database server tried to continue after running
out of space for one data file. When the database server detects that the 
disk is full, it writes to the data file a partial record, which cannot be
truncated.

Look for operating-system messages that might give more information.

-26172	There are too many keywords in USING clause.

The CREATE EXTERNAL table statement contains more than one 
occurrence of a keyword expected in the USING clause.

Review the statement. If you meant to use another keyword, correct the
statement before you reissue it.

-26173	Incorrect value for a keyword.

The CREATE EXTERNAL TABLE statement contains an incorrect value 
for one of the USING clause keywords.

Review the statement to see if the value of the keyword is misspelled.
For the MAXERRORS keyword, make sure the value is a valid number.

-26174	Incorrect DATAFILES entry.

A DATAFILES entry does not have the correct format. The format for an
entry is filetype:rooted-path-name.

Check that the file type is a valid type (DISK or PIPE), that the
second item names a item names a file that can be accessed.  

-26175	DATAFILES entry are missing.

The DATAFILES entry in the CREATE EXTERNAL TABLE statement 
is missing. Add a DATAFILES entry and reissue the statement.

-26176	Cannot use SAMEAS for FIXED format tables.

The CREATE EXTERNAL TABLE statement does not allow the SAMEAS keyword 
for FIXED format tables. The column entries must also define an external 
type to describe how to access the data in the fixed file.

Revise the CREATE EXTERNAL TABLE statement to enumerate the column
information and reissue the statement.

-26178	Incorrect external column type column-name.

The CREATE EXTERNAL TABLE statement contains an incorrect external column
type.

Make sure the external column type is CHAR(size)

-26179	FIXED or DELIMITED columns must be external CHAR type column-name.

The CREATE EXTERNAL TABLE statement contains an external column type
that is not valid. If the table describes a FIXED format file, the valid
external- column type is CHAR. CHAR data must be enclosed in quotation marks.

If the table describes a DELIMITED format file and includes
external-column types, then the type must be CHAR. A table that
describes DELIMITED format files does not need to include
external-column-type information.

-26180	Missing external column type column-name.

The CREATE EXTERNAL TABLE statement is missing the external-column-
type information. This information is required for tables that describe
FIXED format files.

Add the column-type information and resubmit the statement.

-26181	Only FIXED format columns can declare a null column-name.

The CREATE EXTERNAL TABLE table statement has found a column defining a
null string with the NULL "null-string" syntax that is not valid. Only
tables that describe FIXED format files can have a null value defined
with the NULL keyword.

Rework the statement and resubmit it.

-26182	Incorrect file type in DATAFILES string datafile entry.

An error occurred when the database server tried to expand the DATAFILES
entries in an INSERT or SELECT statement for an external table. The
external table has a DATAFILES entry with an incorrect file type. Only
DISK and PIPE file types are allowed for external tables.

Examine the external-table entry, drop the external table, and reissue
a corrected CREATE EXTERNAL TABLE statement to correct this error.

-26183	Could not replace r macro in filename entry.

An error occurred when the database server tried to expand the node
host-name macro in the filename in a DATAFILES entry in an INSERT or
SELECT statement for an external table.

If the error recurs, note all circumstances and contact
IBM Software Support.

-26184	Could not parse r macro in filename entry.

An error occurred when the database server tried to expand the DATAFILES
entries in an INSERT or SELECT statement for an external table. The
error occurred when the database server tried to expand the %r macro in
the filename. Check that the syntax for the %r() macro is correct.

-26185	None of the DATAFILES strings name valid data files.

An error occurred when the database server tried to expand the
DATAFILES entries in an INSERT or SELECT statement for an external
table. No valid filenames were found in the DATAFILES entries.

Examine the external tables entry, drop the external table, and reissue
a corrected CREATE EXTERNAL TABLE statement.

-26186	File name is too long: file_name.

The name of the file in the external table is too long (after expanding
all the file macros). Check to see that the full path name of the
file is less than 257 characters long.

-26187	Cannot select from multiple external tables.

Only one external table can be used in a SELECT query. For unions,
each UNION contributor can have one external table. External tables
are allowed as participants in joins and subqueries along with
other database tables.

-26188	Null string is too long or has an incorrect format.

The CREATE EXTERNAL TABLE statement has a column with incorrect NULL
"null-string" syntax. The NULL string for this column is longer than
the external column length declared or is not a recognized format for
the external type. 

Check the CREATE EXTERNAL TABLE statement to make sure that the NULL
"null-string" length agrees with the size and format defined for the
external column type.

-26189	Cannot use a <clause> clause with a SELECT statement into an 
external table.

The SELECT statement contains a FOR UPDATE or FORMAT "FIXED" clause. 
When the database server unloads to an external table, these clauses 
are not allowed.

Check the SELECT statement or when the SELECT cursor was defined, and
make sure you do not include either of these clauses.


-26190	Insert into an external table must provide values for all columns in
the table.

The INSERT statement does not list all the columns that the external
table defines. When the database server unloads to an external table, all
columns must have values described by the SELECT list.

Check the INSERT statement to make sure that all columns are included
in the INSERT clause and that every column has a value supplied by the
SELECT list.

-26191	Incorrect use of an external table tablename in query.

This statement describes an operation that is not allowed on an external
table. The types of operations allowed for external tables are
CREATE EXTERNAL TABLE, SELECT, DROP TABLE, GRANT (only SELECT and INSERT), 
REVOKE, CREATE SYNONYM, CREATE SCHEMA, RENAME COLUMN, RENAME TABLE,
SELECT ... INTO EXTERNAL.

The types of operations not allowed for external tables are
TRUNCATE, UPDATE STATISTICS, START VIOLATION, STOP VIOLATION, ALTER TABLE, 
UPDATE, DELETE, CREATE TRIGGER, CREATE INDEX, CONNECT BY, INSERT INTO ... 
VALUES, LBAC operations, target tables of MERGE statements and template
table for SAMEAS clause of CREATE EXTERNAL TABLE.

-26192	Column too long for fixed field.  (Val = value, Col = colno,
Len = converted length, Max = maxLen).

When the database server tried to convert the column to FIXED file format, the
size of the converted value was longer than the maximum size defined
for the fixed- size field.

Check that the external table description defines enough space in the
external column type to hold the data selected after conversion.

-26193	An external table must be a fixed format file if it has an 
external column type column-name.

An external column type of CHAR  was found for an external table that 
is not defined as a FIXED-format file.

-26194	Unknown external column type column-name.

The CREATE EXTERNAL TABLE statement contains an external-column type
that was not recognized. The valid external-column type is CHAR. CHAR 
values must be in quotation marks.

Check the CREATE EXTERNAL TABLE statement to make sure that the
external-column types are valid.

-26195	No constraints can be defined for external tables.

The CREATE EXTERNAL TABLE statement contains one or more types of
constraint that are not allowed.

Check the statement for primary-key, referential, or unique constraints
on a column or for the table.

-26196	Internal type must be a numeric type column-name.

The CREATE EXTERNAL TABLE statement contains external-column types that
do not agree with the internal-column type. 

Check the CREATE EXTERNAL TABLE statement to make sure any external-
column types agree with the internal-column type.

-26197	Reached maximum error limit during load: errno, filename.

When the database server tried to load the data from the external table,
the server reached the MAXERRORS limit defined for the external table.

-26198	Cannot modify an external table that is also used in the subquery.

The external table cannot be used in the subquery. Check the 
statement to see if the external table is used in the subquery.  

-26199	The RETAINUPDATELOCKS session environment cannot be set in a 
nonlogging database.

-26200	The RETAINUPDATELOCKS session environment cannot be set on 
secondary server in a high-availability cluster.

-26213	CREATE EXTERNAL TABLE: The DELIMITER keyword is not valid for
FIXED format tables.

-26214	Cannot perform this operation on an external table.

The following types of operations with external tables are not allowed:
- including an external table in a subquery or in an outer join
- including BLOB or CLOB columns from external tables in joins, UNION
clauses, or ORDER BY clauses
- including a subquery or stored procedure if the main query references
BLOB or CLOB columns in external tables
- using subscripts as BLOB or CLOB columns from external tables
- selecting BLOB or CLOB columns from external tables out of order
- selecting a BLOB or CLOB column from one external table and inserting
it into a different external table
- selecting BYTE and TEXT column to temporary table or through client API

-26216	CREATE EXTERNAL TABLE: The RECORDEND keyword is not valid for
FIXED format tables.

-26381	BLOBDIR directory (%s) does not exist or is not accessible.

The BLOBDIR value specified with the CREATE EXTERNAL or SELECT INTO EXTERNAL 
statement does not exist or is not accessible

-26382	CLOBDIR directory (%s) does not exist or is not accessible.

The CLOBDIR value specified with the CREATE EXTERNAL or SELECT INTO EXTERNAL 
statement does not exist or is not accessible

-26383	DATAFILES string (%s) with file type PIPE is not supported with BLOB/CLOB types

The PIPE option is not supported in the DATAFILES clause when BLOB or CLOB data 
types are specified in the external table definition or in the table referenced in 
the SAMEAS clause. The following is an example of when this error is returned:

CREATE EXTERNAL TABLE exttab (col1 INTEGER, col2 BLOB, col3 CLOB)
USING
  (
    DATAFILES
      (
        "PIPE:/tmp/ext_byte.dat.%r(1..2);
         CLOBDIR:/tmp/clobdir1.%r(1..2);
         BLOBDIR=/tmp/blobdir1.%r(1..2)"
      ),
    DELUXE,
    DELIMITER "%",
    recordend "\n",
    maxerrors 20,
    rejectfile "/tmp/ext_byte.log"
);

To fix the problem in example above, please change the definition 
to use file type DISK instead of PIPE.

-26384	FORMAT (%s) is not supported with BLOB, CLOB, BYTE or TEXT types

The FORMAT type specified is not supported with BLOB, CLOB, BYTE or TEXT types. 
Use DELIMITED FORMAT when specifying BLOB, CLOB, BYTE, TEXT data types.
The following is an example when this error is returned:

CREATE EXTERNAL TABLE exttab (col1 INTEGER, col2 BLOB, col3 CLOB, col4 BYTE,
col5 TEXT)
USING
  (
    DATAFILES
      (
        "DISK:/tmp/ext_byte.dat.%r(1..2);
         CLOBDIR:/tmp/clobdir1.%r(1..2);
         BLOBDIR=/tmp/blobdir1.%r(1..2)"
      ),
    DELUXE,
    DELIMITER "%",
    recordend "\n",
    maxerrors 20,
    rejectfile "/tmp/ext_byte.log"
    FORMAT 'FIXED'
);

To fix the problem in example above, please change the definition 
to use FORMAT type DELIMITED instead of type FIXED.

FORMAT cannot be INFORMIX or FIXED if the external table contains BLOB, CLOB,
BYTE or TEXT columns.


-26385	Could not parse r macro in BLOBDIR %s.

Could not parse the formatting macro r in BLOBDIR string. Refer to the
 example below for the correct usage:

CREATE EXTERNAL TABLE exttab (col1 INTEGER, col2 BLOB, col3 CLOB) 
USING
  (
    DATAFILES
      (
        "DISK:/tmp/ext_byte.dat.%r(1..2);
	 CLOBDIR:/tmp/clobdir1.%r(1..2);
	 BLOBDIR=/tmp/blobdir1.%r(1..2)"
      ),
    DELUXE,
    DELIMITER "%",
    recordend "\n",
    maxerrors 20,
    rejectfile "/tmp/ext_byte.log"
);

-26386	Could not parse r macro in CLOBDIR %s.

Could not parse the formatting macro r in CLOBDIR string. Refer to the
 example below for the correct usage:

CREATE EXTERNAL TABLE exttab (col1 INTEGER, col2 BLOB, col3 CLOB) 
USING
  (
    DATAFILES
      (
        "DISK:/tmp/ext_byte.dat.%r(1..2);
	 CLOBDIR:/tmp/clobdir1.%r(1..2);
	 BLOBDIR=/tmp/blobdir1.%r(1..2)"
      ),
    DELUXE,
    DELIMITER "%",
    recordend "\n",
    maxerrors 20,
    rejectfile "/tmp/ext_byte.log"
);

-26387	Cannot use r macro in BLOBDIR %s without having a matching macro in filename %s.

Could not use the formatting macro r in BLOBDIR string without having a corresponding 
r macro in the DISK filename. 
The following is an example of when this error is returned:

CREATE EXTERNAL TABLE exttab (col1 INTEGER, col2 BLOB) 
USING
  (
    DATAFILES
      (
        "DISK:/tmp/ext_byte.dat;
	 BLOBDIR=/tmp/blobdir1.%r(1..2)"
      ),
    DELUXE,
    DELIMITER "%",
    recordend "\n",
    maxerrors 20,
    rejectfile "/tmp/ext_byte.log"
);

To fix the error remove the formatting macro r completely or change the 
CREATE EXTERNAL TABLE statement to:

CREATE EXTERNAL TABLE exttab (col1 INTEGER, col2 BLOB)
USING
  (
    DATAFILES
      (
        "DISK:/tmp/ext_byte.dat.%r(1..2);
         BLOBDIR=/tmp/blobdir1.%r(1..2)"
      ),
    DELUXE,
    DELIMITER "%",
    recordend "\n",
    maxerrors 20,
    rejectfile "/tmp/ext_byte.log"
);

-26388	Cannot use r macro in CLOBDIR %s without having a matching macro in filename %s.

Could not use the formatting macro r in CLOBDIR string without having a corresponding 
r macro in the DISK filename. The following is an example of when this error is returned:

CREATE EXTERNAL TABLE exttab (col1 INTEGER, col2 CLOB) 
USING
  (
    DATAFILES
      (
        "DISK:/tmp/ext_byte.dat;
	 CLOBDIR=/tmp/clobdir1.%r(1..2)"
      ),
    DELUXE,
    DELIMITER "%",
    recordend "\n",
    maxerrors 20,
    rejectfile "/tmp/ext_byte.log"
);

To fix the error remove the formatting macro r completely or change the 
CREATE EXTERNAL TABLE statement to:

CREATE EXTERNAL TABLE exttab (col1 INTEGER, col2 CLOB)
USING
  (
    DATAFILES
      (
        "DISK:/tmp/ext_byte.dat.%r(1..2);
         CLOBDIR=/tmp/clobdir1.%r(1..2)"
      ),
    DELUXE,
    DELIMITER "%",
    recordend "\n",
    maxerrors 20,
    rejectfile "/tmp/ext_byte.log"
);


-26389	Range for r macro in BLOBDIR %s does not match range in filename %s.

The r macro range in the BLOBDIR string and filename in the DISK string 
must match exactly.
The following is an example of when this error is returned:

CREATE EXTERNAL TABLE exttab (col1 INTEGER, col2 BLOB) 
USING
  (
    DATAFILES
      (
        "DISK:/tmp/ext_byte.dat.%r(1..2);
	 BLOBDIR=/tmp/blobdir1.%r(10..20)"
      ),
    DELUXE,
    DELIMITER "%",
    recordend "\n",
    maxerrors 20,
    rejectfile "/tmp/ext_byte.log"
);

To fix the error change the CREATE EXTERNAL TABLE statement to:

CREATE EXTERNAL TABLE exttab (col1 INTEGER, col2 BLOB)
USING
  (
    DATAFILES
      (
        "DISK:/tmp/ext_byte.dat.%r(1..2);
         BLOBDIR=/tmp/blobdir1.%r(1..2)"
      ),
    DELUXE,
    DELIMITER "%",
    recordend "\n",
    maxerrors 20,
    rejectfile "/tmp/ext_byte.log"
);

-26390	Range for r macro in CLOBDIR %s does not match range in filename %s.

The r macro range in the CLOBDIR string and the file name in the DISK string
 must match exactly.
The following is an example of when this error is returned:

CREATE EXTERNAL TABLE exttab (col1 INTEGER, col2 CLOB) 
USING
  (
    DATAFILES
      (
        "DISK:/tmp/ext_byte.dat.%r(1..2);
	 CLOBDIR=/tmp/clobdir1.%r(10..20)"
      ),
    DELUXE,
    DELIMITER "%",
    recordend "\n",
    maxerrors 20,
    rejectfile "/tmp/ext_byte.log"
);

To fix the error change the CREATE EXTERNAL TABLE statement to:

CREATE EXTERNAL TABLE exttab (col1 INTEGER, col2 CLOB)
USING
  (
    DATAFILES
      (
        "DISK:/tmp/ext_byte.dat.%r(1..2);
         CLOBDIR=/tmp/clobdir1.%r(1..2)"
      ),
    DELUXE,
    DELIMITER "%",
    recordend "\n",
    maxerrors 20,
    rejectfile "/tmp/ext_byte.log"
);

-26391	FORMAT (%s) is not supported with collection types.

The FORMAT type specified is not supported with collection types.
Use DELIMITED or FIXED FORMAT when specifying collection data types.

-26392	The INSERT operation into an external table failed because a row size exceeds the maximum limit of %s.

During an unload to an external table, the row size exceeded the maximum limit
for external tables.

ACTION

Collection data types or variable length user-defined types in the table can cause the row size
to exceed the external table limit. Large object columns are not included in the row size.
Use another method to unload and load the table, such as the High-Performance Loader,
the UNLOAD and LOAD statements in the DB-Access utility, or the onunload and onload utilities.

-26431	[Internal] Extended type is not valid.

If you cannot find a direct cause for this internal error, note
all circumstances and contact IBM Technical Support.

-26600	Exceeded limit on maximum number of concurrent open databases.

The query is requesting too many concurrent open databases. The query is
likely to have nested routine calls or cascading trigger actions.  Reduce the
nested routine calls or the cascading trigger actions and retry the query.

-26601	Cannot define a partial-column index on the non-character column, column-name.

You can specify a substring size in the CREATE INDEX statement only for
columns of character data types, such as CHAR, LVARCHAR, NCHAR, NVARCHAR,
or VARCHAR.
For the specified column, the index key must be the entire column value.

Remove the substring size value that follows the column name and rerun
the statement.

-26736	The statement failed because the escape character is not a constant of type CHARACTER.

When you use the LIKE or MATCHES operator, the character in the ESCAPE clause 
must be a constant of type CHARACTER.

-43026	The new chunk path <chunk-path> does not exist. User interaction failed
while prompting user for input to continue further.


-43027	The new chunk path <chunk-path> does not exist. User chose to discontinue 
the rename chunk operation when prompted for input.


-43028	The new chunk path <chunk-path> does not exist. User chose to continue the
rename chunk operation without creating the chunk path when prompted
for input.


-43063	The IFX_SERVERNUM environment variable is set to <variable-value>. Using this value
to get logical logs from storage manager for imported restore.


-43064	The IFX_SERVERNUM environment variable is set to an invalid value of <variable-value>.
Using value <variable-value> specified by SERVERNUM parameter in the ONCONFIG file to get
logical logs from storage manager for imported restore.

The IFX_SERVERNUM environment variable set for imported restore is invalid.

ACTION
Set the IFX_SERVERNUM environment variable to a valid value.


-43065	If doing an imported restore, and if the value of SERVERNUM parameter in
ONCONFIG file of the current database server is different from that of the
source database server, try setting IFX_SERVERNUM environment variable
to the source SERVERNUM value prior to re-starting log restore.

The value of SERVERNUM parameter in ONCONFIG file of the current database 
server may be different from that of the source database server.

ACTION
Try setting IFX_SERVERNUM environment variable to the same value as that
of the value of SERVERNUM parameter in ONCONFIG file of the source database
server prior to re-starting log restore.


-43195	ERROR: Logical Logs will not be backed up / salvaged because
LTAPEDEV value is <null-device> . Normal backup (onbar -b) cannot be done
without logical logs being backed up, because restore of such backups
requires a logical log restore.

If the LTAPEDEV parameter value in your ONCONFIG file is /dev/null (UNIX)
or NUL (NT) or blank, logical log backup is not performed.  These are
special values that the user sets to tell the server and ON-Bar that
log backups are not desired.  Data in the logical log cannot be restored.
Normal backups (that are not whole system backups) cannot be restored 
without logical log restore. Therefore such backups are not possible 
without logical logs being backed up.

ACTION
Set the LTAPEDEV parameter value to something other than /dev/null (UNIX)
or NUL (NT) or blank if logical log backups are desired. Or use whole
system backup (onbar -b -w) and whole system physical-only restore
(onbar -r -w -p) which can be performed without logical logs being backed
up / restored.


-43196	ERROR: Logical Logs cannot be restored because LTAPEDEV value is <null-device> .
Restoring a normal backup (done by onbar -b) is not possible without restore
of logical logs. Only whole system backups (done with onbar -b -w) can be 
restored without logical logs as whole system physical-only restore
(using onbar -r -w -p). Then use onmode commands (options -s or -m) to
bring server up without logical log restore.

If the LTAPEDEV parameter value in your ONCONFIG file is /dev/null (UNIX)
or NUL (NT) or blank, logical log restore cannot be performed. These are    
special values that the user sets to tell the server and ON-Bar that
log backup and restore is not desired. Data in the logical log cannot
be restored. 

ACTION
Set the LTAPEDEV parameter value to something other than /dev/null (UNIX)
or NUL (NT) or blank if logical log backup and restore is desired.
Only whole system backups (done with onbar -b -w) can be restored
without logical logs as whole system physical-only restore (using
onbar -r -w -p).


-43197	Duplicate log unique ID <log-uniq-id> found for specified point-in-log restore. 
Onbar is restoring to the latest log unique ID <log-uniq-id>.

Onbar found more than one of the specified point-in-log log unique IDs.
This situation can occur due to multiple timelines. Onbar will restore to 
the latest timeline. 

ACTION
Onbar will restore to the latest timeline. Please use point-in-time restore
to restore to other timelines.


-43250	The child process for the backup and restore filter is terminating 
with exit code <exit-code-number>.

This is an ON-Bar status message. The Child process used during
the backup and restore filter operation is exiting.

ACTION
None


-43298	Warning: BSA version is <xbsa-library-verssion>. This version does not match with the version(s) specified in <sm_versions>.

The version of XBSA shared library could not be identified in sm_versions file. 

ACTION
Look at the contents of the sm_versions file in $INFORMIXDIR/etc or
%INFORMIXDIR%\etc.  Make sure the data match the version of your storage
manager, and confirm that this version of the storage manager has been
certified with this version of ON-Bar.


-43299	Error identifying storage manager in XBSA shared library or sm_versions file.

No storage manager could be identified in XBSA shared library or sm_versions 
file.

ACTION
Look at the contents of the sm_versions file in $INFORMIXDIR/etc or
%INFORMIXDIR%\etc.  Make sure the data match the version of your storage
manager, and confirm that this version of the storage manager has been
certified with this version of ON-Bar.


-43301	Filter terminated.

This is an ON-Bar status message. The backup and restore filter process 
created by ON-Bar has terminated.

ACTION
None


-43302	Using filter <command-line-to-filter>.

This is an ON-Bar status message. ON-Bar is using this filter program
for backup or restore.

ACTION
None


-43311	Some backups that can be expired were not successfully expired at the Storage Manager.

Onsmsync requested the Storage Manager to expire a backup that is no longer
needed, but the expiration request did not complete successfully.

ACTION
Examine Storage Manager logs and ON-Bar activity log for details. 


-43317	The <COMMAND-LINE-OPTION> feature requires Informix Primary Storage Manager (Informix PSM).

Onsmsync can not complete the request because the Storage Manager does not
support it.

ACTION
To enable this feature, configure ON-Bar to use Informix Primary Storage 
Manager (Informix PSM) as its storage manager.

-43335	Too many onbar command line arguments, maximum allowed: <maimum-number>

This error occurs during read command line arguments.

ACTION
Limit the number of command line arguments to the maximum allowed value.


-43334	(-43334) ERROR: Invalid copy ids received from Storage Manager.

The copy ID that the storage manager returned is inconsistent with the return code

ACTION
Check with the vendor of the Storage Manager.


-43336	(-43336) Logical Logs cannot be backed-up because the database server is dismissing the logical logs.

If the database server was started with an ONCONFIG file containing the LTAPEDEV
parameter with a value of '/dev/null' (UNIX), 'NUL', (Windows) or blank,logical 
log back up cannot be performed. These special values indicate that log backups 
are not desired. Data in this logical log cannot be restored in the future. Only
whole-system backups are allowed.

ACTION
If logical log restores are desired, then set the LTAPEDEV configuration 
parameter value to something other than '/dev/null' (UNIX), 'NUL' (Windows) 
or blank.


-43338	(-43338) Non whole-system backups are not allowed if the database server is dismissing logical logs.

Non whole-system backups need logical logs to be restored to bring the database
server to a consinstent state. If logs cannot be backed up, non whole-system 
backups are not allowed.

ACTION
Set the LTAPEDEV parameter value in the ONCONFIG file to something other than 
'/dev/null' (UNIX), 'NUL' (Windows), or blank and restart the database server.


-43341	(-43341) Logical log <log-uniq-id> is needed by this restore but cannot be found in  (null).

After physical restore of a dbspace, a minimum set of logs can be required to 
maintain the logical consistency of the database server.

ACTION
If this is a whole-system restore, the logical restore part will be disabled
so the DBA can find the logs (if needed) and perform a logical restore (-r -l).

If this is a non whole-system restore, the restore cannot proceed until the
missing log are found.


-43342	(-43342) Cannot read reserved pages from rootdbs object.

The ON-Bar process tried to extract the reserved pages from a rootdbs backup but
was unsuccessful.

ACTION
Call IBM Support.


-43343	(-43343) No suitable root dbspace backup was found.

The ON-Bar boot file (ixbar) does not contain a backup for the rootdbs that can 
be restored with the selected options.

ACTION
If you received this message after running the onbar -r -w command, check if your last backup was a whole backup performed with the onbar -b -w command. You can only do a whole restore on a whole backup. If your last backup was not a whole backup, use the onbar -r command to perform the restore. If your last backup was a whole restore, the ixbar file might be inconsistent. Contact IBM Support.

If you received this message after running the onbar -r command, the ixbar file might be inconsistent. Contact IBM Support.


-43344	(-43344) The rootdbs level 0 restore is not restartable in recovery mode. Shutdown the server and do a cold restore.

The rootdbs level 0 restore must be a cold restore.

ACTION
Shutdown the server and do a cold restore.


-43353	WARNING: Logical logs will not be backed up as part of this operation.
Make sure that logical logs are backed up separately.

The ON-Bar settings switched off implicit log backup after a dbspace backup.

ACTION
Make sure that logs are backed up with a separate ON-Bar command.


-43354	WARNING: Logical logs were not backed up as part of this operation.
Logs through log unique ID %1 are needed for restoring this backup.
Make sure these logs are backed up separately.

The ON-Bar settings switched off implicit log backup after a dbspace backup.

ACTION
Make sure that logs are backed up with a separate ON-Bar command.


-43355	ERROR: Logical logs are full and must be backed up before dbspace
backup without log backup is possible.

The ON-Bar settings switched off implicit log backup.

ACTION
Backup the logs with a separate ON-Bar command.


-43372	Failed to add selected row to linked list for %1.

Attempt to add the selected row to the linked list failed.

ACTION
Stop ON-Bar and retry your command.

If the error persists, please note all circumstances, save a copy of
the ON-Bar and ONLine message logs and contact Technical Support at
tsmail@us.ibm.com.


-43374	%1 for %2 exceeds it's maximum allowed length of %3 characters.

SQL statement is longer than it's maximum allowed size.

ACTION
Shorten the statement or divide it into multiple statements.


-43375	ERROR: Attempt to build an SQL where clause for %1 failed.

No data was passed to the build-where-clause function, so no SQL where clause
can be built.

ACTION
Make sure that bar_object and bar_server tables in sysutils
database has data in it.


-43377	%1 required to insert a row into %2.0

An SQL insert into this table can't happen without the specified data.

ACTION
Stop ON-Bar and retry your command.

If the error persists, please note all circumstances, save a copy of
the ON-Bar and ONLine message logs and contact Technical Support at
tsmail@us.ibm.com.


-43378	Missing data for %1.

Required data is missing.

ACTION
Stop ON-Bar and retry your command.

If the error persists, please note all circumstances, save a copy of
the ON-Bar and ONLine message logs and contact Technical Support at
tsmail@us.ibm.com.


-43379	Updates to <table-name> primary key are not allowed.

Updating a table's primary key is not allowed.

ACTION
First, delete the row and then attempt to insert a new row with the 
new primary key.


-43383	Unable to update timestamp to <timestamp> for action number <action-number>

None

ACTION
Ask your database administrator to repair the data.


-43384	Creating %1 to allow restore %2

missing chunks

ACTION
Creating missing chunks


-43386	Storage space <name> was not backed up so it cannot be restored/verified.

None

ACTION
None


-43387	Unable to determine if <name> is a dbspace or dbslice: %2

An error occurred while trying to convert a dbslice to its list
of dbspaces.  Most likely there is a typographical error or a 
coserver failed to respond.  

ACTION
Verify that all coservers are in the correct state (on-line or quiescent
for a backup or warm restore and micro-kernel for cold restore).


-43396	Logstream <logstream> does not exist.

ACTION
Verify the logstream exists in this database server.


-43397	Storage space <name> does not exist.

ACTION
Verify the storage space exists in this database server and retry the 
backup or restore.


-83336	The warm restore failed because the dbspace number <dbspace_number> is full.

A warm restore operation requires space in a temporary dbspace to write 
the temporary logical logs to be restored. The specified dbspace is now full and 
the warm restore cannot continue.

ACTION
Free space in the dbspace or specify another dbspace and restart the restore.


-26097	Operation is not valid on a secondary server.

The above operation is not valid on the secondary server. 
Attempt such operations only on the primary node in the HDR pair or cluster.


-43083	System call stat() or fstat() failed on file <file name>, error number <OS errno>.

An operating system error prevented information from being returned for the specified the file.

ACTION
Correct the error and retry your command.


-43084	Error <OS errno> while writing data to file <file name>.

An error occurred while writing to the file. The file system might be running out of space.

ACTION
Contact IBM Software support.


-83380	An archive checkpoint could not be completed in the secondary server.

An archive checkpoint was attempted on a secondary server but we failed. Possible
causes include the LOG_STAGING_DIR configuration parameter not being set, or not 
receiving a checkpoint from the primary server within the time interval specified
by the BAR_CKPSEC_TIMEOUT configuration parameter

ACTION
Check the online message log for more information and correct the problem.
If the checkpoint timed out you can increase the value of the BAR_CKPTSEC_TIMEOUT
configuration parameter.

-83353	Attempt to reopen a parallel whole system backup failed with return code <error code>..

This is an internal error.

ACTION
Retry the parallel whole system backup. If it fails again, contact IBM Software Support.

-43141	The edition of Informix Dynamic Server currently running restricts the number of parallel backup or restore processes to <value>
Resetting BAR_MAX_BACKUP to <MAX VALUE>.

Some editions of Informix Dynamic Server limit the number of parallel 
backup or restore processes and this limit has been exceeded.

ACTION
The BAR_MAX_BACKUP configuration parameter has been dynamically reset 
to the maximum number processes that are allowed for this edition.

-83974	This edition of Informix Dynamic Server supports only <Number of Nodes> nodes in a cluster. Stopping connection attempt.

Some editions of Informix Dynamic Server limit the number of nodes in a cluster.

ACTION
Keep the number of nodes under the allowed value.
Ensure that the number of nodes in the cluster does not exceed the maximum number of nodes supported by the edition.

-83975	This edition of Informix Dynamic Server does not support <server type>  nodes in a cluster. Stopping connection attempt.

Some editions of Informix Dynamic Server limit the type of secondary nodes that can be added to the cluster.

ACTION
Avoid adding non-allowed node types to the cluster.


-26401	Cannot connect to accelerator server.

Connecting to the accelerator server failed.
Possible reason can be:
- The accelerator server is not running.
- The connectivity information (a group entry in the sqlhosts file with the
  name of the accelerator) is outdated or invalid.
- The database contains stale meta information (AQTs) of data marts that
  no longer exist.

ACTION
Check if the accelerator server is operational.
Log on to the computer as either user root or as user informix, and then run
this command: ondwa status

Check the sqlhosts file to find the group entry with the name of the
accelerator. If the entry is considered correct, it is possible that the
authentication token is outdated. It may be necessary to renew the entry
by removing the accelerator and setting up the initial connection anew, as
described in the manual. If the accelerator is shared with another Informix
server instance (e.g. in a HA environment), it may be necessary to get an
up-to-date copy of the sqlhosts entry from one of the sharing Informix server
instances.

The meta information for data marts (AQTs) are special views in the system
catalog table systables of a database, with a name beginning with "aqt".
After removing data marts when connected to a different database, or after
setting up the accelerator server from scratch, it is possible that stale
AQTs are left over. Stale AQTs should be removed manually using the
"DROP VIEW ..." command.


-26402	The dynamic SQL operation failed to run on the accelerator server.

The dynamic SQL operation failed on the accelerator server during the
PREPARE, OPEN, FETCH, or CLOSE phase.

ACTION
Note all the circumstances including the complete error message and
contact IBM Software Support.

-26403	An SQDWA error occurred.

The query cannot be accelerated due to an internal error that was detected
in the SQDWA component.

ACTION
Note all the circumstances including the complete error message and contact IBM Software Support.

-26404	The query cannot be accelerated. Fallback to running the query on the database server is disabled.

Is is not possible to accelerate the query and the query cannot be sent to
the database server for processing.

ACTION
To enable the query to run on the database server, run the following
statement and then run the query again: set environment use_dwa 'fallback on'

-26406	Opening multiple cursors to an accelerator server is not allowed.

Opening multiple cursors to an accelerator server from a single session
is not allowed.

ACTION
Close the previous cursor before opening a new cursor to the same accelerator
server.

-26407	Changing the data type for the host variables is not allowed in an accelerated query.

Changing the data type of host variables is not allowed during query
acceleration.

ACTION
Prepare the SQL statement again using the new host variables, and then run the
query again.

-26408	Arithmetic operation resulted in an overflow

The value is too large, and an overflow has occurred.

ACTION
You either sent an arithmetic expression in an SQL statement or prepared
statement to a database server, or a database server returned an arithmetic
expression. This expression caused an overflow. Change the arithmetic
expression so that it does not cause an overflow.

-21528	Defragment: The partition does not require defragmentation.

ACTION
No action required. 

-21529	Defragment: Could not find a large enough extent to cover 2 or more extents.

ACTION
Add another chunk to the dbspace or delete some partitions to create more free space.

-21530	Defragment: Defragmentation is not supported on secondary servers.

ACTION
Defragment on the primary server. Changes will be replicated to the 
secondary servers. 

-21531	Defragment: A partition that contains a partition header page table cannot be defragmented. 

ACTION
Do not attempt to run the defragmenter on the partition header page table - this
 is not allowed.

-21532	Defragment: The partition is in the wrong state or an incompatible type

ACTION
If a conflicting action is occurring on the partition, run defragmentation 
later. Otherwise the partition is a type that cannot be defragmented. See the 
IBM Informix Data Server Administrator's Reference for information on 
defragmentation restrictions. 

-21533	Defragment: A defragmentation task is already in progress on this dbspace.

ACTION
Run one defragmentation task on a dbspace at a time. 

-21534	Defragment: Internal error - cannot map the logical page number.

ACTION
Contact IBM Software Support. 

-21535	Defragment: Internal error - cannot free the old chunk extent.

ACTION
Contact IBM Software Support.

-21536	Defragment: Internal error - cannot have two destination extents.

ACTION
Contact IBM Software Support.

-21537	Defragment: This command cannot be run while a defragmentation is in progress.

ACTION
Rerun the command after defragmentation is complete.

-21539	Defragment: You can't run this command on catalog/pseudo/temp tables

ACTION
Run defragment on a regular table/partition

-21541	The total amount of storage space for the list of dbspaces, blobspaces, and sbspaces exceeds the TENANT_LIMIT_SPACE property setting for the tenant database. 

ACTION
To resolve the discrepancy between the total size of the current storage spaces and the configured storage limit, you can take at least one of these actions: 
   1. Increase the value of the TENANT_LIMIT_SPACE property, 
   2. or change the list of storage spaces, 
   3. or reduce the size of one or more of the storage spaces.

-21551	Tenant PIT Restore Generic Error

ACTION
This is a Tenant PIT Restore Generic Error.

-26451	STATCHANGE can take values in the range of 0 to 100.

ACTION
STATCHANGE specifies a percentage of how much a table distribution can change before it is considered stale. Set STATCHANGE to an integer value in the range from 0 to 100.

-26452	You cannot specify the STATLEVEL as FRAGMENT for non-fragmented tables.

ACTION
You can set the STATLEVEL attribute to the FRAGMENT option only for fragmented tables. Specify the TABLE or AUTO options for non-fragmented tables.

-26454	Cannot specify both a PRIMARY KEY constraint and a NULL constraint for the same column.

The database server issues this error when the CREATE TABLE or ALTER TABLE  
statement attempts to define a table schema that includes a column definition  
with contradictory specifications regarding NULL values. 
   - The PRIMARY KEY constraint prevents the database server from storing NULL  
     values in this column.
   - The NULL constraint allows the database server store NULL values in this
     column.

To avoid this error, revise the column definition so that it does not include
both PRIMARY KEY and NULL specifications on the same column.
   - If you want this column to be the primary key of this table, you must drop
     the NULL specification in the column definition.
   - If you want to allow NULL values in this column, you must drop the PRIMARY
     KEY specification in the column definition.

-26455	Cannot specify both a NOT NULL constraint and a NULL constraint for the same column.

The database server issues this error when the CREATE TABLE or ALTER TABLE
statement attempts to define a table schema that includes a column definition
with contradictory specifications regarding NULL values.
   - The NOT NULL constraint prevents the database server from storing NULL
     values in this column.
   - The NULL constraint allows the database server store NULL values in this
     column.
 
To avoid this error, revise the column definition so that it does not include
both NOT NULL and NULL specifications on the same column.
   - If you want to prohibit NULL values in this column, you must drop the
     NULL specification in the column definition.
   - If you want to allow NULL values in this column, you must drop the NOT
     NULL specification in the column definition.

-26456	The authorization ID <%s> is not defined for the trusted context.  

Authorization name <authorization-name>  attempted to reuse a trusted connection
using trusted context. The trusted context name can not be used under the
<authorization-name>. The switch user failed. 

This error can also occur for one of the following reasons:

    - The authorization ID is allowed to use the trusted context, but 
      authentication is required and the request to switch users did not
      include the authentication token
    - The authorization ID is allowed to use the trusted context, but the
      trusted context is disabled
    - The system authorization ID attribute of the trusted context object
      associated with the trusted connection has been changed
    - The trusted context object associated with the trusted connection
      has been dropped

The attempt to reuse the trusted connection fails. The trusted connection is 
in an unconnected state.

-26457	The trusted context <context-name> already exists.

The context name is already defined in the database. For CREATE TRUSTED CONTEXT 
or ALTER TRUSTED CONTEXT statement, a trusted context with the specified name
already exists. Verify that you have specified the correct context name and that 
you are in the correct database. 

-26458	The trusted context specified authorization ID <authorization-name>
which is already specified for another trusted context.

A CREATE TRUSTED CONTEXT or ALTER TRUSTED CONTEXT statement for specified
SYSTEM AUTHID <authorization-name>, but this authorization ID is already
defined to use a different trusted context. A system authorization ID
that is defined as the SYSTEM AUTHID for a trusted context cannot be 
associated with any other trusted context as the SYSTEM AUTHID.

Use the following query to determine which trusted context is already
using the authorization ID:

SELECT CONTEXTNAME FROM SYSUSER.SYSTRUSTEDCONTEXT
WHERE AUTHID = <authorization-name>

To correct this error change the authorization ID for the trusted context
and reissue the CREATE or ALTER statement.

-26459	The trusted context <context-name> does not exist.

The specified trusted context <context-name> does not exist in the database.
Verify that you have specified the correct trusted context name. 

-26460	Attribute with value <value-name> cannot be dropped or altered
because it is not part of the definition of trusted context.

Attribute <value-name> was specified for a trusted context, but the 
trusted context is not defined with an attribute with this name. The statement
could not be processed.

To correct this error remove the name of the unsupported attribute and 
re-issue the statement.

-26461	Attribute with value <value-name> is not unique for trusted context. 

During the CREATE TRUSTED CONTEXT or ALTER TRUSTED CONTEXT a duplicate 
value <value> was specified for the attribute. Each pair of attribute name
and value must be unique for a trusted context. The statement cannot be processed.

To correct this error remove the non-unique specification of <attributename> 
and and re-issue the statement.

-26462	User <user-name> cannot be dropped or altered because it is not part 
of the definition of trusted context 

User <user-name> was specified for a trusted context, but the 
trusted context is not defined with an user with this name. The statement 
could not be processed.

To correct this error remove the name of the undefined user and 
re-issue the statement.

-26463	User <user-name> is not unique for trusted context.

During the CREATE TRUSTED CONTEXT or ALTER TRUSTED CONTEXT a duplicate 
value of  user <user-name> was specified in the WITH USE FOR clause.
The statement cannot be processed.

To correct this error remove the non-unique specification of user name 
and and re-issue the statement.

-26464	A CREATE TRUSTED CONTEXT or ALTER TRUSTED CONTEXT statement specified 
<%s> more than once or the trusted context is already defined to be used by
this authorization ID or PUBLIC.

The statement specified that <authorization-name> be allowed to use the trusted
context, but the specified authorization ID or PUBLIC is already defined to use 
the trusted context, or the authorization ID was specified more than once in 
the statement. The authorization ID or PUBLIC must not already be allowed to use
the trusted context, and it can only be specified once within a statement for a 
trusted context. The statement could not be processed.

If the authorization ID or PUBLIC was specified more than once, remove the extra
specifications of <authorization-name>, and re-issue the statement. If an ALTER 
TRUSTED CONTEXT statement that contained an ADD USE FOR clause, and the trusted
context already was defined for use by that authorization ID or PUBLIC, use the
REPLACE USE FOR clause instead to redefine the usage characteristics for the 
specified users to use the trusted context.

-26465	An ALTER TRUSTED CONTEXT statement for specified <%s> but the trusted 
context is not currently defined to be used by this authorization ID or PUBLIC.

An ALTER TRUSTED CONTEXT statement for attempted to replace or remove the
ability for <authorizationname> to use the trusted context, but the specified
authorization ID or PUBLIC is not currently defined to use the trusted context.
The statement could not be processed.

If an ALTER TRUSTED CONTEXT statement that contained a REPLACE USE FOR clause, 
and the trusted context was not already was defined for use by that authorization 
ID or PUBLIC, use the ADD USE FOR clause instead to define the trusted context to
be used by the specified users. If the ALTER TRUSTED CONTEXT statement contained 
the DROP USE FOR clause, none of the specified authorization IDs or PUBLIC were 
currently defined to use the trusted context.

-26466	ENCRYPTION attribute <%s> cannot be specified more than once.

Specify only one ENCRYPTION attribute in a statement. Alternatively, specify one
WITH ENCRYPTION attribute for each ADDRESS attribute. 

-26468	A DBSECADM users cannot create a trusted context for themselves.

The statement (CREATE TRUSTED CONTEXT or ALTER TRUSTED CONTEXT) was not
processed because the specified SYSTEM AUTHID matched that of the DBSECADM
user who ran the statement.

Specify a different authorization ID or run the statement as a different 
DBSECADM user.

-26469	A trusted connection was not established because the trusted context 
is not enabled. 

Ensure that the trusted context is correctly defined and enabled, and then try
to establish a trusted connection.

-26470	The database specified ('database name') is not associated with the
trusted context.

Specify the correct database for the trusted context associated with
the current trusted connection or establish a regular connection to the database.

-26471	Internal Function (%s): Unable to send or receive from the Session Manager.

This error indicates that the server was able to establish connection to the
Session Manager but failed to send or receive data.
If you cannot find a direct cause for this internal error, note
all circumstances and contact IBM Software Support.

-26472	Internal Error occurred during a BLOB operation in function %s.

If you cannot find a direct cause for this internal error, note
all circumstances and contact IBM Software Support.

-26473	Internal Error occurred. The required parameter %s is NULL.

If you cannot find a direct cause for this internal error, note
all circumstances and contact IBM Software Support.

-26474	Internal Error occurred during codeset conversion in function %s.

If you cannot find a direct cause for this internal error, note
all circumstances and contact IBM Software Support.

-26475	Function (%s): Unable to connect to the Session Manager.

This error indicates that the server is unable to connect to the Session Manager
which is necessary for debugging the SPL routine. Verify that the Session Manager
is running in the specified host system at the specified port number. Also make
sure that the Session Manager host and the port can be accessed from the host
system where the server is running.

-26476	Can not create temp table with ERKEY

It is illegal to create a temp table with ERKEY

-26477	Illegal usage of ERKEY

Your usage of ERKEY is not legal

-26478	Can not add ERKEY when table already has ERKEY

You attempted to alter a table to include the ERKEY attribute when that table
already had the ERKEY attribute.

-26479	Can not drop ERKEY when table does not have ERKEY

You attempted to alter a table to drop the ERKEY when the table did not
have the ERKEY attribute.

-26480	Illegal usage of ifx_replcheck

You attempted to use the ifx_replcheck column in an illegal manner.

-26481	Cannot perform this operation through a grid

Renaming replicated database is not supported through a grid.
Manually rename the replicated database at all grid servers outside
of the grid context.

-26482	Cannot alter a replicated table in a grid outside of the same grid context

The ALTER TABLE statement on a replicated table that was created through 
a grid must be executed within the same grid context and with 
replication enabled by setting the ER_enable argument to 1.

-26483	Grid or Region is not defined

A SET ENVIRONMENT GRID_SELECT command was issued using a non-existant
grid or region name.

-26484	SQL error encountered on a SET ENVIRONMENT GRID_SELECT command

Examine the message log file for more detailed information.

-26491	JDBC method (%s) not supported with this server.

A Java UDR invoked a method from the JDBC API that is not supported 
by J/Foundation in this version of the server. See the Informix release
notes for more information about JDBC compliance.

-26500	Query offloading is turned OFF

This query was not accelerated because query offloading is turned off.
To turn on query offloading, use the following statement:
SET ENVIRONMENT use_dwa '1'

-26501	Subquery matching is not supported

This subquery was not accelerated because accelerating a subquery is not
supported yet.

-26502	Contradictory filters in where clause will not produce any rows

This query was not accelerated because the where clause have contradictory
filters which will result in no rows. Hence there is no need to off-load this
query to accelerator.

-26503	Statement is not a SELECT or SELECT INTO statement

This statement was not accelerated because it is not a SELECT or
INSERT INTO ... SELECT ...  statement.

-26504	Query containing FOR UPDATE is unsupported for offloading

This query was not accelerated, because it contains a FOR UPDATE clause.

-26505	Query contains a pseudo table

This query was not accelerated, because it contains a pseudo table.

-26506	Query contains a temporary table

This query was not accelerated, because it contains a temporary table.

-26507	Query contains a table which is not a real table

This query was not accelerated, because it contains a table which is not a real
table (e.g. view, external table, sequence, synonym).

-26508	Query contains a system catalog table

This query was not accelerated, because it contains a system catalog table.

-26509	Query contains a table in remote database

This query was not accelerated because it contains a table that does not reside
in the database to which the user is connected.

-26510	Cannot identify fact table

This query was not accelerated because the fact table cannot be identified.
For outer joins, the fact table is the leftmost table in the query.
For inner joins, the fact table is the table containing most rows.

-26511	Cannot access the AQT dictionary

This query was not accelerated because an error occurred when trying to access
the AQT dictionary cache.
Note all circumstances and contact IBM Software Support.

-26512	No data marts are defined on this database
This query was not accelerated because no data marts are defined on the current
database.

-26513	Data mart is virtual but the AVOID_EXECUTE directive is not set

This query was not accelerated because the data mart it matches to is a virtual
data mart. To match against virtual data marts, the AVOID_EXECUTE optimizer
directive or explain setting must be set.

-26514	Query contains more tables than data mart reference definitions

This query was not accelerated because it contains more tables than the number
of references in the data mart definitions. Informix offloads only queries fully
contained in a single data mart.

-26515	Query does not contain a fact table of any data mart

This query was not accelerated because it does not contain a fact table of any
data mart defined on this database.

-26516	Query contains combination of tables not contained in any data mart

This query was not accelerated because it uses a set of tables that is not
contained in any data mart definition. Check the tables and references used in
your data mart definitions.

-26520	ON clause contains a non-equality join between columns

This query was not accelerated because it contains an OUTER join with a
non-equality join predicate between two columns. Query acceleration is only
possible on equality join predicates of two columns.

-26525	OUTER join with in-join filter (extends NULLs)

The query was not accelerated because it contains an OUTER join with
in-join filter.
The ON clause of an ANSI OUTER join query must not contain other expressions
than equality joins between columns (e.g. non-equality filters or table filter).
The WHERE clause of an INFORMIX OUTER join query must not contain non-equality
filters or table-level filters on subservient tables. 

For example, the following queries cannot be accelerated. 
ANSI outer join queries : 
SELECT * FROM f left join d ON (f.col1 = d.col1 AND f.col2 > d.col2) 
SELECT * FROM f left join d ON (f.col1 = d.col1 AND f.col2 > 0) 
SELECT * FROM f left join d ON (f.col1 = d.col1 AND d.col2 > 0) 
Informix outer join queries : 
SELECT * FROM f outer d WHERE f.col1 = d.col1 AND f.col2 > d.col2 
SELECT * FROM f outer d WHERE f.col1 = d.col1 AND d.col2 > 0 

-26528	OR clause contains joins between different tables

This query was not accelerated because it contains an OR clause with equality
join predicates that refer to more that two tables.

-26529	OR clause contains joins between different columns

This query was not accelerated because it contains an OR clause with equality
join predicates that refer to more that two columns.

-26530	Query contains a full join

This query was not accelerated because it contains a full OUTER join.
Full OUTER joins are not eligible for query acceleration.

-26532	ON clause of LEFT OUTER refers to more than two tables

This query was not accelerated because it contains a LEFT OUTER join with an
ON clause that refers to more than two tables.

-26534	INNER join must be on first level of joins

This query was not accelerated because it contains an INNER join that is not
on the first level of joins. Query acceleration on INNER joins is only possible
if the INNER join in on the first join level.

-26536	INNER join contains a non-equality join between columns

This query was not accelerated because it contains an INNER join with a
non-equality join predicate between two columns. Query acceleration is only
possible on equality join predicates of two columns.

-26537	INNER join refers to more than two tables

This query was not accelerated because it contains an INNER join with an
ON clause that refers to more than two tables.

-26538	Joins do not form a star or snowflake scheme

This query was not accelerated because it does not join the contained tables
in a star or snowflake scheme. The number of joins must be one less than the
number of tables.

-26540	Table cannot be fact table, it is used by query with different aliases

This query was not accelerated because it contains the fact table more than
once. The fact table is used by the query with different aliases.

-26543	Query does not contain an equality join from the data mart definition
	and none of the columns in the equality join has a unique index

This query was not accelerated because it does not contain an equality join that
is present in the data mart definition, and none of the columns in the equality
join has a unique index. If a reference in the data mart definition is not
reflected by the corresponding equality join predicates in the query, then these
equality join predicates can be omitted from the query only if at least one of
the columns has defined a unique index on it. Otherwise, the accelerator does
not preserve the correct number of rows.

-26544	Query does not contain a table from the data mart definition
	and there is no unique index defined on that table

This query was not accelerated because it does not contain a table that is
present in the data mart definition with a reference defined on it, and there
is no unique index defined on that table. If a reference in the data mart
definition contains a table that is not present in the query, this table can be
omitted from the query only if there is a unique index defined on it. Otherwise,
the accelerator does not preserve the correct number of rows.

-26546	Query contains equality joins that are not present in the data mart
	definition

This query was not accelerated because it contains equality joins that are not
defined as references in the data mart definition.

-26547	Query does not contain an equality join from the data mart definition
	and none of the columns in the equality join from the data mart
	definition have a unique index

This query was not accelerated because it does not contain an equality join that
is present in the data mart definition and none of the columns in the equality
join of the data mart definition have a unique index. If a reference in the data
mart definition is n:m, then this reference needs to be reflected by an equality
join in the query.

-26552	Column is not contained in the data mart definition

This query was not accelerated because it refers to a column that is not
contained in the definition of the data mart.

-26555	Expression is not supported

This query was not accelerated because it contains an expression that is not
supported by the accelerator.

-26557	Data type is not supported

This query was not probed successfully because it contains a column whose
data type is not supported by the accelerator.

-26558	Query contains implicit column

This query was not accelerated or probed successfully because it contains
an implicit column. Tables contain implicit columns if they are created or
altered using the following options:

option           | implicit columns
-----------------+--------------------------------------
WITH CRCOLS      | cdrserver, cdrtime
WITH REPLCHECK   | ifx_replcheck
WITH VERCOLS     | ifx_insert_checksum, ifx_row_version
WITH ERKEY       | ifx_erkey_1, ifx_erkey_2, ifx_erkey_3
WITH ROWIDS      | rowid

-26559	Query does not explicitly contain columns

This query was not probed successfully because it does not explicitly contain
columns. E.g. a query like "select count(*) from t" does not select specific
columns.

-26560	Cannot find synonym for table.

This query was not probed successfully because it contains a table that does
not reside in the current database and no synonym is defined on this table.

-26561	Default informix sqlcode returned for not matched ISAO server sqlcode.

This query returned a error from the accelerator in drda sqlcode and 
drda sqlstate form. This error did not match any of the existing IDS sqlcode.
So IDS server gives this default sqlcode error.

-26563	The query cannot be accelerated because the unary function with expression is not supported on the accelerator.

The query contains unary function with expressions as argument. If the data types in the expression are non-numeric types then the accelerator returns error. So such queries need to be prevented from off-loading to the accelrator.


-26564	The Query containing windowed aggregates is unsupported for offloading

This query was not accelerated, because it contains a windowed aggregates.


-26565	Row type cannot be used as an OUT/INOUT parameter in a C UDR when the
routine is invoked by another SPL routine.

-26700	User (<username>) was not found.

The specified user name is not registered in the database server. This error 
occurred when the ALTER, RENAME, or DROP statement was run. Verify the user name 
and then rerun the statement.  It is also possible that the user was previously 
removed or renamed.

-26701	User (<username>) was not created because it already exists.

Verify the user name. If you want to create a user, specify a unique user name 
that is not registered in the database server. If you want to change the 
properties of a user account, you can use either the DROP USER or RENAME USER 
statement and then rerun the CREATE USER statement. You can also use the ALTER 
USER statement to change the properties of an existing user. 

-26702	User (<username>) cannot connect to the database server because the user account is locked.

To unlock the user account, run the ALTER USER statement with the ACCOUNT UNLOCK 
option. Only a database server administrator (DBSA) can manage user accounts. 
In a non-root installation, the DBSA is the user who installed the product. 
Log in as the user who installed this database server to modify user accounts. 

-26703	User (<username>) is not authorized to create, alter, drop, or rename users.

Only a database server administrator (DBSA) can manage user accounts. In a 
non-root installation, the DBSA is the user who installed the product. Log in as 
the user who installed this database server to modify user accounts.  

-26704	User name (<username>) exceeds the maximum length. Specify a user name that is not longer than 32 characters.

-26705	The password specified for user (<username>) is not valid. Specify a password that contains 6 - 32 characters.

-26706	Cannot add a password to the user (%s) because a password already exists. Use the MODIFY option instead of the ADD option.

An ALTER USER operation can only add a password for a user if that user does not have a 
password. If you want to change the password, use the MODIFY option in the ALTER statement. 
If you want to drop the password, use the DROP option in the ALTER statement.

-26707	User (<username>) cannot be created because the user is not mapped to any properties.

When you create a user for a non-root installation, you must use the PROPERTIES 
option with the CREATE USER statement. You can exclude the PROPERTIES option in 
the CREATE USER statement if the user has operating-system properties on the 
host computer. Also, you can exclude the PROPERTIES option if default properties 
exist on the database server.  

-26708	Incorrect old password supplied for user (<username>).

-26709	The new password specified for user (%s) is not valid. Specify a password that contains 6 - 32 characters.

-26710	PUBLIC is a reserved word. You cannot create, drop, alter, or rename a user with the name PUBLIC.

-26711	The default user was not found.

The default user is not registered in the database server. This error occurred when the ALTER, RENAME, or DROP statement was run. Verify the default user is registered and then rerun the statement.  It is also possible that the default user was previously removed or renamed.

-26712	The default user was not created because it already exists.

If you want to change the properties of the default user, you can use the ALTER DEFAULT USER statement. Alternatively, you can run the DROP DEFAULT USER statement and then rerun the CREATE DEFAULT USER statement with different properties.

-26713	Do not specify a password while creating the default user.

The default user can have properties, but it cannot have a password. User accounts associated with the default user have the same properties.

-26714	An internal error occurred while hashing the password. Record all circumstances prior to the error and contact IBM Software Support.

-26715	Cannot alter the user (<username>) because only one USER or UID property is allowed.

A user must have either one USER property or one UID property. The ALTER operation failed 
because it would not have resulted in one USER or UID property.

-26716	Cannot alter the user to add groups because the number of groups would exceed the maximum limit (<max_groups>).

The total number of groups after the ALTER USER operation cannot exceed the maximum number 
of allowed groups (16).

-26717	An internal error occurred while performing an ALTER operation. Note all
circumstances and contact IBM Software Support.

-26718	Cannot alter the user (<username>) to add a home directory because the property value already exists. Use the MODIFY option instead of the ADD option.

An ALTER USER operation can only add a home directory if no home directory exists. If you 
want to modify the home directory, use the MODIFY option in the ALTER statement.

-26719	The ALTER statement specified an incorrect authorization value (<auth-value>).

The valid values for the AUTHORIZATION option are "dbsa", "dbsso", "aao", and "bargroup".

-26720	Cannot change a property value more than once in the same ALTER statement.

In a single ALTER statement a property can only be changed once.

-26721	Cannot drop the password for the user (<username>) because the password is specified. Do not include a value for the PASSWORD property with the DROP option.

When dropping password for the user, the password value cannot be specified.

-26722	The surrogate user name (<username>) exceeds the maximum length of 32 characters. Specify a user name that has 32 characters or fewer.

-26723	The value of the surrogate property HOMEDIR exceeds the maximum length. Specify a value that is less that 255 bytes.

-26724	Cannot drop the HOMEDIR property for the user (<username>) because a value is specified. Do not include a value for the HOMEDIR property with the DROP option.

In an ALTER USER operation to drop a specified property, a value should be supplied only 
when the property is GROUP or AUTHORIZATION. For all other properties, a property value 
cannot be specified.

-26725	Cannot drop the UID property for the user (<username>) because a value is specified. Do not include a value for the UID property with the DROP option.

In an ALTER USER operation to drop a specified property, a value should be supplied only 
when the property is GROUP or AUTHORIZATION. For all other properties, a property value 
cannot be specified.

-26726	Cannot drop the USER property for the user (<username>) because a value is specified. Do not include a value for the USER property with the DROP option.

In an ALTER USER operation to drop a specified property, a value should be supplied only 
when the property is GROUP or AUTHORIZATION. For all other properties, a property value 
cannot be specified.

-26727	The SQL statement cannot assign operating system properties to the user (<username>).

The specified user account is an operating system user account and it is managed by 
the operating system administrator. You can use the CREATE USER and ALTER USER 
statements only to grant administrative database server privileges to this user 
account. Use the AUTHORIZATION keyword with a valid authorization property: DBSA 
(Database Server Administrator), DBSSO (Database System Security Officer), 
AAO (Audit Analysis Officer), or BARGROUP (authority to execute ONBar commands).

-26728	The uid %s is not in the /etc/informix/allowed.surrogates file or in the cache.

You must add the uid before it can be a surrogate.

-26729	The user %s is not in the /etc/informix/allowed.surrogates file or in the cache.	
You must add the user before it can be a surrogate.

-26730	The gid %s is not in the /etc/informix/allowed.surrogates file or in the cache.	

You must add the gid before it can be a surrogate.

-26731	The group %s is not in the /etc/informix/allowed.surrogates file or in the cache.	
You must add the group before it can be a surrogate.

-26732	The USERMAPPING feature is disabled. The USERMAPPING configuration parameter must be set to BASIC or ADMIN.

-26733	A gridtable can only be altered, renamed or dropped 
within a grid context.
You must Connect to the appropriate grid prior to issueing the alter or 
drop table statement.

-26734	A database containing gridtables can only be droppen within a grid context
You must Connect to the appropriate grid prior to dropping the database

-26735	Invalid parameter for CLUSTER_TXN_SCOPE.  The only allowed values are DEFAULT, SESSION, SERVER, and CLUSTER

-84221	Server name (<Informix Server>) already exists with a different definition in the source's SQLHOSTS file.

The server name specified as target for the snapshot copy operation already exists
in the SQLHOST file of the source server and it points to a different TCP/IP port
and/or machine.

Fix the SQLHOSTS files and retry the operation.

-84502	XA transactions are not supported on read-only secondary servers	
An XA transaction was run on a read-only secondary server.

ACTION
Modify your application to prevent the xa start() function from running on a read-only secondary server. Or, make the secondary server updatable using the UPDATABLE_SECONDARY configuration parameter.

-26801	Cannot reference an external database that is not case sensitive.

This statement refers to a database other than the current database.
However, the current database is a case sensitive database, and the
external one is not. This action is not supported, because the databases
that are used in a single distributed transaction either must all be case 
sensitive, or else must all be case insensitive.

-26802	Cannot reference an external database that is case sensitive.

This statement refers to a database other than the current database.
However, the current database is a case insensitive database, and the
external one is not. This action is not supported, because the  databases
that are used in a single distributed transaction must all be case 
sensitive, or else must all be case insensitive.

-33488	The options specified require a C++ compiler, but one could not be 
found.

The options passed to the ESQL/C compiler require that the application be linked
with a C++ compiler. Ensure that a C++ compiler is installed on your system and
that the PATH environment variable contains the location of your C++ compiler.

-33489	The GL_USEGLU environment variable setting requires a C++ compiler,
but one could not be found.

The GL_USEGLU environment variable setting requires that the application be linked
with a C++ compiler. Ensure that a C++ compiler is installed on your system and
that the PATH environment variable contains the location of your C++ compiler.
If ICU support is not required by your program, unset the variable.

-26901	An alias cannot represent another alias.

The statement failed because the alias definition specified that the alias 
represented another alias instead of a real table name. 
A table can have multiple aliases, but an alias cannot have an alias. 
Rerun the statement with a real table name before the AS keyword in the alias 
definition.

-26902	[Internal] Client decimal buffer size mismatch

A client application has sent the incorrect buffer size for a field that has a decimal or numeric
data type. This can lead to a loss of precision or the truncation of digits of the decimal value.

ACTION
If you are using IBM Informix JDBC driver versions 3.50.JC8, 3.70.JC2, or earlier, upgrade to the 
latest version of the IBM Informix JDBC driver.

If you want to ignore this error, set the database server environment variable
IFMX_TEMP_CQ00225490 to 1 and restart the database server.

-26903	Multiple execution of a CREATE TABLE statement that was prepared once 
is not allowed.

A CREATE TABLE statement that was prepared only one time cannot be executed 
multiple times.

ACTION
Either set the AUTO_REPREPARE configuration parameter to 1 in the onconfig file
or include the FREE statement after the PREPARE CREATE TABLE and EXECUTE 
statements.

-26904	Attached, non-vanilla or interval fragmented compressed indexes are not supported.

Compressed indexes must be detached indexes but not interval fragmented or non-vanilla.

-26905	The procedure was not created because its definition has more than 341
parameters

The maximum number of parameters in a procedure definition is 341. Reduce the
number of parameters to 341 or fewer and retry the CREATE PROCEDURE statement. 

-26907	Routine creation failed because a collection variable was defined as a
global variable.

A variable that is based on a collection data type cannot be declared as a
global variable.

-26950	Clustered compressed indexes are not supported.

Compressed indexes must be non-clustered indexes. After you create a 
clustered index, you can compress it  using an SQL admin API command.

-26951	The grid query failed to run.  Contact IBM Software Support.

-26952	The statement failed because the grid query contained a server name.

Server names are not valid when a GRID clause is used.  Remove any 
reference to a specific server from the query and run the statement again.

-26953	The statement failed because the grid or region does not exist.

The specifid grid or region is not defined.  Include an existing grid or
region name in the GRID clause and run the statement again.

-26954	The statement failed because the grid query contained a UNION or UNION ALL operator.

Statements that include the GRID clause cannot contain the UNION or UNION ALL operators.  Remove the UNION and UNION ALL operators from the query and run the statement again.

-26955	The statement failed because of an invalid value for the SET ENVIRONMANT GRID_NODE_SKIP statement

The valid values for the GRID_NODE_SKIP option are DEFALULT, 'on', or 'off'.  Run the statement again with one of the valid values.

-26956	Cannot run the SET ENVIRONMENT SELECT_GRID or SELECT_GRID_ALL statement.

There was not enough memory to execute the command.

-26957	The statement failed because the grid query cannot connect to a server.

One of the servers in the grid is not currently available.  Wait until the 
server is available, or run the SET ENVIRONMENT GRID_NODE_SKIP 'on' 
statement and then run the statement again.

-26958	The statement failed because the grid query contained one or more subqueries.

Satatements that include the GRID clause cannot contain subqueries.  Remove all subqueries from the query and run the statement again.

-26959	The statement failed because the syntax for the grid query is incorrect.

Fix the grid query syntax and run the statement again.

-26960	The statement failed because the grid query contained a table that is not a grid table.

Make the table available for a grid query by running the 
cdr change gridtable command or by using OAT.  Then run the statement again.

-26961	The statement failed because a table in the grid query is in the process of being altered.

A table that is being altered cannot be included in a grid query until
the alter operation has propagated to all nodes in the grid.

-26962	The statement failed because the grid query contained coorelated joins.

Statements that include the GRID clause cannot contain correlated joins.   Remove all correlated joins from the query, and run the statement again.

-26963	The statement failed because the grid or region has no members.

Specify a different grid or region in the GRID clause, or add members to the
grid or region, and then run the statement again.


-26964	Cannot connect to a shard node.

A SELECT statement was made to a sharded table but the server containing
one of the shards is currently unavailable.


-26965	Sharded query failed because it does not contain a sharded table.

The remote query path generated by optimizer must contain sharded table.
Contact IBM Software Support.


-26966	Sharded query included unsupported extended data types.

The query contains one or more SQL data types that are not supported in
sharded queries.


-26967	A connection to a shard node could not be established

Examine which node was not available and then retry the query.
Verify the SHARD_ID and node names are all unique.


-26968	A connection to a shard node was lost

Correct the reason for the lost of the network connection and then
retry the query. Verify that all the shard nodes are online.


-26969	Parallel Sharded Queries Not active

Parallel Sharded Queries is not active on the local server.


-26970	Parallel Sharded Queries not available on shard node

Parallel Sharded Queries does not exist on a shard node.
Verify the SHARD_ID is valid and unique.


-26971	Sharding connection Connect Error.

The shard cluster could not connect to one of the remote shard servers.


-26972	Sharding Internal Error.

Parallel Sharded Queries encountered an internal error. Contact IBM Software
Support. 


-26973	Triggers are not supported in sharded queries.

The query includes triggers or trigger body statements that are not supported
in sharded queries. 


-26974	Sharded tables are not supported inside procedure or function.

You cannot include a sharded table in a procedure or function.


-26975	Cannot include a FOR UPDATE clause in a SELECT statement on a sharded table.

A SELECT statement that operates on a sharded table cannot contain a FOR UPDATE
clause. 

Edit the SELECT statement or the cursor declared and remove this clause.


-26976	The statement failed because it attempted to move rows between shard servers.

The statement contains an update to a shard key that requires the row to move
to another shard server. This type of update is not allowed. 

To update the shard key of a row, delete the row and then insert it with the
new values.


-26977	Sharded queries are not supported within an XA environment.

Sharded queries are not supported within an XA environment.


-26991	The query failed because the FROM clause includes more than one sharded table.

A SELECT statement cannot include more than one sharded table in the FROM clause.

-26992	The sharded query failed because of an internal error.

The query on a sharded table encountered an internal error. If this error
recurs, note all circumstances and contact IBM Software Support.


-26993	Cannot alter the table to shard collection table.

Collection table can only be altered to shard collection table.


-32519	Passwords are only allowed in SET SESSION AUTHORIZATION statements
for a trusted connection using a trusted context.

A SET SESSION AUTHORIZATION statement with a password, was executed outside
of a trusted connection.

-88001	C-ISAM function <FUNTION NAME> returned error <ERROR CODE>. 

The C-ISAM processor returned an error.

Check the C-ISAM error code and correct the situation.

-88002	Memory allocation error.

An attempt to allocate memory from the system failed.

Release some memory and retry the operation.

-88003	Cannot create a file or directory at <PATH>.

Informix PSM attempted to create a file or directory but the attempt failed.

Check the associated operating system error and correct the situation.

-88004	Cannot rename a file or directory to <PATH>.

Informix PSM attempted to rename a file or directory but the attempt failed.

Check the associated operating system error and correct the situation.

-88006	An unspecified error occurred,

A generic, unexpected error happened.

Check additional errors and the configuration and contact IBM Support if the problem persist.

-88008	The specified path <PATH> is not a directory or does not exists.

Informix PSM Attempted to open a directory that does not exist.

Correct the situation and attempt to run the command again.

-88014	When creating a new device, a device type is needed.
When creating a new device, a device type is needed.

Provide a device type (either FILE or TAPE) and retry the operation.

-88015	A block size must be specified for device type %s.

The specified device type requires a block size.

Provide a block size and retry the operation.

-88016	An empty pool was provided.

A valid pool name is needed for the operation.

Provide a valid pool name and retry the operation.

-88017	Invalid pool <POOL-NAME> specified

The specified pool is not known.

Provide a valid value for the pool. 

-88018	Invalid device type <DEVICE-TYPE> specified.

The specified type of device is not known.

Provide a valid value for the device type.

-88019	Invalid block size for device <DEVICE-PATH>.

The block size specified for the device is not correct.

Fix the block size and retry the operation.

-88020	nvalid media size for device <DEVICE-PATH>.

The media size specified for the device is not correct.

Fix the media size and retry the operation.

-88021	Cannot update the device <DEVICE-PATH> because it is in use. 

NONE

NONE

-88022	Error -88022: Cannot delete the device <DEVICE-PATH> because it is in use.

Informix PSM Failed to delete the named device because it is in use.

Wait until the device is idle and retry the operation.

-88023	Error -88023: Cannot open the device definition file <TEXT-FILE>.

Attempt to open a Informix PSM device definition file failed.

Check the associated operating system error code.

-88035	No Device is available to mount in pool <POOL-NAME>.

The storage manager was asked to mount a volume for a specified 
pool, but no device was found.

Be sure that a device has been created for the specified pool.
Also be sure that the devices for the given pool are available.

-88056	The device requested in the operation (<OPERATION>) does not exist.

You tried to perform an operation on a device that does not exist. For example you tried to delete a device that does not exist.

Resubmit the command with the correct device or pool.

-88057	The specified device does not belong to the specified pool.

Either the device or the pool is incorrect

Correct the device or pool provided.

-88058	The specified device <DEVICE-PATH> cannot be deleted.

An error prevented the storage manager from deleting the specified device.

Check the accompanying error and fix the situation.

-88101	Cannot create catalog tables

Check the Informix PSM catalog directory pointed by the Informix PSM_CATALOG configuration
parameter ($INFORMIXDIR/etc/psm by default) for access permissions.
Check the associated operating system and or C-ISAM errors and correct the
situation.

-88102	Informix PSM catalog creation failed at <DIRECTORY>.

Informix PSM attempted to create the Informix PSM catalog tables in the specified directory, but
failed.

Check associated error messages and resolve the issues.
Check the value of the Informix PSM_CATALOG configuration parameter or environment
variable for the catalog location.

-88103	Error -88103: Cannot open catalog table <TABLE-NAME>.

An attempt to open a catalog table failed with either an C-ISAM error
number or an operating system error number.

Check the accompanying error numbers and correct the situation 
before trying the command again.

-88104	Error -88104: Cannot close catalog table descriptor <FILE-DESCRIPTOR> for table <TABLE-NAME>.

An attempt to close a catalog table failed with either an C-ISAM error
number or an operating system error number.

Check the accompanying error numbers and correct the situation
before trying the command again.

-88105	Error -88105: Cannot lock catalog table <TABLE-NAME>.

An attempt to lock a catalog table failed with either an C-ISAM error
number or an operating system error number.
One reason for this error is that the lock timeout set for Informix PSM is either too 
short or not long enough.

Check the accompanying error numbers and correct the situation
before trying the command again.
Try to make the configuration parameter Informix PSM_TIMEOUT longer if the 
associated C-ISAM error is ELOCKED or EFLOCKED.

-88106	Error -88106: Cannot build a new index for catalog table <TABLE-NAME>.

The storage manager attempted to build an index for the specified catalog table, but
encountered an error.

Check the associated operating system and or C-ISAM errors and correct the
situation.

-88107	Error -88107: Cannot insert record into catalog table <TABLE-NAME>.

The storage manager attempted to insert one or more records to the specified catalog table, but
encountered an error.

Check the associated operating system and or C-ISAM errors and correct the situation.

-88108	Error -88108: Cannot delete records from catalog table <TABLE-NAME>.

The storage manager attempted to delete one or more records from the specified catalog table, but
encountered an error.

Check the associated operating system and or C-ISAM errors and correct the
situation.

-88109	Cannot update to catalog table <TABLE-NAME>.

The storage manager attempted to update one or more records in the specified catalog table, but
encountered an error.

Check the associated operating system and or C-ISAM errors and correct the
situation.

-88110	Cannot read from catalog table <TABLE-NAME>.

The storage manager attempted to read one or more records in the specified catalog table but
encountered an error.

Check the associated operating system and or C-ISAM errors and correct the
situation.

-88111	Cannot get index information for catalog table <TABLE-NAME>.

Informix PSM attempted to obtain index information for a table, but failed.

Check the associated operating system and or C-ISAM errors and correct the
situation.

-88112	Cannot demote the 'HIGHEST' priority device in the pool <POOL NAME>.

Informix PSM attempted to demote the device identified as having the HIGHEST priority in the pool to priority 'HIGH', but an error was returned.

Check the associated operating system and or C-ISAM errors and correct the situation.

-88113	Catalog table <TABLE NAME> is not present.

An attempt to open a catalog table failed because the table is missing.

Check the accompanying error numbers and correct the situation 
before trying the command again.

-88114	The Informix PSM catalog is missing

The Informix PSM catalog is not present in the specified directory

Informix PSM will try to create the catalog.

-88115	The Informix PSM catalog is corrupted.

The Informix PSM catalog is corupted. Either there are missing tables, or the existing tables are damaged.

Manaully inspect that there are no missing tables in the Informix PSM_CATALOG_PATH directory.
Run 'onInformix PSM -C check' command. If this does not solve the issue, import the catalog back.

-88116	The Catalog import operation was aborted.

Multiple problems can cause this problem including an already existing catalog.

Check Associated errors, correct the sittuation and re-run the operation.

-88117	Attempt to load table <TABLE NAME> failed.

Informix PSM attempted to load a catalog table but encontered an error.

Check associatted errors.

-88118	Attempt to erase table <TABLE NAME> failed.

Informix PSM attempted to erase a catalog table but encontered an error.

Check associatted errors.

-88119	The import file has incorrect number of columns in line <LINE NUMBER>.

The unload file being used to load a catalog table has an incorrect number of columns.

Check the file for corruption and fix it or use another load file.

-88130	Error -88130: Informix PSM initialization failed.

The storage manager attempted to obtain index information for a table, but failed.

Check the associated operating system and or C-ISAM errors and correct the
situation.

-88131	Error -88131: The environment variable 'INFORMIXDIR' is not set.

The storage manager attempted to obtain index information for a table, but failed.

Check the associated operating system and or C-ISAM errors and correct the
situation.

-88132	Error -88132: An attempt to allocate memory to store the value of the 'INFORMIXDIR'
environment variable failed.

The value of the environment variable might be invalid or corrupted.
Your system might be extremely low in memory.

Check the value of the 'INFORMIXDIR' environment variable.
Check that your system is not low in memory.

-88133	Error -88133: An attempt to allocate memory to store the value of the 'ONCONFIG'
environment variable failed.

The value of the environment variable might be invalid or corrupted.
Your system might be extremely low in memory.

Check the value of the 'ONCONFIG' environment variable.
Check that your system is not low in memory.

-88134	Error -88134: An attempt to allocate memory to store the value of the 'PSMCONFIG'
environment variable failed.

The value of the environment variable might be invalid or corrupted.
Your system might be extremely low in memory.

Check the value of the 'PSMCONFIG' environment variable.
Check that your system is not low in memory.

-88150	Warning -88150: The BAR_BSALIB_PATH configuration parameter is not set.

The BAR_BSALIB_PATH parameter is not set in the onconfig file. Therefore ON-Bar and all
utilities related to it are using the default path that changes from system to system.
This can lead to problems identifying the location of the library to use.

You must set the BAR_BSALIB_PATH configuration parameter to specify the XBSA library to 
be used by ON-Bar and related utilities. You must set this explicitly in the onconfig file.

-88151	Warning -88151: The XBSA shared library at <LIBRARY-PATH> cannot be loaded.

The XBSA library at the specified location cannot be loaded.

Check the accompanying system error and correct the situation.

-88152	Error -88152: The XBSA shared library at <LIBRARY-PATH> does not seem to be for the
Informix Primary Storage Manager.

The XBSA library at the specified location is not the for the Primary Storage Manager.

Check the BAR_BSALIB_PATH configuration parameter and the default location of the
ON-Bar shared library in your system.

-88160	The converted string <STRING> cannot be for in an INT4 integer.

We are trying to convert a string to INT4 but the value is too big.

Correct the values and retry the operation.

-88161	The length for the string <STRING> is too big to fit in <NUMBER> bytes.

The value that we want to assign to a string exceeds the size of the string variable.

Correct the values and retry the operation in the correct format.

-88162	The system cannot insert the specified device <DEVICE PATH> in the Informix PSM catalog.

The device specified in the operation or command could not be inserted into the Informix PSM catalog.

Check the associated errors for more information related to this problem.

-88163	The pool specified is invalid.

The pool specified is not valid.

Recheck the information that you need and then specify valid values for pools. 

-88164	The device type specified is invalid. 

The device type specified is not valid.

Review device-type information and specify a valid value for the device type.

-88165	The device path is longer than <NUMBER> bytes.

The device path specified is too long.

Specify a valid value for the full path of the device.

-88166	The priority specified for the device is invalid.

The priority specified for the device is invalid.

Specify a valid value for the priority of the device.

-88167	The device specification file has a syntax error at line <LINE-NUMBER>.

Incorrect syntax in the device specification file.

The offending part of the syntax has been ignored.
Correct the syntax and run the command again.

-88168	Loading devices from the device specification file failed.

The operator attempted to create a set of devices from a device specification file, but
the operation failed.

Check the accompanying messages and correct the situation.

-88180	Existing <CATALOG-VERSION> in the catalog is different from <CATALOG-VERSION>.

The Informix PSM catalog was created with a different version of the Primary 
Storage Manager, so processing cannot continue.

Recreate the catalog with the current Informix PSM release.

-88181	Devices of type <DEVICE-TYPE> are not supported in this platform.

Some device types are not supported in all platforms. For example, in the Windows 
operating system, tape devices are not supported.

Refer to the product documentation and use a supported type of device.

-88182	The XBSA Resource Type <RESOURCE-TYPE> is unknown.

The XBSA Resource Type that was specified is unknown to the system.

Refer to the product documentation and use a supported XBSA Resource Type.

-88183	Cannot Acquire a next sequential ID for the object.

Informix PSM tried to generate a serial number to insert a new record in a table but an error happened

Retry the action and contact IBM Support if the problem persist.

-88184	The pool name already exist in the system.

An attempt was made to create a pool that already exist in the system.

Delete the existing pool or try the action again or change the name of the pool that you wnat to create.

-88185	An error happened attempting to create a new pool.

The creation of the pool failed.

See the associated errors and correct the situation.

-88186	A defect in the program was found. Contact IBM Support.

A programming error was found in the program. This error should never happen.

Take note of all circumstances of the error and contact IBM Support immediately.

-88187	The pool that you attempted to delete does no exist.

The pool that you are trying to delete from the system does not exist.

Check the list of existing pools, verify the spelling and syntax and retry the operation.

-88188	The specified pool type <POOL-TYPE-NAME> is invalid.

An incorrect pool type was provided for the requested operation.

Check the manual for a list of valid pool types.

-88189	Close the Informix PSM session failed.

An error happened while trying to close a Informix PSM session.

Check the errors and contact IBM Support.

-88190	Failed to open a Informix PSM session.

An error happened while trying to open a Informix PSM session.

Check the errors and contact IBM Support.

-88191	Failed to generate the list of pools in the system

An error happened while trying to create a list of pools in the system

Check the errors and contact IBM Support.

-88192	Failed to add a pool to the system

An error happened while trying to add a pool to the system

Check the errors and contact IBM Support.

-88193	Failed to delete a pool from the system

An error happened while trying to delete a pool from the system

Check the errors and contact IBM Support.

-88194	System Pools cannot be deleted.

An attempt was made to delete a system pool.

Check the list of system pools in the manual, they cannot be deleted or modified.

-88195	Pools with devices cannot de deleted.

An attempt was made to delete a pool that has devices on it.

Delete the devices that are under the pool and retry the operation.

-88196	The device <DEVICE-PATH> cannot be modified.

An attempt was made to modify a device, but the operation returned an error.

Check that the combination of device path and pool exist in the system, correct any errors, and resubmit the command; or check the additional errors.

-88250	The function received an invalid handle

This is an internal error, a function received an invalid handler and we
cannot continue. This error should not happen.

Contact IBM Support.

-88300	The current user does not have authorization to run this utility.

The current user is not authorized to perform the current action.

The action must be performed by an authorized user.

-88301	The requested action <ACTION> is not valid for the current menu or is an incorrect action.

You tried to perform an invalid action for the current menu (such as "add" while using the catalog menu),
or the attempted action requested is not valid.

Check information on command line options and specify the correct information.

-88302	Duplicated instances of option <COMMAND-LINE-OPTION> are not allowed.

An attempt to have multiple instances of the same option was made, for example, to specify multiple pools for a single device.

Correct the command line information and retry the operation.

-88303	Not enough arguments for option <COMMAND-LINE-OPTION>.

The selected option requires more arguments than those that were provided.

Check command line information and fix the command line.

-88304	No more arguments were expected for the action <ACTION>.

You provided more arguments that were expected.

Check command line information and fix the command line.

-88305	The flag <FLAG> is not valid in the current context.

The specified flag is not valid for the current action.

Check command line information and fix the command line.

-88306	Cannot mix the following flags : <FLAG>

An attempt was made to specify mutually exclusive flags.

Check command line information and fix the command line.

-88307	The provided string <STRING-TEXT> for the argument is longer than <NUMBER> bytes.

An attempt was made to provide a string that is longer than what the program supports.

Use a string of the correct size.

-38602	Server failed to start in recovery mode within an expected time duration.

The server instance started, but did not move into recovery mode in the
allowable time.

ACTION
Check the Informix online log for messages about problems that occurred. Take
the necessary steps to fix those problems, and then rerun the restore utility.
If the problem persists, or no other problems are reported in the online log,
the server might need more time to move into recovery mode.

The restore utility waits 5 minutes, which is 5 times the default value of the
MAX_CONNECT_TRY_RESTORE environment variable. Set the environment variable to
a value greater than  60 seconds, and run the restore utility.

-9659	The server does not support the specified UPDATE operation on JSON documents

Use successive SELECT, DELETE and INSERT operations to update JSON documents

-9660	The database server operation failed due to an invalid JSON document.

Replace the invalid JSON document with a valid JSON document. To prevent the
problem from occurring in the future, ensure that the client inserts valid and
uncorrupted JSON documents into the database. 


-9661	The statement failed because constraint (%s) cannot be enabled with 
NOVALIDATE option.

Only foreign key constraints are allowed to be enabled with NOVALIDATE option.
Examine the sysconstraints.constrtype entry for this constraint in the system
catalog. Unless the value for this constraint is R, it is not a referential
constraint. Remove the NOVALIDATE keyword from the statement. 

-9662	No user permission for %s

The user/tenant in multitenancy mode is restricted to use only the
resources provided by the application provider. These resources can
be dbspaces, blobspaces, sbspaces, temp dbspaces, temp sbspaces etc..
In this case, the user/tenant is not permitted to use the resource.

-9663	Cannot %s tenant database.

A tenant database can only be dropped using the Admin API task('tenant
drop',..) statement.  A tenant database may not be renamed.

-9664	Session limit exceeded; transaction aborted or session aborted.

A session limit has been exceeded. The current transaction has been
aborted. The current session may also be terminated depending on the
limit exceeded.

-9665	Cannot create attached indexes on boolean, lvarchar, user defined data types and fragmented tables. 

Specifying IN TABLE as the storage option for create index statement,
creates a legacy attached index. This attached index supports the legacy behavior 
of Version 7.x of IBM Informix, in which the pages of nonfragmented B-tree indexes 
on nonfragmented tables are stored, by default, in the same dbspace partition 
as the data pages. These legacy behavior attached indexes are not supported on 
boolean, lvarchar, user defined data types and fragmented tables.

-9666	No connections are allowed while a tenant restore is in progress.

You cannot access the database that this statement requests because a tenant
restore is still in progress for this database spaces.

-------

---------
© Copyright IBM Corporation 1996, 2015