pondělí 9. února 2009

Funkce Ago() a chyba ORA-00942: tabulka nebo pohled neexistuje

Velmi standardním úkonem v BI je konstrukce ukazatelů tvořících časovou řadu.

Například máme definován ukazatel POČET. Uživatel však potřebuje vidět současně ve stejném řádku tabulky hodnotu POČET v aktuálním měsíci, v předchozím měsíci, … až třeba 6 měsícu dozadu.

Řešení je jednoduché – použijeme Ago() funkci Analytického Serveru, návod viz. zde.

V mém případě v Business modelu vzniknou nové logické sloupce POCET01, POCET02,…, POCET06 definované jako:

Logický sloupec POCET01: AGO(BIFARM01.FAKTA_FNL.POCET, BIFARM01.CASDim.Měsíc, 1)

Logický sloupec POCET02: AGO(BIFARM01.FAKTA_FNL.POCET, BIFARM01.CASDim.Měsíc, 2)

...

Logický sloupec POCET06: AGO(BIFARM01.FAKTA_FNL.POCET, BIFARM01.CASDim.Měsíc, 6)


Narazil jsem však na malý zádrhel. Nově vytvořené logické sloupce jsem umístil do prezentačního katalogu a začal testovat. Podařilo se mi v BI Answers vytvořit kombinaci pouze dvou takto vytvořených logických sloupců.



Když jsem do pohledu začal postupně přidávat třetí, čtvrtý atd. sloupec, dostal jsem toto chybové hlášení: ORA-00942: tabulka nebo pohled neexistuje.



Pomohlo následující: Ve fyzické vrstvě Metadata repository je potřeba rozkliknout u zdrojové databáze záložku Properties.



A zde zaškrtnout pole PERF_PREFER_INTERVAL_STITCH_JOIN, poté uložit repository a restartovat BI Server.



Pak již časová řada funguje bez závad!




Jiří Doubravský (PIKE ELECTRONIC).

1 komentář:

John Minkjan řekl(a)...

Thanks for sharing!

I made a reference on my blog:
http://obiee101.blogspot.com/2009/02/obiee-ago-and-and-error-ora-00942-table.html

regards
John
http://obiee101.blogspot.com