Subject | Re: [firebird-support] Case-sensitive object names |
---|---|
Author | Ann W. Harrison |
Post date | 2007-01-04T19:00:31Z |
landie_wu wrote:
identifiers are case insensitive and fold to upper case. Delimited
(i.e. quoted) identifiers are case sensitive and case-preserving.
Firebird follows the standard exactly in this case.
If you define and use unquoted identifiers, you'll have no
problems with case, except that show commands are kind of
ugly - they'll print identifiers in all upper case.
and Bob, BOB, bob, and bOb will be equivalent.
create table Bob (Sally integer, Jip integer);
works with these queries and other variants
select * from bob;
select * from Bob;
select * form BoB;
select * from BOB;
it also works with this:
select * from "BOB";
This table definition
create "Bob" ("Sally" integer, "Jip" integer);
works only with
select * from "Bob";
Regards,
Ann
>According to the SQL standards, non-delimited (i.e. unquoted)
> It seems, regardless of the script, all objects are created with
> uppercase names.
identifiers are case insensitive and fold to upper case. Delimited
(i.e. quoted) identifiers are case sensitive and case-preserving.
Firebird follows the standard exactly in this case.
If you define and use unquoted identifiers, you'll have no
problems with case, except that show commands are kind of
ugly - they'll print identifiers in all upper case.
> I am accessing Firebird from a .NET app that usesYour tool is generating delimited identifiers. Tell it not to
> Wilson's O/R Mapper. I keep getting error messages that said
> this-or-that table or field could not be found. If I change it to
> uppercase names then it works.
and Bob, BOB, bob, and bOb will be equivalent.
>This table definition
> Does anyone know if it's possible to create objects with the exact
> same casing as the script, ie. create table Bob will create a table
> named Bob, not BOB.
create table Bob (Sally integer, Jip integer);
works with these queries and other variants
select * from bob;
select * from Bob;
select * form BoB;
select * from BOB;
it also works with this:
select * from "BOB";
This table definition
create "Bob" ("Sally" integer, "Jip" integer);
works only with
select * from "Bob";
Regards,
Ann