Circular joins in 11g
Hi Gurus,
I am working on 10g...In obiee there is no support for circular joins,if we do also consistency check will give us a Error..so I want to know is it Solved in 11g or is there any alternative provided in 11g to achieve circular join type of condition?please share your thoughts/information you have..
Thanks in Advance...
Hi,
Circular joins should not be used and its not a best practice, no matter the version of the tool.
Its always good to avoid them and use alias table to avoid them.
You might have got lots of stuff but also do refer below link to avoid:
http://www.rittmanmead.com/2008/08/resolving-fan-traps-and-circular-joins-using-obiee/
Hope this helped.
Regards
MuRam
Similar Messages
-
Multiple Fact Tables or Circular Joins?
I'm using OE schema to build an rpd, I'm importing foreign keys and I'm unable to decide which tables to be joined additional to the imported foreign key joins. If I'm not making any new joins I'm getting multiple fact tables and if I do make some joins I'm getting circular joins, some one please throw some light on this.
It is not a good idea to bring the OE schema tables as it is. The ideal approach would be to create a view that would represent the Fact table. For e.g this view could comprise of OE headers and OE line information and the reference id to the other dimensions.<br>
<br>
Similarly create views from customer table, item tables etc and then create a star schema surrounding the fact view with all these dimension views.<br>
<br>
-Nilesh<br>
Dashboard Development -
Hello Gurus,
I have created a logical model where I am using conformed dimensions for reporting on multiple facts withing that Business Model.
So lets say I have two dimensions Dim - Work Order and Dim - Company and I have two facts Fact - GL and Fact - SLA
Fact GL is joined to Dim - Work Order and Dim - Company also does the Fact SLA in both physical and logical.
I have created two Presentation subject areas and called it GL Analytics and SLA Analytics and put my respective GL and SLA facts and thier dims.
When I try to pull the columns only from by dimensions Work Order Number from Dim- Work Order and Company Name from Dim - Comapany, even though these are joined to Fact -SLA table OBIEE is issuing qeury to Fact - GL instead. So I can sense a circular join problem here. I can see only results from one Company Name but not Work order number in the analysis.
However in the BI Apps OOTB data model. I consider AP - Posted Transactions , AR - Posted Transactions with Dim - GL Account(Segment 1) and Dim - GL Company ( semgment 2) they to have a similar join. However when I query only dims Account number and Company name I get results for both and the query send joins to correct table W_AP_XACT_F and joins these dim tables.
What am I doing wrong here.
could someone please help me out.
Thanks in advance.
VidyaSHi VidyaS,
In the properties of your presentation subject area, you could specify an implicit fact column:
For each subject area in the Presentation layer, you can set an implicit fact column. The implicit fact column is added to a query when it contains columns from two or more dimension tables and no measures. The column is not visible in the results. It is used to specify a default join path between dimension tables when there are several possible alternatives or contexts.
Hope it helps,
Benoit -
Hi,
There are few dimension tables in my BMM Layer which is joined to every other table. I get circular joins error at this point. I tried duplicating the logical tables and avoided the circular schema. It always showed my an error.
Please guide me.
Thanks in Advance
Edited by: 914981 on Feb 16, 2012 5:43 AMHi,
Eliminate all circular joins (intra-dimensional circular joins) in a logical table source in the Physical Model by creating physical table aliases.
For example, say you have a Customer table that can be used to look up
ship-to addresses, and using a different join, to look up bill-to addresses.
Avoid the circular joins by aliasing the table in the Physical layer so that there is one instance for each purpose, with separate joins.
If its the same dimension table, make an alias on the dim for each different join you want to use and model them as seperate logical tables in the BMM.
Also refer thread for good understanding:
Re: Obiee - physical layer
Regards,
MuRam -
How to overcome the problem of "Multiple Path exist between 2 dimension" "Circular Joins are not supported"
Ex: A--> B, C and B--> CPlease find below a small example:
Circular join:
Countries --> Customers
Countries --> Sales
Customers --> Sales
Solution with aliases:
Countries_Customers --> Customers
Countries --> Sales
Customers --> Sales
Other typical use of aliases is where you use a physical table for different meanings. For example countries might link to both the customer country and the country of the sales office. -
Problem with XMLTABLE and LEFT OUTER JOIN
Hi all.
I have one problem with XMLTABLE and LEFT OUTER JOIN, in 11g it returns correct result but in 10g it doesn't, it is trated as INNER JOIN.
SELECT * FROM v$version;
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
PL/SQL Release 11.2.0.1.0 - Production
"CORE 11.2.0.1.0 Production"
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
--test for 11g
CREATE TABLE XML_TEST(
ID NUMBER(2,0),
XML XMLTYPE
INSERT INTO XML_TEST
VALUES
1,
XMLTYPE
<msg>
<data>
<fields>
<id>g1</id>
<dat>data1</dat>
</fields>
</data>
</msg>
INSERT INTO XML_TEST
VALUES
2,
XMLTYPE
<msg>
<data>
<fields>
<id>g2</id>
<dat>data2</dat>
</fields>
</data>
</msg>
INSERT INTO XML_TEST
VALUES
3,
XMLTYPE
<msg>
<data>
<fields>
<id>g3</id>
<dat>data3</dat>
</fields>
<fields>
<id>g4</id>
<dat>data4</dat>
</fields>
<fields>
<dat>data5</dat>
</fields>
</data>
</msg>
SELECT
t.id,
x.dat,
y.seqno,
y.id_real
FROM
xml_test t,
XMLTABLE
'/msg/data/fields'
passing t.xml
columns
dat VARCHAR2(10) path 'dat',
id XMLTYPE path 'id'
)x LEFT OUTER JOIN
XMLTABLE
'id'
passing x.id
columns
seqno FOR ORDINALITY,
id_real VARCHAR2(30) PATH '.'
)y ON 1=1
ID DAT SEQNO ID_REAL
1 data1 1 g1
2 data2 1 g2
3 data3 1 g3
3 data4 1 g4
3 data5 Here's everything fine, now the problem:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bi
PL/SQL Release 10.2.0.1.0 - Production
"CORE 10.2.0.1.0 Production"
TNS for HPUX: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
--exactly the same environment as 11g (tables and rows)
SELECT
t.id,
x.dat,
y.seqno,
y.id_real
FROM
xml_test t,
XMLTABLE
'/msg/data/fields'
passing t.xml
columns
dat VARCHAR2(10) path 'dat',
id XMLTYPE path 'id'
)x LEFT OUTER JOIN
XMLTABLE
'id'
passing x.id
columns
seqno FOR ORDINALITY,
id_real VARCHAR2(30) PATH '.'
)y ON 1=1
ID DAT SEQNO ID_REAL
1 data1 1 g1
2 data2 1 g2
3 data3 1 g3
3 data4 1 g4As you can see in 10g I don't have the last row, it seems that Oracle 10g doesn't recognize the LEFT OUTER JOIN.
Is this a bug?, Metalink says that sometimes we can have an ORA-0600 but in this case there is no error returned, just incorrect results.
Please help.
Regards.Hi A_Non.
Thanks a lot, I tried with this:
SELECT
t.id,
x.dat,
y.seqno,
y.id_real
FROM
xml_test t,
XMLTABLE
'/msg/data/fields'
passing t.xml
columns
dat VARCHAR2(10) path 'dat',
id XMLTYPE path 'id'
)x,
XMLTABLE
'id'
passing x.id
columns
seqno FOR ORDINALITY,
id_real VARCHAR2(30) PATH '.'
)(+) y ;And is giving me the complete output.
Thanks again.
Regards. -
Error: 38015, Physical tables have multiple joins.
Hi,
I have 5 dimensions and 1 fact table. One of the dimension table have 2 keys, which are referenced with fact table.
I have created aliases for all table on which I have defined joins.
But, It is giving me error like
ERRORS:
GLOBAL:
*[38015] Physical tables "obidb".."ORDER_DETAILS"."FACT" and "obidb".."ORDER_DETAILS"."BILLING_ACCOUNT" have multiple joins.*
Delete new foreign key object if it is a duplicate of existing foreign key.
Please give me any suggestions.....
Thanks.Hi,
Did your deleted existing foreign key before joining the alis_dim1(fk1), dim1(fk2) to fact join?
double check u r model its comes like circular join so by using alias method u r can resolve that issue.
In your model just check all your FK relation ship here u can find FK ending with #1 (double time just delete them and check metadata consitancey) if its not working delete the dimension and import it newly then create alias of the dim then join each other required fact also check below link
http://mtalavera.wordpress.com/2012/03/29/obieerpd-fails-global-consistency-on-joins-between-tables/
Thanks
Deva
Edited by: Devarasu on Nov 23, 2012 4:44 PM -
Hi all,
I have two tables and there is no direct join between them in physical or logical layer, but there is a few indirect joins through a few tables.
When I put these tables in one report in presentation services, it doesn't give an error. From query log I can see that it joined these tables one using one of tables between. What I want to understand is how it decides the join. If there is more then one path between tables how it decides to go.Hi seth2,
I think if you have more than one way to go in you table, then OBIEE will produce an error.
It is recommended that you use table aliases frequently to eliminate extraneous joins, including the following:
* Eliminate all physical joins that cross dimensions (inter-dimensional circular joins) by using aliases.
* Eliminate all circular joins (intra-dimensional circular joins) in a logical table source in the Physical Model by creating physical table aliases.
Come from here : http://download.oracle.com/docs/cd/E12103_01/books/admintool/admintool_RepositorySetup7.html
If you have more than one logical table source in the business model layer then obiee will choose the table which have the lowest grain defined. Obiee call this an Aggregate Navigation :
http://gerardnico.com/wiki/dat/obiee/bi_server/design/fact_table/obiee_query_rewrite
Regards
Nico -
Doubt regarding joins in obiee
hi gems...
i have a doubt regarding BI analytics join.
When i have imported all the tables from my schema in the repository, then it got imported with all the joins defined in the database.
then i made several business models and create some reports.
there i got some errors, which are mainly due to self join in the tables and more than one joins between two tables.
my question is...are these two types of joins not supported in obiee???
and if i want more than one join condition between two tables, then what can i do???
thanks in advance...Hi User,
OBIEE doesnot support self join. To avoid such circular joins ,make use of alias tables in the physical layer.The following is a list of the main reasons to create an alias table:
To reuse an existing table more than once in your physical layer (without having to import it several times.
To set up multiple alias tables, each with different keys, names, or joins.
To help you design sophisticated star or snowflake structures in the business model layer. Alias tables are critical in the process of converting ER Schemas to Dimensional Schemas
Rgds,
Dpka -
3-1674105521 Multiple Paths error while using Bridge Table
https://support.us.oracle.com/oip/faces/secure/srm/srview/SRViewStandalone.jspx?sr=3-1674105521
Customer Smiths Medical International Limited
Description: Multiple Paths error while using Bridge Table
1. I have a urgent customer encounterd a design issue and customer was trying to add 3 logical joins between SDI_GPOUP_MEMBERSHIP and these 3 tables (FACT_HOSPITAL_FINANCE_DTLS, FACT_HOSPITAL_BEDS_UTILZN and FACT_HOSPITAL_ATRIBUTES)
2. They found found out by adding these 3 joins, they ended with circular error.
[nQSError: 15001] Could not load navigation space for subject area GXODS.
[nQSError: 15009] Multiple paths exist to table DIM_SDI_CUSTOMER_DEMOGRAPHICS. Circular logical schemas are not supported.
In response to this circular error, the developer was able to bypass the error using aliases, but this is not desired by client.
3. They want to know how to avoid this error totally without using alias table and suggest a way to resolve the circular join(Multiple Path) error.
Appreciated if someone can give some pointer or suggestion as the customer is in stiff deadline.
Thanks
TeikThe strange thing compared to your output is that I get an error when I have table prefix in the query block:
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Master table "SYSTEM"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_FULL_01": system/******** DUMPFILE=TMP1.dmp LOGFILE=imp.log PARALLEL=8 QUERY=SYSADM.TMP1:"WHERE TMP1.A = 2" REMAP_TABLE=SYSADM.TMP1:TMP3 CONTENT=DATA_ONLY
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
ORA-31693: Table data object "SYSADM"."TMP3" failed to load/unload and is being skipped due to error:
ORA-38500: Unsupported operation: Oracle XML DB not present
Job "SYSTEM"."SYS_IMPORT_FULL_01" completed with 1 error(s) at Fri Dec 13 10:39:11 2013 elapsed 0 00:00:03
And if I remove it, it works:
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Master table "SYSTEM"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
Starting "SYSTEM"."SYS_IMPORT_FULL_01": system/******** DUMPFILE=TMP1.dmp LOGFILE=imp.log PARALLEL=8 QUERY=SYSADM.TMP1:"WHERE A = 2" REMAP_TABLE=SYSADM.TMP1:TMP3 CONTENT=DATA_ONLY
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
. . imported "SYSADM"."TMP3" 5.406 KB 1 out of 2 rows
Job "SYSTEM"."SYS_IMPORT_FULL_01" successfully completed at Fri Dec 13 10:36:50 2013 elapsed 0 00:00:01
Nicolas.
PS: as you can see, I'm on 11.2.0.4, I do not have 11.2.0.1 that you seem to use. -
Patch in obiee 11.1.1.6.0
The action link reports is not opening in new window for obiee 11.1.1.6.0 . What patch should I apply in order to fix this? I do not want to upgrade to obiee 11.1.1.6.2 right now. I want to confirm if patch 14003822 will fix this bug.
Thanks,
SanjayWhen I check for the patch 14003822 in the oracle support, it did not mentioned about the Bug 14165667 - LINKED REPORT OPEN IN NEW WINDOW DOES NOT WORK AFTER A CHANGE PROMPT bugs that has been resolved. The list of bugs that have been resolved from the patch are as follows;. Do I need to upgrade to obiee 11.1.1.6.1 or just if we use this patch it will solve this issue.
Thanks,
Bugs Resolved by This Patch
10647655 COLUMN DATA FORMAT IS IGNORED ON WRITEBACK
12612904 TOTAL PICKS VALUE IN FIRST ROW AND GIVES NOT A NUMBER WHEN AVERAGING NULL
12978196 COLUMN SELECTOR DOES NOT PASS VALUES FROM SUMMARY REPORT TO DETAILED REPORT
12981896 MAPVIEWER HOVER TOOLTIPS SHOW WRONG VALUES
12992697 PAGE BREAK WITH COLUMN BREAK DOES NOT WORK IN PRINTABLE HTML
13043745 PIVOT TABLE'S LAYOUT COLLAPSES WHEN HIDDEN ROW AND TOTALS BEFORE IS USED
13071711 CIRCULAR JOIN ERROR WHEN RUNNING ANALYSIS USING UPGRADED REPOSITORY
13083074 PROMPTS CREATING UNSPECIFIED ERROR WHEN SELECTING MULTIPLE CONSTRAINED CRITERIA
13098323 AN ARITHMETIC OPERATION IS BEING CARRIED OUT ON A NON-NUMERIC TYPE
13110980 THE SECTION PROPERTIES OF PIVOT TABLE IS NOT EFFECTIVE OR NOT CORRECT
Open Readme to View all Bugs
Related Knowledge to this Patch
1470402.1 OBIEE 11g: Unable to See Column Added to Pivot View in Criteria Tab when Graph has been Added to Results Modified 07/01/2012
1467168.1 MULTIPLE PIE CHARTS DISPLAYED FOR PIVOT TABLE REPORT WHEN SHOULD BE ONE Modified 06/12/2012
1465324.1 OBIEE 11g: Cannot Edit Position of a Chart in Charted Pivot Tables Modified 07/24/2012 -
Add values across multiple subject areas
Hello Everyone,
This is a pressing issue i am facing at the moment. I am on OBIEE 11g latest version.
This is the scenario at hand.
There are several tables of which each connects to the same time dimension and a global customer dimension. There are several products such as deposits, loans, pawning, leases, etc.
For the time being, i have created separate subject areas for each of these products. And each subject area has an INCOME column.
The requirement is to get the total of all the income columns from all the subject areas so that that total can be used for other calculations.
The most probable solution from my R&D seems to be trying to add several subject areas for querying purposes. (Add / Remove Subject Areas option)
In the RPD, right clicked on the deposits subject area and clicked on the option "... star or snowflake schema". This created a copy of the subject area on the BMM and added it on to the presentation layer. Now in thr analysis, choosing deposits, i click on the Add / Remove Subject Areas. The option has the newly created copy of the subject area i already have.
My requirement is to add deposits and loans and pawning and etc.... What am i doing wrong here?
Also, is there any other method to approach the problem?Let me try to describe the model as best as possible.
I am trying to calculate the profitability of each customer for two banks. These banks have deposits, loans, leases, etc. Each customer is identified by a global id. The global ID is a dimension table. Then there is a the time Dimension.
Bank A has it's own deposits and Bank B does too. A customer can/cannot have accounts in Bank A/Bank B/or Both Bank A and B. Similarly a customer can have a lease in either or both of the banks and this continues for other products.
Each Global ID is referenced to a Client ID. Each client ID can have several Internal Keys which are referenced to each account the customer might have.
For bank A > deposits, i have a fact table which connects to the Dim Time and Dim Global customer table. there are other dimension tables which connect to the same fact.
Similarly bank B > deposits has the same look and feel. Only thing is i connected the fact of bank b - deposits to the same Time and Global Customer table. So now there is a circular join. And this join gets really complicated when i add the fact tables of other categories such as leasing, pawning, etc. Since my goal is to calculate the total of profitability from each of these categories (deposits + loans + pawning +...), i tried to write a formula but i do get the error that "no fact exists"
For the time being i have created individual connections for each product. For example, deposits will have its own global customer and time and be connected to that particular fact. Similarly, pawning will have its own global customer and time (created alias tables for each of them). So right now i have the profitability of each customer on different categories.
What i want to do is get the total of profitability for an individual customer for all the product type the customer has, and use that for further specific formula calculations. -
Navigate from report to dashboard and pass values between different column
Hello
I have a question about navigating from 1 report to a dashboard page while passing the value from column 1 to column 2 in the second report...
In OBIEE 11G, I create action link on report 1, column 1 and this action link is navigate to BI Content and the destination is a dashboard page, which has column 2 used as dashboard prompt and there are 3 reports all use column 2 to filter. Now the column 2 in the dashboard page is an alias of column 1 from report 1, from user's point of view they are the same, but from OBIEE point of view they are different.
My action link is able to navigate to dashboard, however, the value in column 1 which I clicked to execute the navigation, does not get passed to column 2 as the dashboard prompt doesn't get this value upon navigation..
Since I can't put column 1 in dashboard 2 nor can I put column 2 in report 1. Because our data model is done in the way that if I use column 1 or column 2 in both places, it will be circular joins...
Is there a way around this issue?
Let me know if I need to provide more clarification
ThanksSid
Here is the thing..
Let's say we have Dimension 1, dimension 2 and fact 1 and fact 2
In one report, you need to show Dimension 2 and fact 1 so Dimension 2 joins to fact 1.
In some other cases, you need to shown dimension 1 and fact 2 stuffs, but dimension 1 can't get to fact 2 without going through dimension 2. So Dim 1 --> Dim 2 --> Fact 2
Then in some other cases, you need to show Dim 1 and Fact 1 reports..
In means, your model will look at:
Dim1 --> DIm2 and Dim 1 --> Fact 1 and Dim 2 --> Fact 1.. This is just a simpler version of a much more complex model that I am dealing with now..
So in this case, you can't just use Dim 1 attributes across the board. For some dashboards, you will have to create alias of Dim 1, call it A1_Dim1, un-join Dim1 with Dim 2 or to fact 1 to avoid circular joins... Then in different reports, you either use columns from Dim 1 or A1_Dim1..
Now Dim1 and A1_DIM1 are really the same thing, but they are not according to OBIEE...
So my problem is, in report 1 where Dim1 is used, it can't past values to Dashboard 2 where A1_DIM1 is used as dashboard prompt..
I want to know if there is a way around this issue
Hope this makes more sense now
Thanks -
Why Do we need to go for Alias? What are the Different uses of Aliases?
Hello Everybody?
I wanted to know the uses of aliases in RPD level. I do know some points like they will be used as a duplicate copy for the base tables and they will be used to remove the circular joins, otherthan this can anybody please give me a brief view about the different uses of Aliases.This article gives some good arguments for why you should use aliases:
http://it.toolbox.com/blogs/achieving-great-bi/physical-layer-tips-and-gotchas-16445
1. Import physical tables without FK joins turned on. Make the joins yourself, so there is nothing hidden that could cause problem. You should "own" your joins, not the other way around.
2. Aliases are the technique one uses to eliminate circular joins. An easy example of how to use aliases is when you have a lookup table, like W_LOV_D - each version of it requires an alias, which will be joined to differently.
3. With all tables & aliases, using a naming standard will guarantee that only one physical layer object will exist in one Business Model object. If you prefix every object in the physical layer with its Logical usage first (essentially making everything an alias), you will not be able to use the Customer (W_COUNTRY_D) table in the Employee logical table, as the standard would require you to use a table alias called Employee (W_COUNTRY_D). -
Hey All,
Is there a mechanism for getting a diff of XMLTypes/documents in XML DB? Or is the best bet to make/load in my own implementation? Obviously, I don't want to reinvent the wheel if I don't have to.
Thanks
TimNothing in the current release :(...
However if you are interested in joining the 11g Beta program we might be able to help.
http://forums.oracle.com/forums/ann.jspa?annID=281
Maybe you are looking for
-
Here we go again- 3g AND Edge data problems - NYC area
Just great.... been having great 3G data speeds for the past several weeks (after the data outage) and since last night (10/12) I cannot get a page to load. Sometimes it doesn't load at all, other times it takes about 5 minutes. What the heck is goin
-
Can't register my serial number with Apple
I just tried to lookup express support and had to enter my serial number. Website says SN is invalid. I then tried registering my Mac Book Pro (I just bought it about 2 weeks ago) and got the same error that SN is invaid. Short of calling Apple 1-800
-
TestStand create different object for singleton class
Hi all, we have a singleton class which has some functions used to do testing a harware. Our main Exe will create an object for that singleton class(which opens Com1 port and communicate with hardware). so the Exe will do basic communication test wit
-
IPhone stolen! Cant access my iCloud ID!
My iPhone has been stolen. I accessed my icloud ID and ran FIND MY IPHONE but my phone was offline. I changed the password of my ID and now when I access it, it says that your ID must be used to setup icloud on ios device before you can use icloud.co
-
How to read Java Object message from JMS Queue using JMS Adapter .
Dear All, In my scenario i have to read a java object message from JMS Queue . I tried by using the JMS Adaper ,but i am not getting any Payload . Can any one tell me is there any special settings for JMS Adapter to read the Java Object message . I a