Referencing Tables Owned by User informix
SELECT * FROM systables WHERE tabname = 'tab1' AND owner = 'kaths'; SELECT * FROM systables WHERE tabname = 'tab1' AND owner = 'Kaths';
SELECT * FROM "informix".systables WHERE tabname = 'tab1' AND owner = 'Kaths';
"informix".
system_tableinformix.
system_table'informix'.
system_table
INFORMIX
,
and the same standard does not support single ( ' ) quotation marks
as valid delimiters for owner names or for schema names. In contrast, HCL
OneDB treats
the name informix as a special case, and preserves lowercase
letters when informix is specified, with or without delimiters,
whether or not the database is ANSI-compliant. To write SQL code that
is portable to non-HCL
OneDB database
servers, however, you should always delimit the owner names of database
objects between double ( "
) quotation marks.
CREATE TABLE informix.t1(i SERIAL NOT NULL); CREATE TABLE someone.t1(i SERIAL NOT NULL);
If these statements execute successfully, the first table has informix
registered
in systables as the owner, and the second has SOMEONE
registered
as the owner. When the owner name is delimited by quotation marks
in SQL statements, the specified lettercase of owner is preserved,
but the lettercase does not matter when the owner name is undelimited,
because HCL
OneDB upshifts
most undelimited owner names, but downshifts the undelimited informix (or INFORMIX)
owner name to informix
.
CREATE TABLE INFORMIX.t1(i SERIAL NOT NULL);
This statement fails, because the combination of owner name and table name is not unique, if the previously registered table t1 that is owned by informix already exists in the database.
owner = USER
syntax fails.