Name resolution of SQL objects
Informix®
database[@dbservername]:][{owner|"owner"}.]identifier
The ANSI convention is to use double quotes for identifier delimiters (For example:
"customer"."cust_name"
).
Informix database object names are not case-sensitive in non-ANSI databases. When using double-quoted identifiers, Informix becomes case sensitive.
SELECT ... FROM customer WHERE ...
- The table name must include "owner", unless the connected user is the owner of the database object.
- The database server shifts the owner name to uppercase letters before the statement executes, unless the owner name is enclosed in double quotes.
SAP HANA®
CREATE TABLE tab1 ( Key INT, Col1 CHAR(20) )
-- Table name is "TAB1", column names are "KEY" and "COL1"
CREATE TABLE "Tab1" ( "Key" INT, "Col1" CHAR(20) )
-- Table name is "Tab1", column names are "Key" and "Col1"
In an SAP HANA, tables always belong to a database schema. When executing a SQL statement, a schema name must be used as the high-order part of a two-part object name, unless the current schema corresponds to the table's schema.
The default (implicit) schema is the current user's name but it can be changed with the
SET SCHEMA
instruction.
Solution
Case sensitivity in object names:
Avoid the usage of double quotes around the database object names. All names will be converted to uppercase letters.
The SAP HANA schema concept:
After a connection, the database interface can automatically execute a SET SCHEMA
name
instruction
if the following FGLPROFILE entry is defined:
dbi.database.dbname.hdb.schema= "name"
Here dbname identifies the database name used in the BDL program
(DATABASE dbname
) and name is the schema name
to be used in the SET SCHEMA
instruction. If this entry is not defined, no "SET
SCHEMA" instruction is executed and the current schema defaults to the user's name.
Examples:
dbi.database.stores.hdb.schema= "STORES1"
dbi.database.accnts.hdb.schema= "ACCSCH"