Prompts and physical Query Sequence
Hi
Hopefully someone will be able to answer my question. We have a answer with a filter and we have a prompt on the dashboard. The report only runs after the user has selected values from the prompt and clicked on the 'go' button.
What I want to know is, is the Answer run first with the filter applied and then after the dataset has been returned from the database is the prompt applied afterwards? Or does the prompt act as an AND to the filter and a limited selection is retrieved from the database hence better query performance? If so when the user selects another value in the prompt the dataset is requeried in the database?
Thanks
Adnan
I'm using option 2. The filter is on a different column and the prompt is on a different column. I have a default value on the prompt which does not exist hence when the user first navigates to the dashboard there are no results displayed. The use then selects a valid option in the prompt and clicks 'go' and the results are returned.
The question is when the above scenario is played out are all the possible values which fall under the filter returned from the db and then the prompt applied to them or is the dataset restricted from the db using the prompt value?
An easy example of this say I restrict my Answer on the Country field to 'US' and then have a prompt on teh State field. The prompt default is 'No Result' hence no results will be displayed when the user navigates to the dashboard. When the user select the value 'Texas' from the prompt does OBIEE query return all states from the database and then apply the prompt values of 'Texas' or is a limited dataset returned from the db i.e. in this case only records where the State is 'Texas' returned from the db hence better query performance?
Hope this isn't too confusing.
Adnan
Similar Messages
-
What is the diff b/w logical query and physical query?
Thanks In advance
In OBIEE terms the logical query is how you query the BI Server, the Presentation services sends logical SQL to the BI Server, you can also write your own using JDBC , pull from BI Server using ODI etc.
The BI Server engine takes this logical query and writes (a number of) phyiscal querie(s) to satisfy the logical request, depeninding on how your BMM and Physical layer is setup. There are a number of rules the BI Server evaluates before deciding the most appropriate Physical query to generate, rules include Physical Joins, Aggregate tales / Hierarchy levels and so on.
Hope this helps,
Good luck with interview :-)
Alastair -
Date prompt not displayed in physical query
Hi All,
I am using obiee 11.1.1.6.8 where i am not able to view the date prompt filter which is used in dashboards in nqs(physical query).. But the same i can able to view in Logical query..Can any one help on this issue.
Reagrds,
GuruCheck cache settings.
prefix this in prompt
set variable disable_cache_hit=1;
btw: Did you get a chance to look at https://forums.oracle.com/thread/2594287 -
Oracle Text query: Escaping characters and specifying progression sequences
How can I combine the escaping of a search string and the specification of progression sequences within an oracle text query
so that in all cases the correct results are delivered (see example below)?
The scenario in which to use this is the following:
+ Database: Oracle Database 10g Enterprise Edition Release 10.2.0.2.0
+ Requirement: Hitlist of results ordered by score whereby the different part within
the result list are specified using progression sequences within oracle text query
Example:
create table service_provider (
id number,
name_c varchar(100),
uri_c varchar(255)
insert into service_provider values (1,'ABB Company Mgmt','http://www.abb-company-mgmt.de');
insert into service_provider values (2,'Dr. Abbas Ming','http://www.dr-abbas-ming.de');
insert into service_provider values (3,'SABBATA United','http://www.sabbata-united.de');
insert into service_provider values (4,'ABB','http://www.abb.de');
insert into service_provider values (5,'AND Company Mgmt','http://www.and-company-mgmt.de');
insert into service_provider values (6,'Dr. Andas Ming','http://www.dr-andas-ming.de');
insert into service_provider values (7,'SANDATA United','http://www.sandata-united.de');
insert into service_provider values (8,'AND','http://www.and.de');
Query 1: works correctly in this case
select * from (
select /*+ FIRST_ROWS */ score(1), this_.*
from service_provider this_
where
CONTAINS ( this_.NAME_C , '<QUERY><textquery grammar="CONTEXT">' ||
'<progression>' ||
'<seq>abb</seq>' ||
'<seq>abb%</seq>' ||
'<seq>%abb%</seq>' ||
'<seq>fuzzy(abb,1,100,WEIGHT)</seq>' ||
'</progression></textquery></QUERY>', 1 ) > 0
order by score(1) desc, this_.NAME_C
) where rownum < 21
delivers
76 4 ABB http://www.abb.de
76 1 ABB Company Mgmt http://www.abb-company-mgmt.de
51 2 Dr. Abbas Ming http://www.dr-abbas-ming.de
26 3 SABBATA United http://www.sabbata-united.de
Query 2: procudes error
select * from (
select /*+ FIRST_ROWS */ score(1), this_.*
from service_provider this_
where
CONTAINS ( this_.NAME_C , '<QUERY><textquery grammar="CONTEXT">' ||
'<progression>' ||
'<seq>and</seq>' ||
'<seq>and%</seq>' ||
'<seq>%and%</seq>' ||
'<seq>fuzzy(and,1,100,WEIGHT)</seq>' ||
'</progression></textquery></QUERY>', 1 ) > 0
order by score(1) desc, this_.NAME_C
) where rownum < 21
produces ORA-29902, ORA-20000, DRG-50901 because AND is a reserved word in oracle text
So we need escaping ...
Query 3: does not work correctly
select * from (
select /*+ FIRST_ROWS */ score(1), this_.*
from service_provider this_
where
CONTAINS ( this_.NAME_C , '<QUERY><textquery grammar="CONTEXT">' ||
'<progression>' ||
'<seq>{abb}</seq>' ||
'<seq>{abb%}</seq>' ||
'<seq>{%abb%}</seq>' ||
'<seq>fuzzy({abb},1,100,WEIGHT)</seq>' ||
'</progression></textquery></QUERY>', 1 ) > 0
order by score(1) desc, this_.NAME_C
) where rownum < 21
delivers
76 4 ABB http://www.abb.de
76 1 ABB Company Mgmt http://www.abb-company-mgmt.de
Query 4: does not produce an error, but also does not work correctly
select * from (
select /*+ FIRST_ROWS */ score(1), this_.*
from service_provider this_
where
CONTAINS ( this_.NAME_C , '<QUERY><textquery grammar="CONTEXT">' ||
'<progression>' ||
'<seq>{and}</seq>' ||
'<seq>{and%}</seq>' ||
'<seq>{%and%}</seq>' ||
'<seq>fuzzy({and},1,100,WEIGHT)</seq>' ||
'</progression></textquery></QUERY>', 1 ) > 0
order by score(1) desc, this_.NAME_C
) where rownum < 21
delivers
76 8 AND http://www.and.de
76 5 AND Company Mgmt http://www.and-company-mgmt.deAnywhere that you just use the word by itself, enclose it in {}, but anywhere that you add % on either side or both don't enclose it in {}. Please see the demonstration below.
SCOTT@10gXE> SELECT * FROM v$version
2 /
BANNER
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
SCOTT@10gXE> create table service_provider
2 (id number,
3 name_c varchar(100),
4 uri_c varchar(255))
5 /
Table created.
SCOTT@10gXE> insert all
2 into service_provider values (1,'ABB Company Mgmt','http://www.abb-company-mgmt.de')
3 into service_provider values (2,'Dr. Abbas Ming','http://www.dr-abbas-ming.de')
4 into service_provider values (3,'SABBATA United','http://www.sabbata-united.de')
5 into service_provider values (4,'ABB','http://www.abb.de')
6 into service_provider values (5,'AND Company Mgmt','http://www.and-company-mgmt.de')
7 into service_provider values (6,'Dr. Andas Ming','http://www.dr-andas-ming.de')
8 into service_provider values (7,'SANDATA United','http://www.sandata-united.de')
9 into service_provider values (8,'AND','http://www.and.de')
10 into service_provider values (9,'EBB','fuzzy test')
11 into service_provider values (10,'OND','fuzzy test')
12 select * from dual
13 /
10 rows created.
SCOTT@10gXE> CREATE INDEX your_index
2 ON service_provider (name_c)
3 INDEXTYPE IS CTXSYS.CONTEXT
4 PARAMETERS ('STOPLIST CTXSYS.EMPTY_STOPLIST')
5 /
Index created.
SCOTT@10gXE> VARIABLE search_string VARCHAR2 (100)
SCOTT@10gXE> EXEC :search_string := 'abb'
PL/SQL procedure successfully completed.
SCOTT@10gXE> COLUMN name_c FORMAT A20 WORD_WRAPPED
SCOTT@10gXE> COLUMN uri_c FORMAT A40
SCOTT@10gXE> select *
2 from (select /*+ FIRST_ROWS */ score(1), this_.*
3 from service_provider this_
4 where CONTAINS
5 (this_.NAME_C ,
6 '<QUERY>
7 <textquery grammar="CONTEXT">
8 <progression>
9 <seq>{' || :search_string || '}</seq>
10 <seq>' || :search_string || '%</seq>
11 <seq>%' || :search_string || '%</seq>
12 <seq>fuzzy({' || :search_string || '},1,100,WEIGHT)</seq>
13 </progression>
14 </textquery>
15 </QUERY>', 1 ) > 0
16 order by score(1) desc, this_.NAME_C)
17 where rownum < 21
18 /
SCORE(1) ID NAME_C URI_C
76 4 ABB http://www.abb.de
76 1 ABB Company Mgmt http://www.abb-company-mgmt.de
51 2 Dr. Abbas Ming http://www.dr-abbas-ming.de
26 3 SABBATA United http://www.sabbata-united.de
4 9 EBB fuzzy test
SCOTT@10gXE> EXEC :search_string := 'and'
PL/SQL procedure successfully completed.
SCOTT@10gXE> /
SCORE(1) ID NAME_C URI_C
76 8 AND http://www.and.de
76 5 AND Company Mgmt http://www.and-company-mgmt.de
51 6 Dr. Andas Ming http://www.dr-andas-ming.de
26 7 SANDATA United http://www.sandata-united.de
5 10 OND fuzzy test
SCOTT@10gXE> -
OBIEE -10.1.3.4.1 - high physical and logical query response
Hi All,
I am facing an performance issue in OBIEE 10g .My report is taking 2 mins to come up and when i fired the physical query in the db the data is coming in 2 secs.
Below is the details from the log file.Here I observed that response time for physical and logical query is 109 sec ~ 2 mins.Please provide me the helpful pointers.
+++Administrator:370000:370015:----2013/01/22 07:28:04
-------------------- Execution Node: <<2650466>>, Close Row Count = 3332, Row Width = 26000 bytes
+++Administrator:370000:370015:----2013/01/22 07:28:04
-------------------- Execution Node: <<2650466>> DbGateway Exchange, Close Row Count = 3332, Row Width = 26000 bytes
+++Administrator:370000:370015:----2013/01/22 07:28:04
-------------------- Execution Node: <<2650466>> DbGateway Exchange, Close Row Count = 3332, Row Width = 26000 bytes
+++Administrator:370000:370015:----2013/01/22 07:28:04
-------------------- Query Status: Successful Completion
+++Administrator:370000:370015:----2013/01/22 07:28:05
-------------------- Rows 3332, bytes 86632000 retrieved from database query id: <<2650466>>
+++Administrator:370000:370015:----2013/01/22 07:28:05
-------------------- Physical query response time 109 (seconds), id <<2650466>>
+++Administrator:370000:370015:----2013/01/22 07:28:05
-------------------- Physical Query Summary Stats: Number of physical queries 1, Cumulative time 109, DB-connect time 0 (seconds)
+++Administrator:370000:370015:----2013/01/22 07:28:05
-------------------- Rows returned to Client 3332
+++Administrator:370000:370015:----2013/01/22 07:28:05
-------------------- Logical Query Summary Stats: Elapsed time 109, Response time 109, Compilation time 0 (seconds)Did you run the SQL from a client on the OBIEE server or your local machine? Does the Physical SQL on the OBIEE server against the DB run in 2 Seconds and when sent by the OBIEE server it takes 109 seconds?? Is that correct?
-
Between operator is taking as = and = in physical query
Hi,
i am implementing filter in obiee as follows,
calendar date between 01/01/2010 and 01/01/2010
or
calendar date between 01/01/2009 and 01/01/2009
when i executed the query it is showing the above logic in obiee logical query,where as in physical query it is taking as
(T1233290."CALENDAR_DATE" >= DATE '2009-01-01' or T1233290."CALENDAR_DATE" >= DATE '2010-01-01') and (T1233290."CALENDAR_DATE" >= DATE '2009-01-01' or T1233290."CALENDAR_DATE" <= DATE '2010-01-01') and (T1233290."CALENDAR_DATE" >= DATE '2010-01-01' or T1233290."CALENDAR_DATE" <= DATE '2009-01-01') and (T1233290."CALENDAR_DATE" <= DATE '2009-01-01' or T1233290."CALENDAR_DATE" <= DATE '2010-01-01') )
how to get the between operator in physical query.
please help me out in this.Why are u using the same dates in between option ?
-
Physical query issued by Obiee when cache is on is different and slow
When the same report runs in OBIEE 10g and cache is OFF it takes less then 1min to get results. If cache is turned ON physical query issued by Obiee is totally different and it takes 2h to get results. Has anyone experienced this with having cache on that some queries are performing poorly.
Thanks,
TatjanaWe are using BI Apps Order Management and Fulfillment Analytics and all tables are cached anyway. Dimensions used are not that huge up to 40K rows. What should I check when it comes to DB query? As I said is different than one generated when cache is disabled although both have the almost the explain plan.
-
How can I dynamically assign prompt and URI to a button in a table?
I've got a VO returning document name, link and a status flag. My resultsTable for this VO is currently displaying 3 fields: 2 messageStyledText fields for the document name and link text, and a switcher that shows a checkbox image or red X image depending on the value.
I now want to put a button into this results table that a user can click to launch a subsequent page where they can fill out those related docs. To do this, I'd like to make the prompt of this button = VO.documentName, the Desitination URI of this button = VO.linkText, and then leave the switcher as is. The result might look somethign like this:
<Form 838C> X
<Form 1952> \/
<Form 1234> X
In this case, Form 1952 ahs been filled out, the others not. Users should be able to click one of the buttons to launch a subsequent page where they can fill the form.
I found code to walk through a VO results set using an iterator, you'll see that below. Now, stubbed in these 3 steps below:
--set button dest
--set button label
--determine loop end
I can't see how to do this. I already have the table, so can I walk through the results set and access the results table at the same time?
I need to be able to set each of the buttons to the right Label (Prompt) and then set each button to the appropriate destination. Here's what I have so far: Thanks in advance!
public void processRequest(OAPageContext pageContext, OAWebBean webBean)
super.processRequest(pageContext, webBean);
* Initializes the detail employee query.
OAApplicationModule am = pageContext.getApplicationModule(webBean);
OAViewObject summaryVO = (OAViewObject)am.findViewObject("LANLSupplDocsSummaryVO1");
if (summaryVO != null)
// Do not reinitialize the VO unless needed.
String stringReqHeaderId = pageContext.getParameter("REQ_ID");
Number defaultReqHeaderId = null;
try
defaultReqHeaderId = new Number(stringReqHeaderId);
catch(Exception e)
// throw new OAException("AK", "FWK_TBX_INVALID_EMP_NUMBER");
throw new OAException("ICX", "XXXL_INVALID_NUMBER");
summaryVO.setWhereClauseParams(null);
summaryVO.setWhereClauseParam(0,defaultReqHeaderId);
summaryVO.executeQuery();
// This controller is associated with the table.
OATableBean table = (OATableBean)webBean;
// We need to format the Switcher image column so the image is centered
// (this isn't done automatically for Switchers as it is for
// plain image columns). We start by getting the table's
// column formats.
// NOTE!!! You must call the prepareForRendering() method on the table before
// formatting columns. Furthermore, this call must be sequenced after the
// table is queried, and after you do any control bar manipulation.
table.prepareForRendering(pageContext);
DataObjectList columnFormats = table.getColumnFormats();
DictionaryData columnFormat = null;
int childIndex = pageContext.findChildIndex(table, "DOC_STATUS");
// int buttonIndex = pageContext.findChildIndex(table, "DOC_STATUS");
// int meaningIndex = pageContext.findChildIndex(table, "MEANING");
columnFormat =(DictionaryData)columnFormats.getItem(childIndex);
columnFormat.put(COLUMN_DATA_FORMAT_KEY, ICON_BUTTON_FORMAT);
LANLSupplDocsSummaryVORowImpl row = null;
// This tells us the number of rows that have been fetched in the
// row set, and will not pull additional rows in like some of the
// other "get count" methods.
int fetchedRowCount = vo.getFetchedRowCount();
// We use a separate iterator -- even though we could step through the
// rows without it -- because we don't want to affect row currency.
RowSetIterator deleteIter = vo.createRowSetIterator("deleteIter");
if (fetchedRowCount > 0)
deleteIter.setRangeStart(0);
deleteIter.setRangeSize(fetchedRowCount);
for (int i = 0; i < fetchedRowCount; i++)
row = (LANLSupplDocsSummaryVORowImpl)deleteIter.getRowAtRangeIndex(i);
// For performance reasons, we generate ViewRowImpls for all
// View Objects. When we need to obtain an attribute value,
// we use the named accessors instead of a generic String lookup.
// Number primaryKey = (Number)row.getAttribute("EmployeeId");
String formPage = row.getMeaning();
--set button dest
--set button label
--determine loop end
break; // only one possible selected row in this case
// Always close the iterator when you're done.
deleteIter.closeRowSetIterator();
}Thanks Guaravv,
I'm unable to get this to compile. Here's the errors I'm getting, followed by my controller code. Thanks again!
Project: LANLSupplementalDocs.jpr
C:\oracle\jDeveloper\jdevhome\jdev\myprojects\lanl\oracle\apps\icx\por\req\webui\LANLSupplementalDocsSummaryCO.java
Error(16,46): cannot access class oracle.apps.fnd.framework.webui.beans.OAButtonBean; file oracle\apps\fnd\framework\webui\beans\OAButtonBean.class not found
Error(124,9): class OAButtonBean not found in class lanl.oracle.apps.icx.por.req.webui.LANLSupplementalDocsSummaryCO
Error(124,26): class OAButtonBean not found in class lanl.oracle.apps.icx.por.req.webui.LANLSupplementalDocsSummaryCO
Error(125,9): class OADataBoundValueViewObject not found in class lanl.oracle.apps.icx.por.req.webui.LANLSupplementalDocsSummaryCO
Error(125,47): class OADataBoundValueViewObject not found in class lanl.oracle.apps.icx.por.req.webui.LANLSupplementalDocsSummaryCO
Controller:
/*===========================================================================+
| Copyright (c) 2001, 2005 Oracle Corporation, Redwood Shores, CA, USA |
| All rights reserved. |
+===========================================================================+
| HISTORY |
+===========================================================================*/
package lanl.oracle.apps.icx.por.req.webui;
import oracle.apps.fnd.common.VersionInfo;
import oracle.apps.fnd.framework.webui.OAControllerImpl;
import oracle.apps.fnd.framework.webui.OAPageContext;
import oracle.apps.fnd.framework.webui.beans.OAWebBean;
import oracle.cabo.ui.data.DictionaryData;
import oracle.cabo.ui.data.DataObjectList;
import oracle.apps.fnd.framework.webui.beans.table.OATableBean;
import oracle.apps.fnd.framework.webui.beans.OAButtonBean;
import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
import oracle.apps.fnd.framework.OAViewObject;
import oracle.apps.fnd.framework.OAException;
import oracle.jbo.domain.Number;
import oracle.apps.fnd.framework.OAApplicationModule;
//import oracle.apps.fnd.framework.webui.beans.form.OASubmitButtonBean;
//import oracle.apps.fnd.framework.webui.beans.layout.OASpacerBean;
//import oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean;
* Controller for ...
public class LANLSupplementalDocsSummaryCO extends OAControllerImpl
public static final String RCS_ID="$Header$";
public static final boolean RCS_ID_RECORDED =
VersionInfo.recordClassVersion(RCS_ID, "%packagename%");
* Layout and page setup logic for a region.
* @param pageContext the current OA page context
* @param webBean the web bean corresponding to the region
public void processRequest(OAPageContext pageContext, OAWebBean webBean)
super.processRequest(pageContext, webBean);
* Initializes the detail employee query.
OAApplicationModule am = pageContext.getApplicationModule(webBean);
OAViewObject summaryVO = (OAViewObject)am.findViewObject("LANLSupplDocsSummaryVO1");
if (summaryVO != null)
// Do not reinitialize the VO unless needed.
String stringReqHeaderId = pageContext.getParameter("REQ_ID");
Number defaultReqHeaderId = null;
try
defaultReqHeaderId = new Number(stringReqHeaderId);
catch(Exception e)
// throw new OAException("AK", "FWK_TBX_INVALID_EMP_NUMBER");
throw new OAException("ICX", "XXXL_INVALID_NUMBER");
summaryVO.setWhereClauseParams(null);
summaryVO.setWhereClauseParam(0,defaultReqHeaderId);
summaryVO.executeQuery();
// This controller is associated with the table.
OATableBean table = (OATableBean)webBean;
// We need to format the Switcher image column so the image is centered
// (this isn't done automatically for Switchers as it is for
// plain image columns). We start by getting the table's
// column formats.
// NOTE!!! You must call the prepareForRendering() method on the table before
// formatting columns. Furthermore, this call must be sequenced after the
// table is queried, and after you do any control bar manipulation.
table.prepareForRendering(pageContext);
DataObjectList columnFormats = table.getColumnFormats();
DictionaryData columnFormat = null;
int childIndex = pageContext.findChildIndex(table, "DOC_STATUS");
// int buttonIndex = pageContext.findChildIndex(table, "DOC_STATUS");
// int meaningIndex = pageContext.findChildIndex(table, "MEANING");
columnFormat =(DictionaryData)columnFormats.getItem(childIndex);
columnFormat.put(COLUMN_DATA_FORMAT_KEY, ICON_BUTTON_FORMAT);
// LANLSupplDocsSummaryVORowImpl row = null;
// This tells us the number of rows that have been fetched in the
// row set, and will not pull additional rows in like some of the
// other "get count" methods.
int fetchedRowCount = summaryVO.getFetchedRowCount();
// We use a separate iterator -- even though we could step through the
// rows without it -- because we don't want to affect row currency.
// RowSetIterator deleteIter = vo.createRowSetIterator("deleteIter");
if (fetchedRowCount > 0)
for (int i = 0; i < fetchedRowCount; i++)
OATableBean tableBean = (OATableBean)webBean.findChildRecursive("ResultsTable");
OAButtonBean m= (OAButtonBean)tableBean.findChildRecursive("DocLauncher");
OADataBoundValueViewObject tip1 = new OADataBoundValueViewObject(m, "MEANING");
m.setAttributeValue(oracle.cabo.ui.UIConstants.DESTINATION_ATTR, tip1);
else
throw new OAException("ICX", "XXXL_BC");
} -
Data guard synchronization after link down b/w primary and physical standby
Hi All,
I have configured data guard on oracle 11gr2 db. Normally switchover between my primary and physical standby happens smoothly and the Apply lag would be zero. Recently We had to test a scenario when the network link between Primary and Physical standby is completely down and Physical standby is isolated completely for more than half an hour.
When we brought up the link every thing worked smoothly but apply lag started increasing from 0 to around 3 hrs. And then it started reducing to 0. Currently Apply lag and transport lag shows 0.
But is this normal behaviour of oracle data guard that when the link between primary and physical standby is completely down, It requires 3-4 hrs for resynchronization ??? Even when during isolation, there were very few transactions happend on primary database ??
Are there any documents available for this scenario??
ThanksHi, after the link is up, if there were some transactions and produced archive logs it's normal to take some time for resync. To check if 3-4 hours is normal or not, you can repeat the scenario and this time check
- how many archivelogs does primary produce in this period.
- after the link is up, does archivelog transfer immediately starts from primary to standby? Is primary able to send these archivelogs parallel?
- Is there anything wrong with the apply process?
check primary & standby alert log files, and run this query on standby to check the transport and apply processes:
SELECT PROCESS, STATUS, THREAD#, SEQUENCE#, BLOCK#, BLOCKS FROM V$MANAGED_STANDBY;
regards -
OBIEE Issue - Physical Query not picking cascaded Conditions
In one the OBIEE Reports, I have given a set of NOT LIKE conditions as below:
Session Name is not LIKE (pattern match) '%AUDIT%'
AND Session Name is not LIKE (pattern match) '%audit%'
AND Session Name is not LIKE (pattern match) '%Audit%'
But when we refresh the report, it filters only records which uses AUDIT keyword as part of Session Names. When I checked the session log (attached for reference), I found that though logical table query takes those three conditions, while firing against database Physical Query contains condition only for AUDIT wild card as filter. Whether there is any limitation applied on using NOT LIKE conditions or is it a bug or the way the conditions are sequenced is wrong (in OBIEE sense).Thanks buddy. Though this workaround will solve the issue, I am curious to know why OBIEE behaves such a way. Its peculier to see OBIEE admits all 3 conditions in logical query where the Physical query skips few of the conditions in session log itself.
-
Date filter is coming in physical query
Hi,
I have following problem,please help me.
1.My OBI in connecting Vertica Database through ODBC 3.5.
2.It's working fine for all report and if I give date filter condition then in physical query ,which is sending by OBI to Vertica doesn't have date filter condition:
Ex: I have Call Type,and Date as dimension table and Call Mesures as fact table
when I am selecting in answer select Call type name,measure1 for a particula Call type='Dropped'
Physical Query generated by OBI as
Select Call type name,mesure 1 from call_type_dim a,call_measures b where a.call_type_key=b.call_type_key and call_type_name='Dropped'
But when I am loking for particular calandar date(for 07/27/2009:
it's generating following query:
Select Call type name,mesure 1 from call_type_dim a,call_measures b,date c where a.call_type_key=b.call_type_key and call_type_name='Dropped' and c.calandar_date_key=b.calandar_date_key
But in logical query it's showing calandar_date='07/27/2009'
I am expecting OBI should generate query:
Select Call type name,mesure 1 from call_type_dim a,call_measures b,date c where a.call_type_key=b.call_type_key and call_type_name='Dropped' and c.calandar_date_key=b.calandar_date_key and c.calandar_date='07/27/2009'
Where I have done wrong ,please help for Oracle DB i.e OCI 10g ,it's generating correct physical queryCheck cache settings.
prefix this in prompt
set variable disable_cache_hit=1;
btw: Did you get a chance to look at https://forums.oracle.com/thread/2594287 -
How do I start, stop and restart a sequence with a periodic input?
Hi,
I have written some code that will monitor my com port (rs-232) continuously for an ASCII character (in this case a 'P'). When the P is received, I want a sequence structure to start working. The P will only appear once for a short while, but the sequence should carry on running until it finishes all the frames. On the next time a P appears on my monitor, I want to either stop the sequence structure regardless of which frame its in and restart the sequence from the beginning again or to run the sequence from the start again if it has already completed all the frames.
What sort of structure do I need to do this, are there any examples?
JamesJames,
Indiana is correct, my take on this is similiar.
If you have a 3 element sequence structure for example which runs if 'P' is returned from your COMs thread, you will need to query a variable in each element of the sequence in order to suspend execution of the next/remaining elements in the sequence if this event occurs. You can do this by reading the variable that your COMs thread sets using a case structure in each element of your sequence. In order to re-run your sequence if 'P' is returned during the execution you can simply set the suspend variable and ensure the code is in a while loop to recall the code.
See the attached example code/screen shot:
This is however not an elegant solution and the best way would probably be using the events structure and a user event to queue the P events. This is available in 6.1 but I believe its the professional package. See also my implementation using this method, again attached below:
Hope this helps,
Kind Regards
Steven Bird
Applications Engineer
National Instruments
Attachments:
Example.JPG 194 KB -
Difference between OBIEE Logical Modelling and physical modelling
HI.
what is the difference between logical modeling (BMM) and physical modelling(Physical layer) in obiee admin tool
please narrate it in definition format
thank you
rakeshHi rakesh,
Administrator tool consists of 3 layers
Physcial layer:-It is typically first layer built in the repository.Contains objects representing the physical data sources to which the BI server submits queries.It may conatin multiple data sources.The common way is to import metadat from different databases.You can define joins after import if they are not defined.
Business model and mapping layer:-It is defined as business or logical models of data and specifies the mapping between the physical and business layers.This is where the physical schemas are simplified to form the basis for the end user.We can say data is seperated into facts and dimension tables
Presentation layer:-simplifies and organizes the business model to make it easy for users to understand and query
go through the user guides for all the definition and subject
Hope it helps you.my points?
By,
Kranthi
Edited by: Kranthi.K on Sep 1, 2009 10:22 PM -
Difference between logical and physical SQL
Hi all,
I created a dashboard prompt and added some columns from the dimensions and one column from the fact table.
When I run the report in the dashboard and filters using the prompts,I see in the logical sql that all the filters have been applied to the report, but when I check the physical SQL only the filters on the dimensions columns have been applied.
I don't see the filter on the columns from the fact table.
Is there any reason for that?
RegardsI could figure out what was the issue.
My fact table was using a different MV as source table.The fact table column I was using in the prompt was not mapped correctly to the one in the MV.
Regards -
Extremely urgent: append cast function in physical query
Experts...
I have a physical query generated with a condition as:
T101123.date1 = T6786678.date2
But, I need that condition to be generated as..
T101123.date1 = CAST(T678878.date2 AS SMALLDATETIME)
Any help..this is an emergency issue..Deep wrote:
when doing your physical join use a complex join and specify the condition you want to manually.Hi..I tried that..but its taking only DATE for cast....not smalldatetime ..
I tested i for varchar..its taking only CHAR.
Is there any way that it supports smalldateime?
Maybe you are looking for
-
HP Laserjet p2055d Postscript Drivers
I have laserjet p2055d printer and i want to install postcript drivers but on the CD with printer theare no PS drivers. I downloadet the Hp Universal Postscript driver and they dont work. Can some one help me to Install Postscript driver for my print
-
StringBuffer and PreparedStatement
Does anyone know why prepared statements don't update ? fields when you provide the preparedstatement with a query that is a stringbuffer? i.e. StringBuffer query = new StringBuffer(500); query.append("SELECT * from Customer WHERE CustId = ?"); t
-
I can send my friends iMessages but I don't receive them back.
I have an Iphone 5c and it's new, and whenever I text someone (who have iphones), I'm able to send iMessages, but I don't get them back? Also, I can send and receive iMessages from Ipods, just not iphones.
-
Hello, I would like to use iPhoto on the cloud however my iPhoto is iPhoto 9 version 8.1.2 and can't be used with the cloud? I would also just generally like iPhoto 11. I have purchased iPhoto for iPad and iPhone, at a cost $15. I recently ugraded to
-
How to automize data transactional loads from BW to BPC 7.5
Hi , How can I automated the data loads from BW to BPC as nightly loads. If the data coming over to BW cube as delta, how can I handle that in BPC. Appreciate on any inputs. Thanks, Vara