On 26 Feb 2013 09:26, James H. H. Lampert wrote:
We've had a request, in connection with BIRT reports on our
Wintouch product, to have lowercase field names in our SQL views
while the SQL source members did indeed have all lowercase field
names, when I then looked at the file from Squirrel SQL, the field
names still came up all-uppercase.
Is that just the nature of DB2/400?
For DB2, the column names are automatically folded to upper case,
except when they are enclosed with [delimited by] quotation marks [aka
double-quotes]. Other databases operate differently.
Thus the SQL identifier specified as the mixed-case
column name of Field_Name, the identifier is folded to the upper-case
column name of FIELD_NAME but when specified instead as the delimited
column name of "Field_Name", the identifier remains the mixed-case
column name of Field_Name
From my recollection, depending on client [settings], the
specification of columns in a statement requested from that client may
be passed to the server without folding, because the client could
automatically delimit the identifiers. For example the request to
SELECT Library FROM QUSRSYS.QAUGDBLL could be sent to the server as the
request SELECT "Library" FROM "QUSRSYS"."QAUGDBLL", whereby all of the
identifiers had been delimited to prevent the identifiers from being
folded to upper-case. If passed as the former SELECT with undelimited
identifiers, the error would be -206 because there is no column named
"LIBRARY" in the TABLE named QAUGDBLL in library QUSRSYS.
I expect the metadata method storesUpperCaseIdentifiers() of the
class AS400JDBCDatabaseMetaData will return True for the DB2; i.e. "the
database treats mixed case, unquoted SQL identifiers as case insensitive
and stores them in uppercase."