Name resolution of SQL objects

Informix® uses the following to identify an SQL object:

[database[@dbservername]:][{owner|"owner"}.]identifier

The ANSI convention is to use double-quotes for identifier delimiters (For example: "tabname"."colname").

Important: When using double-quoted identifiers, both Informix and Genero db become case-sensitive. Unlike Informix, Genero db object names are stored in UPPERCASE in system catalogs. That means that SELECT "col1" FROM"tab1" will produce an error if those objects are created without double-quotes; they are identified by COL1 and TAB1 in Genero db system catalogs.

With Informix ANSI-compliant databases:

With Genero db, an object name takes the following form:

[(schema|"schema").](identifier|"identifier")

Object names are limited to 128 chars in Genero db.

A Genero db schema is owned by a user (usually the application administrator).

Solution

As a general rule, to write portable SQL, you should only use simple database object names without any database, server or owner qualifier and without quoted identifiers.

Check that you do not use single-quoted or double-quoted table names or column names in your static SQL statements. Those quotes must be removed because the database interface automatically converts double quotes to single quotes, and Genero db does not allow single quotes as database object name delimiters.

See also issue Database Concepts