Re: How can create case-insensitive database in oracle?

From: Walt <walt_at_boatnerd.com.invalid>
Date: Fri, 30 Jan 2004 11:45:43 -0500
Message-ID: <401A8A37.D644F684_at_boatnerd.com.invalid>


Guido Konsolke wrote:
>
> "Madjid Nasiri" wrote...
> > Hi,
> > I am basic in oracle. My Old programs write with Delphi and
 Databases:
> > Access, Paradox, MySQL, Microsoft SQL.
> > I write my code (SQL code) case-insensitivae, but now i need use
> > oracle database. The Oracle by default is case-sensitive, How can
 used
> > case-insensitive in oracle.
> >
> > Thanks
> > Madjid Nasiri
>
> Hi Madjid,
>
> I hope you are going to use a version >= 8.1.7 (9.2.0.4 would be
> best).
> Since you don't provide much infos to play around with, here are 2 two
> possible meanings of your post:
> 1. You want to store data case insensitive: do an 'insert...
> values(upper('Abcd'))...'.
> This will put your data in upper case into the tables.
> 2. Your data will be mixed-case and you want to select them case
> insensitive:
> create 'function based indexes' on every column you want to use in
> your where-clauses.
> Then 'select ... where <column_name> = 'ABCD'.
>
> If my assumptions about your intention are wrong, please explain it a
> little.

Sounds to me like a third possibility:

3. He has a body of SQL that is case-insensitive and mistakenly believes that Oracle SQL is case sensitive.

Majid,

Oracle SQL is case insensitive. The character data stored in Oracle is case sensitive.

i.e. the following statements are identical:   SELECT * from FOO where COL = 'BAR';
  select * From Foo WHERE col = 'BAR';

These two are not:
  SELECT * from FOO where COL = 'BAR';
  SELECT * from FOO where COL = 'Bar';

Oracle provides string functions UPPER() and LOWER() to deal with case-sensitivity issues. There's also INITCAP() but it doesn't always give you what you want.

-- 
//-Walt
// 
// http://tinyurl.com/3xqyq
Received on Fri Jan 30 2004 - 17:45:43 CET

Original text of this message