Hi Dustin,

Table and column names are called SQL identifiers and, according to the SQL standard, they are case-insensitive. Like many databases, Derby stores table and column names in uppercase.

You can get the behavior you want by double-quoting your table and column names. If you double quote these identifiers, then Derby, like other databases, will honor your casing. Here is some script output which demonstrates this behavior.

Hope this helps,
-Rick

ij> drop table t;
0 rows inserted/updated/deleted
ij> drop table "t";
0 rows inserted/updated/deleted
ij> create table t( a int );
0 rows inserted/updated/deleted
ij> create table "t" ( "a" int );
0 rows inserted/updated/deleted
ij> insert into t( a ) values ( 1 );
1 row inserted/updated/deleted
ij> insert into "t" ( "a" ) values ( 2 );
1 row inserted/updated/deleted
ij> select * from t;
A
-----------
1

1 row selected
ij> select * from "t";
a
-----------
2

1 row selected


Dustin S Houck wrote:
Hello,

I have been playing around with derby to determine if we want to use it in
a project at my work.  I have the db set up and populating the db with
table and am able to connect to the db using jdbc.  But after playing
around with it and completing some queries it appears the derby returns
query results with table names and column names in all caps (even though I
created then in lower case using the ij tool).

Is this correct? Has derby been implemented to always return table names
and column names in uppercase?  (this seems odd to me, since the derby db
is “case sensitive”)

Are there any settings/workarounds to fix this??


Dustin S. Houck
Software Engineer II
Raytheon Technical Services Company, LLC

Reply via email to