ANSI-Compliant Database Restrictions and Case Sensitivity
Owner Name Specification | What the ANSI-Compliant Database Server Does |
---|---|
Omitted | Reads or stores owner exactly as the login name is stored in the system, but returns an error if the user is not the owner. |
Specified without quotation marks | Reads or stores owner in uppercase letters |
Enclosed between quotation marks | Reads or stores owner exactly as entered. See also Using Quotation Marks and Referencing Tables Owned by User informix. |
If you specify the owner name when you create or rename a database object in an ANSI-compliant database, you must include the owner name in data access statements. You must include the owner name when you access a database object that you do not own.
CREATE VIEW 'nancy'.njcust AS SELECT fname, lname FROM customer WHERE state = 'NJ';
SELECT * FROM nancy.njcust;
In a distributed query, if the owner name is not between quotation marks, the remote database follows the lettercase convention of the local database. If the local database is ANSI-compliant, then the remote database processes the owner name in uppercase. If the local database is not ANSI compliant, then the remote database processes the owner name in lowercase.
WHERE
owner
= 'kaths'
), make sure that the quoted string matches the
owner name exactly as it is stored in the database. If the database
server cannot find the database object or database, you might need
to modify the query so that the quoted string uses uppercase letters
(for example, WHERE
owner = 'KATHS'
). Because owner name is an authorization identifier, rather than an SQL identifier, you can enclose owner between single-quotation marks ( ' ) in SQL statements of a database where the DELIMIDENT environment variable specifies support for delimited identifiers, thereby requiring double-quotation marks ( " ) around SQL identifiers.