Efficiency of data type for surrogate keys
Hi all
In my fact table I have a foreign key of data type NUMBER and in my dimension I have a primary key of type NUMBER(12,0).
In my understanding, these two columns are stored in the same way and there will be NO conversion that needs to take place when the database joins these two columns? My belief was that the 12,0 acted simply as a constraint. My DBA says otherwise though I am not convinced. Can someone please weigh in on this?
Is it more efficient in any way at query time to have both columns declared as NUMBER?
Thanks,
Wrifster
The above link does answer your question.
"Oracle stores numeric data in variable-length format. Each value is stored in scientific notation, with 1 byte used to store the exponent and up to 20 bytes to store the mantissa. The resulting value is limited to 38 digits of precision. Oracle does not store leading and trailing zeros."
So an integer will be stored the same in "number" as "number(12,0)
You may also find this of use :- http://it.toolbox.com/blogs/oracle-guide/oracle-data-types-5-faqs-about-number-30525
Similar Messages
-
I am using Oracle 11.2.0.3. What is the best practice for choosing data type for surrogate key?
In my work place , I see other developers using NUMBER or INTEGER.
Thanks.ranit B wrote:
The above is called the Ingenuity+ of Sir Frank Kulash.
<snip>
You gotta love the subtleties of language and culture. :-)
To simply address someone as 'Sir' (as in "Sir, would you mind ...?" or simply "Yes, Sir" and "No, Sir") is a sign of respect.
But when "Sir" is used as a title by prefixing it to a name ("Sir Frank Kulash"), it is taken as an official title - specifically that of Knighthood, conferred by the British Crown.
ranit - Please don't think I'm calling you to task on this. Without a doubt, your English is better than my whateveryournativelanguageis. I always get a grin when someone inadvertently tries to confer Knighthood on someone, as it happens a lot around here. But it's a slow day at my office. Of course I quickly spot when something gets mangled in English. I've often wondered what kinds of mangling native English speakers do when they learn another language.
;-) -
DataModeler v3.3.0 - Naming standards template for surrogate keys creation
I'm using DM 3.3.0.734 and in the logical model we now can define in the entity properties to "Create Surrogate Key".
When we use Engineer to relational model, for each entity is automatically created a new column using the naming template {entity}_ID as NUMERIC (without precision) and is defined as primary key.
My questions are:
Is possible to define a different naming standard for surrogate key creation?. We define id_{entiry}
Is possible to set the precision of NUMERIC surrogate key?
If we define entity's column as Primary UID, these columns are included in an unique constraint, but are using the naming standards for PK.
As consequence are created the following:
Unique constraint name: entity_PK
Primary key(surrogate)name: entity_PKv1
There is any way to define naming standards like "{entity}_UID" for unique constraints, or even, "{entity}_SK" for surrogate primary key name?
Can anyone help with some of these topics?
Regards,
Ariel.Hi Ariel,
Naming standards template for surrogate keys creation I logged enhancement request for that.
How to change those bad names (going to change them one by one is not an option):
1) If those "transformed" unique keys are the only ones you have in relational model then simply can apply naming standards
2) You can write transformation script to do that for you
3) you can use new functionality - search, export to excel file, change the names there (using find/replace will be faster) and return changed data back to relational model
you can find description for that here:
https://apex.oracle.com/pls/apex/f?p=44785:24:13179871410726::NO:24:P24_CONTENT_ID,P24_PREV_PAGE:6621,16
http://www.thatjeffsmith.com/archive/2012/11/sql-developer-data-modeler-v3-3-early-adopter-search/
http://www.thatjeffsmith.com/archive/2012/11/sql-developer-data-modeler-v3-3-early-adopter-collaborative-design-via-excel/
You should search for _PK, then filter result on Index and you can export result using report functionality (to XLS or XLSX output format). You can create template and include only table and name (of index) as properties to be included into report.
Regards,
Philip -
I have a country dimension which is used in 5 cubes. Now I want to change 'key column' property of the country attribute. Whenever I do this, I get an error as "The key columns of the country measure group attribute do not match in either number or
data types to the key columns of the source attribute". I dont understand what this error is about.
Can someone please help? Thanks in advance.
-Regards,
Raj Patilsounds like you need to verify your dimensional usage tab to verify the relationships between dim and fact on the measure group.
Hi Talktorajpatil,
As Jon said, you can verify the relationships between dim and fact on the measure group on the dimensional usage tab. Use this section to define how you "join" your measure groups to your dimensions. There may be a Dimension-Measure Group relationship
that is defined using the wrong attributes and you'll need to select the correct attributes to link the Dimensions to the measure groups. Here are some similar thread for your reference.
http://social.msdn.microsoft.com/Forums/sqlserver/en-US/74203b66-8a71-4681-8e47-8f99cce87b3d/error-on-the-measure-group-which-do-not-match-the-data-type-of-the-key-column?forum=sqlanalysisservices
http://social.msdn.microsoft.com/Forums/sqlserver/en-US/2421058d-fd4a-44b8-8c7c-b0b349bbef2d/measure-group-attribute-key-column-does-not-match-source-attribute?forum=sqlanalysisservices
Hope this helps.
Regards,
Charlie Liao
TechNet Community Support -
Data Type for Process Flow... PB with Date?
I've got a problem by passing parameters in process flow.
I have a mapping with a parameter DATE_EXEC (data type : DATE) and a default value that is TO_DATE('20/01/2007' , 'dd/mm/yyyy') . My mapping is working good when i launch it.
I have a process flow which contains the mapping. This process has a parameter DATE_EXEC (data type : DATE). I bind the 2 DATE_EXEC. But when i launch my mapping the value is not recognized, I try with :
- TO_DATE('20/01/2007' , 'dd/mm/yyyy')
- 20/01/2007
- 2007.01.20
- 2007-01-20
My question is what are the data type in process flow? They are not ORACLE TYPE.
For example , a parameter in a mapping which is a VARCHAR2 must be input between quotes but if you bind it to a parameter of a process flow which is a STRING (not ORACLE Data type) , you must input it without quotes?
Anybody has some rules about that?
I apologize for my english, i'm a french people.Here is some information on the literal quote or not quote query and what I think you need to do at the end, hope it helps. Not exactly intuitive...since the flow designer (you) have to know what is a PLSQL object and what is not.
1. Literal = FALSE
When Literal = FALSE is set then the value entered must be a valid PL/SQL expression which is evaluated at the Control Center e.g.
'Hello World!'
22 / 7
2. Literal = TRUE
When Literal = TRUE then the value is dependent on the the type of Activity. If the activity is a PL/SQL object i.e. Mapping or Transformation, then the value is PL/SQL snippet. The critical difference here is that the value is macro substituted into the call for the object. The format of the value is identical to that entered as default value in the Mapping editor. e.g.
'Hello World!'
sysdate()
If the activity type is not a PL/SQL object then the value is language independent. e.g.
Hello World
3.1427571
What you should try......
Check the map activity parameter in your process flow to see if literal is false (an expression), set it to false and then try using your TO_DATE('20/01/2007' , 'dd/mm/yyyy') expression, deploy your flow and execute. Alternatively the user guide defines the DATE type for flow with the format YYYY-MM-DD so you can have the parameter value as '2007-01-20' use literal equal to true and remember and quote your value.
Cheers
David -
Query regarding the data type for fetcing records from multiple ODS tables
hey guys;
i have a query regarding the data type for fetcing records from multiple ODS tables.
if i have 2 table with a same column name then in the datatype under parent row node i cant add 2 nodes with the same name.
can any one help with some suggestion.Hi Mudit,
One option would be to go as mentioned by Padamja , prefxing the table name to the column name or another would be to use the AS keyoword in your SQL statement.
AS is used to rename the column name when data is being selected from your DB.
So, the query Select ename as empname from emptable will return the data with column name as empname.
Regards,
Bhavesh -
Labview How to specify 1d array of clusters as data types for variant to data
Hi, I'm new to labview. Can anyone tell me how to specify 1d array of clusters as data types for variant to data?
First of all, you should be sure that there is such a data type within the variant; otherwise, you will run into errors.
I recommend you to create the cluster and create a type definition from it. Then drop an array shell from the array palette and drop the cluster type into that array.
Connect that constant to the data type input of the Variant To Data function.
Norbert
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it. -
How to change data type for a field?
Hi Experts,
I have one std screen having one field having numeric type. So it will accept only numeric value. Remember I am using standard transaction.
Now my user wants to enter the special character like + or - in that field(having data type numeric).
How i can change the data type for the particular field so that it will also accept + or -?
Plz reply me as earliest as possible.
Thanks in advance.Hi salil ,
u have to change / create Domain of that Data Element.
but u have to check the Implications. i have done the same thing , but that one is Customer defined one , i got nearly 20 short dumps while doing the TP.
regards
Prabhu -
Default date type for IT0041 in action
Hi,
I configure feature DATAR to set 01 as default date type for IT0041, but when I do hiring action, default date type will be 01,02,12.
Don't know where to change the default.Hi,
Please verify if there is any dynamic action in table V_T588Z set-up for same which may cause override over default.
Also, verify if your DATAR feature is set up correctly for relevant country grouping and activated.
Thanks,
Ameet -
How create data type for coulmn name having special characters in IR
hi ,
any idea how to create how to do create data type for coulmn name having special charactersHi Amit,
Can you ellaborate ?
Actually if you are reading a file(or anything else) which contains special characters, the data type can be created as done for other interfaces. But it is in the adapters that we actually take care of handling these special characters.
ShabZ -
Data Type for a Longitude/Latitude Column in an Oracle dB Table?
Greetings All,
What is the recommended data type for a Longitude(Lon) or Latitude(Lat) Column of an Oracle dB Table? I am creating a signs inventory table in our Oracle database to be used as a data warehouse for our signs inventory. The Lon and Lat fields along with some other data will be populated from a MS access file exported from our Geodatabase. Currently the data type for the Lon and Lat fields of the MS access file is defined as "Double". A couple of Examples of the Lon and Lat data are as follows:
Lat Lon
59.4564555909 -135.3133542922
64.841125 -148.01808
...What data type should these two columns be defined in the new Oracle database table??? Should the data type be defined as FLOAT(126), NUMBER(10, 6), or else? Any suggestions/help on this would be greatly appreciated.
If the data type is defined as NUMBER(10,6), the first example of Lon "-135.3133542922" will be truncated to "-135.313354" or would I receive an error while trying to import the data from an access file to the Oracle dB?
Thanks in advance for any/all the help.Orchid,
Is SDO_GEOMETRY available in Oracle 10g?Yup. I'm still on 10g as well; there's no shame in that.
How do I format my lat/long's into WKT and use the SDO_GEOMETRY constructor?The March 16th example shows the steps, but I take it you're trying to get your data from MS Access into Oracle. Is that right? If so, consider these options:
OPTION 1, When you have < 50k records
Simply write a query that returns INSERT statements that you can run against Oracle.
For example, let's say you have a table in MS Access defined as msaCoords (ID, LongX, LatY).
Let's say, your destination table in Oracle is named oraCoords(ID NUMBER, Geometry MDSYS.SDO_GEOMETRY). Then,
SELECT "INSERT INTO oraCoords (ID, Geometry) VALUES (" & ID & ", SDO_GEOMETRY('POINT (" & LongX & "," & LatY & "'), 8307);" FROM msaCoords;
-- "MS-ACCESS QUERY RESULTS"
INSERT INTO oraCoord (ID, Geometry) VALUES (1, SDO_GEOMETRY('POINT (-135.3133542922,59.4564555909'), 8307);
INSERT INTO oraCoord (ID, Geometry) VALUES (2, SDO_GEOMETRY('POINT (-148.01808,64.841125'), 8307);Save those MS-ACCESS QUERY RESULTS to a text-file (D:\MyPts.sql). Launch SqlPlus and type @D:\MyPts.sql
Once it's done, type Commit into SqlPlus and you're done.
OPTION 2, when you have > 50k records
Use SqlLoader. There's an example posted { here | http://forums.oracle.com/forums/thread.jspa?messageID=9412123� }
Cheers,
Noel -
Hey guys
i have a HTTP to File scenario where in my getting and XML file which has sone tags of this form
<ServiceDateTime dateTypeIndicator="PromisedForDelivery">2007-04-06</ServiceDateTime>
how should i create data type for this?
is this an attribute?
thanx
ahmadHi,
Just "Insert Attribute" by right-clicking on ServiceDateTime.
Regards,
Bill -
How to create the Data Type for the receiver end?
Hello Expertise
I wanted to Create a Data type for Receiver end in PI.
Sender end is ECC.
Receiver end is SRM
Here's the Data type for Sender end as
Can anyone help to create the Data type for Receiver end i.e SRM.
Thanks in advance.
Regards
karanHi Karan,
Please don't call Sir, we are just trying to help each other.
Please go through below scenario's and check your configuration.
ABAP Client Proxy to ABAP Server Proxy Scenario - Process Integration - SCN Wiki
http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/e0ac1a33-debf-2c10-45bf-fb19f6e15649?overridelayout=true
http://wiki.scn.sap.com/wiki/display/XI/Step-by-step+FTP+to+ABAP+Proxy
regards,
Harish -
Data Types for RadioButtons and PushButtons
Is there a data type for representing radioButtons and pushButtons in the Oracle tables? If not, what is the alternative to using these controls?
nullHello,
The data type of your field is smallmoney or you want to convert a int or varchar value to smallmoney?
Hugs!
Bruno Destro
Dicas de programação em .net, C# e SQL - http://smcode.com.br/blog.aspx -
Suppress auto sequence and trigger DDL for surrogate keys?
Is there a way to suppress trigger and sequence creation for surrogate keys when export to DDL file?
I know most of the time the automatic sequence and trigger creation is welcome and very handy.
However I'm migrating from an old Designer model and there only the needed sequences are created.
They have a different name and trigger logic is custom (and generated outside designer).
There is a lot of package code depending on this. So I prefer to create and use different sequences.
Is there a way to achieve this? Any tips are welcome.CreateHi,
Note that generating the DDL for Oracle 12c means that it will attempt to use your Oracle 12c Physical model. So if you normally use Oracle 10g or 11g, you will find that any details from your Oracle 10g or 11g Physical Model will not be included. So this approach may have other implications for you.
If you are not using Oracle 12c, there are some relevant properties on the Auto Increment tab of the Relational Model properties dialog for the Column which may help:
Sequence Name - allows you to specify the name of the Sequence (which can be the name of a Sequence defined in the relevant Physical Model).
Trigger Name - allows you to specify the name of a Trigger (which can be the name of a Trigger that is defined for the Table in the Physical Model).
Generate Trigger - unsetting this will stop the Trigger being generated.
David
Maybe you are looking for
-
Displaying output in ALV Report..
Dear Guru's I have a Tipical Problem in Producaiton. when iam executing the report in Development Server it is working fine. but when I executing the same report in Producation server , first time it is given blank output(only layout) and once come
-
Report Painter Change Description ( Read it, Please )
Hi Please, How to change the description of a field based on sets ?? Example Report painter Report 1 2 3 all fields <------- I need to change this description but I do not get ( It's a default name ? ) 1 10 20 *all fields <------- I need to change th
-
Migration of code from one instance to another instance
Hi OAF Team, i want to migrate the (OAF)code form one instance(test) to another instance(Dev), what is the procedure and how can i migrate from one instance to another instance. could you please solution for this. Regards, Muthu
-
My order numbers is MHW9KSGLV , invoice number is 128022683431. My due day is oct 28, I change my new ipad3, I can't loin my u book , what can I do?
-
Where is the EQALIZERBUTTON in iTunes 7xx !?
Hi Peoples, Who isn´t missing it? they damned through it out! :-((( I wrote already here: http://developer.apple.com/contact/index.html Maybe anyone else would like to. They must know where the issues are. And this was a really bad idea to cut off th