Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.server -> Re: How to grant me permissions to my own tables ?

Re: How to grant me permissions to my own tables ?

From: Howard J. Rogers <howardjr_at_www.com>
Date: 2000/08/09
Message-ID: <399144f5@news.iprimus.com.au>#1/1

"Christopher Burke" <craznar_at_hotmail.com> wrote in message news:8mo307$goi$1_at_bunyip.cc.uq.edu.au...
> In article <398EBD0E.C4073DD7_at_edcmail.cr.usgs.gov>, Brian Peasland
> <peasland_at_edcmail.cr.usgs.gov> wrote:
> >> In my 15 years of programming and databasing, I had never come across a
> >> language that doesn't PRESERVE case, but RESPECTS it. I have been doing
> >> SQL for around 10 years, MS-SQL solidly for 3 years - and now I get a
> >> chance to work with a real DB, I am finding that programming, database
> >> development and the like have so far taken less than 20% of my time.
> >> The other 80% seems to be ironing out quirks in the system, quirks
> >> possibly preserved through time since version 1.
> >
> > Quirks in the system, or filling in the gaps in your knowledge?
>
> Gaps in my knowledge are things like PL/SQL and the like. Quirks are
> illogical things that must be learnt only by error. This is a quirk - no
> other language uses this philosophy for identifiers.
>
> >
> >> In Oracle (with a table called Fred - note the case).
> >>
> >> select * from Fred
> >>
> >> it first uppercases the Fred -> FRED
> >>
> >> then has the hide to tell me it cannot find FRED.
> >
> > This only happened because you used quotes around the table name when
> > you created it. When you use the quotes, it preserves the case. For
> > instance, you apparently used:
> > CREATE TABLE "Fred" AS ......
> >
> > If you had used:
> > CREATE TABLE Fred AS .....
> >
> > Then all of the following queries would have worked:
> > SELECT * FROM Fred; SELECT * FROM FRED; SELECT * FROM fReD; etc...
> >
> > I may be wrong about this but I believe that not preserving case, unless
> > explicitly stated by the quotes, is in compliance with the SQL-92
> > standard.
>
> Well I didn't put quotes around it to create it, as a matter of fact I
> hadn't even used quotes before. The tables were created from an ODBC
> source.
>
> All I can say is - its illogical to discard case AND respect it in the
> syntax of any language.
>

"Opinion is divided on the subject. All the other DBAs say Oracle is good; I say it is crap" (to paraphrase Blackadder).

The clue is in your statement "The tables were created from an ODBC source".

Before you start jumping up and down about how awful Oracle is, why don't you stop to consider what that intervening ODBC layer is doing for you? As others have (and will) tell you, Oracle doesn't worry about case. You create table fred, it gets stored in the data dictionary as FRED. You query for table FrEd, it will find it. Unless -unless, you create the table with a name using a literal string (ie, inside quotes) -at which point, Oracle will do entirely the decent thing and say to itself, 'well, if this loony wants a case-sensitive table name, I'd better give it to him'.

The point being -YOU didn't use the quotes -so who the hell did???!

Answer: check your ODBC interface.

Listen: I'm no apologist for Oracle. Any database that sets PCTINCREASE to 50 by default wants its head tested. But CHECK YOUR FACTS AND CIRCUMSTANCES before proclaiming the product is at fault in a matter like this.

Regards
HJR
> >
> > HTH, Brian
> >
> >
>
Received on Wed Aug 09 2000 - 00:00:00 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US