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

Home -> Community -> Mailing Lists -> Oracle-L -> RE: Data Warehouse experts, a simple question for you

RE: Data Warehouse experts, a simple question for you

From: MacGregor, Ian A. <ian_at_SLAC.Stanford.EDU>
Date: Wed, 22 May 2002 13:20:57 -0800
Message-ID: <F001.00468570.20020522132057@fatcity.com>


If the data does not contain characters, AND NEVER WILL, it should be stored as a number. This prevents alphabetic "O's" from being stored with the data. If you really have to prefix the numbers with zeroes then do it on output. If the field itself is character and left padded with zeroes then you are going to see a lot of queries along the lines of

where <padded_field> like '%<significant_portion_of _number%' this won't use and index even though it might identify a unique record. A function-based index will not help here.

Ian MacGregor
Stanford Linear Acclerator Center
ian_at_SLAC.STANFORD.edu

-----Original Message-----
Sent: Wednesday, May 22, 2002 1:46 PM
To: Multiple recipients of list ORACLE-L

your fields should be consistent across tables, otherwise, you risk losing the ability for your queries to use an index if necessary.

If state code is char in one and num in the other, consider conversion on one of them, otherwise, oracle may do an implicit conversion on one of them during your queries.

For instance, if you write a query that says

SELECT *
FROM tab_a, tab_b
where tab_a.state_code = tab_b.state_code;

and these columns are two different datatypes, Oracle will actually run code similiar to the following:

SELECT *
FROM tab_a, tab_b
where to_num(tab_a.state_code) = tab_b.state_code;

and the use of this function in the where clause will disable the availability of an index on that column. The reason is that the index will be in characters and the value you are seeking will be a number.

You can use function based indexes to work around, but probably just better to store it the same in the first place.

hth,

/jack

> Paula_Stankus
> @doh.state.fl To:
> Multiple recipients of list
> ORACLE-L
> .us
> <ORACLE-L_at_fatcity.com>
> Sent by: root cc:
> Subject:
> RE: Data Warehouse
> experts, a simple
> question
> for you
> 05/21/2002
> 08:28 PM
> Please
> respond to
> ORACLE-L
>
>
>
>
>
>
>
>
> Okay you guys are silly. I have probably a stupid
> basic question to ask.
> How important is it to store data (let's say state
> codes, county codes with
> leading zeroes as character versus numeric). What is
> the standard out
> there? Does '02' mean the same thing as 2 for state
> code if you are
> consistent throughout your warehouse or do we need
> to consider other
> datasets out there that might be linked maybe
> sometime in the future? Can
> I leave it as is numeric and create materialized
> views with it padded or
> should I bite the bullet and reload into
> char/varchar2 datatypes?



Do You Yahoo!?
LAUNCH - Your Yahoo! Music Experience
http://launch.yahoo.com
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: Jack Silvey
  INET: jack_silvey_at_yahoo.com

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.com
-- 
Author: MacGregor, Ian A.
  INET: ian_at_SLAC.Stanford.EDU

Fat City Network Services    -- (858) 538-5051  FAX: (858) 538-5051
San Diego, California        -- Public Internet access / Mailing Lists
--------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
Received on Wed May 22 2002 - 16:20:57 CDT

Original text of this message

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