Monday, January 21, 2013

OBIEE 11g: Deploying RPD without BI Presentation Service Disruption

If you would like to deploy a modified .rpd without causing any disturbance on the Presentation Services, then deploy .rpd and restart only BI Servers - this way you will not cause any interruption on users. This tips is equivalent to updating the .rpd in an Online mode but SAFER!
 

OBIEE 11g: Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P

Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 43119] Query Failed: [nQSError: 14025] No fact table exists at the requested level of detail:

This happens when you have one hierarchy but multiple dimensions. In such case leave the Fact table's Content > Logical Level as blank, otherwise the fact table will be restricted only to that specific hierarchy and will throw error by not recognizing the other dimensions details.

Hope it helped!

SQL: Finding Duplicate Reocrds

SELECT Col_1,
 COUNT(Col_1) AS NumOccurrences
FROM Table_Name
GROUP BY Col_1
HAVING ( COUNT(Col_1) > 1 );

SELECT COUNT(*) FROM Table_1;
vs.
SELECT DISTINCT(COUNT(*)) FROM Table_1;

If the different between these two counts are different, then you have an idea how many records are duplicate. Unfortunately, I have not found an easy way to populate duplicates side by side. Please comment if anyone has a better way.

Thursday, January 3, 2013

ODI: Error: ORA-01843: not a valid month

Converting data into TO_DATE format in Oracle database, the correct DATE format is: ‘DD-MON-YY’ and ODI will give an error if format is different, i.e. DD/MM/YYYY, MM/DD/YYYY. Even though the incoming date’s format might be in DD/MM/YYYY or MM/DD/YYYY or etc. you must specify Oracle default date format as ‘DD-MON-YY’.

For sanity check: SELECT TO_DATE('1/30/2012', 'MM/DD/YYYY') from DUAL;  - DUAL is a dummy command for testing purposes.

Notice that even though the date format was specified as 'MM/DD/YYYY', Oracle returned date as ‘DD-MON-YY’ format.

Hope it helped!