Showing posts with label Oracle. Show all posts
Showing posts with label Oracle. Show all posts

Wednesday, October 5, 2011

Oracle Announces Exalytics - In memory and Advanced data visualization

Oracle has released it's version for In memory fast computing for BI environments
("The industry's first in-memory BI machine "...), now Oracle will also become a player in the In memory technologies market setting an alternatinve and competition to SAP HANA,Qlikview and other vendors.

Oracle press release:

Monday, August 15, 2011

Getting rid of the LOV timestamp

One of the famous problems in Designer is getting rid of the timestamp LOV and sorting the date LOV according to the date column.

Here is the step by step procees in order to achieve that in Oracle:

1.first we have the date object in the universe named :Time Key

2.Inside the object properties we can see the date LOV time stamp:


















3.Now we will create an object that will be used inside the object's LOV,later on we re-map the lov of the date object to this object's LOV:



















this object contain the function to_char in order to format the date object.

4.Inside the time key object properties we will re-map the LOV to the "No time stamp LOV " object and sort it from Z to A

 
5.Now we will get inside the object LOV and esit it's SQL to:

SELECT


to_char(TIME.TIME_KEY,'dd/mm/yyyy')
FROM
TIME
ORDER BY TIME.TIME_KEY

 
 
 
 
 
 
 
 
 

 
the result is :

 
make sure that you thick the "do not genertae" button  and the "export with universe" property of the LOV.

Sunday, August 14, 2011

Time difference calculations for call center - part 1

Here are two scripts that return the time difference between two dates in Oracle:

1.The following script returns the time portion in seperated columns :


SECOUNDS   MINUTES    HOURS    DAYS

     38              8            10           2569 


SELECT TO_CHAR(DATES.TIME_KEY, 'DD/MM/YYYY:HH24:MI:SS') AS TIME_KEY,

TO_CHAR(SYSDATE, 'DD/MM/YYYY:HH24:MI:SS') AS TODAY,
trunc(86400 * (SYSDATE - DATES.TIME_KEY)) -60 * (trunc((86400 * (SYSDATE - DATES.TIME_KEY) / 60))) AS SECOUNDS,trunc((86400 * (SYSDATE - DATES.TIME_KEY)) / 60) -60 *(trunc(((86400 * (SYSDATE - DATES.TIME_KEY)) / 60) / 60)) AS MINUTES,trunc(((86400 * (SYSDATE - DATES.TIME_KEY)) / 60) / 60) -24 *(trunc((((86400 * (SYSDATE - DATES.TIME_KEY)) / 60) / 60) / 24)) AS HOURS,trunc((((86400 * (SYSDATE - DATES.TIME_KEY)) / 60) / 60) / 24) AS DAYS

FROM DATES.TIME_KEY
 

2.The following script returns the time portion in hours,minutes and secounds in one column :

HOURS MINUTES SECOUNDS       
61 :    22 :    11
 
SELECT

TO_CHAR(DATES.TIME_KEY.TIME_KEY, 'DD/MM/YYYY:HH24:MI:SS') AS TIME_KEY,
TO_CHAR(SYSDATE, 'DD/MM/YYYY:HH24:MI:SS') AS TODAY,
(sysdate - nvl(DATES.TIME_KEY.TIME_KEY, sysdate)) * 24 as hour_diff,
floor((SYSDATE - DATES.TIME_KEY.TIME_KEY) * 24) ' : '
mod(floor((SYSDATE - DATES.TIME_KEY.TIME_KEY) * 24 * 60), 60)' : '
mod(floor((SYSDATE - DATES.TIME_KEY.TIME_KEY) * 24 * 60 * 60), 60)' ' time_difference

FROM DATES.TIME_KEY

These scripts can become universe objects and are good for call center calculation

Tuesday, September 22, 2009

Prompt לבחירת join באופן דינמי באורקל: outer או equal

במידה ואתם מעוניינים לאפשר למשתמש לבחור Outer או Equal Join בעת הרצת הדוח ניתן לארגן זאת כך:
ראשית בואו ונתאר מצב תיאורטי ,כאשר יש לי 2 טבלאות :טבלת לקוחות וטבלת הזמנות ואנו מעוניינים שהקשר בין טבלת הלקוחות לטבלת ההזמנות יהיה דינאמי:בחירת Outer להצגת גם לקוחות ללא הזמנה או בחירת Equal Join להצגת לקוחות עם הזמנה בלבד,טוב ל-Oracle:

CUSTOMERS.CUST_ID =@Prompt('Outer join (choose (+)) or equi join?','N',
{ 'ORDERS.CUST_ID (+)', 'ORDERS.CUST_ID' '},mono,constrained)

שימו לב למיקום ה + הקובע אל איזה טבלה יתבצע ה -Outer Join.

Wednesday, July 8, 2009

הפרש ימים ב-Oracle:Prompt

היי,

הפונקצייה הבאה מיועדת לדיזיינר ומחשבת את הפרש הימים בין 2 שדות תאריכיים
דוגמא קלאסית:כמה ימים לאחר פתיחת התקלה היא נסגרה:

round(to_number(FND_FACTORING_OFFERS.END_DATE-FND_FACTORING_OFFERS.START_DATE)) >= @Prompt( 'בחר הפרש ימים בין פתיחה לסגירת הצעה הגדול מ','N',
{'0','1','2','3','4','5','6','7','8','9','10','20','30','40','50','60','70','80','90','100','120','150','200','250','300'},mono,free)

שימו לב שיש רשימת ערכים מקודדת על מנת להקל על המשתמש בסבלו.

Thursday, June 25, 2009

Webi Vs Deski,מה הולך לקרות בגרסאות הבאות ומה המצב נכון לעכשיו ?

מעודכן ל : 28 April 2009
1) What functionality exists in Desktop Intelligence but is not currently planned for Web Intelligence?
Several printer page setup options - Printing first page number, page order, scale, Fit to N pages Templates
VBA Macro's,XML and VBA Data Providers,UDO's (User defined objects)
Stored Procedures, Freehand SQL,Query filter based on calculation,Custom LOV's
2) What functionality has been recently added in Web Intelligence XI 3.1?
Native printing (Rich Client only),Working offline (Rich Client only),Personal data providers (Excel, txt)(Rich Client only),OLAP data provider (via Olap universe),Embedded images,Formula functions: Multicube() (called ForcedMerge() in Webi), NoFilter(), Product()
3) What functionality is planned for Web Intelligence XI 3.2?
Save to my Computer as XML/HTML/RTF Complex filters,Fold/unfold sections,Query on query
Hide section/block/free cell ,Grouping .
4) What functionality exists in Web Intelligence but not in Desktop Intelligence?
Interactive Viewing Over the Web, Track Data Changes,Drill over the WebI,mproved Prompting (i.e. calendar picker),Support for SAP data sources,Format Painter,Autosave and Recovery (in case of server time-out)Merge Dimensions,Alternate Row/Column colours feature

Wednesday, November 19, 2008

ניתוח סטטיסיטי עם Oracle על גבי עולם

regression ו correlation ? סטטיסיטיקות מגעילות במיוחד בשילוב עם ה- BO ?
הנה דוגמא ליישם על Oracle 10g תוך כדי שילוב פונקציות משתמש בעולם:

Wednesday, November 12, 2008

שבוע נוכחי באורקלית - פונקצייה לדיזיינר

יבוא יום ואני אאגד את כל פונקציות הזמן בחוברת מהודרת,לבנתיים:

הפונקצייה הבאה מחזירה את ימי השבוע הנוכחי נכון ליום ההרצה,לדוגמא:

אם היום ה - 11/09/2007 אני אקבל את כל התאריכים הבאים:9/10/11 ,

כלומר כל הימים מתחילת השבוע עד ליום ההרצה.

הפונקצייה מבוססת על ההנחה שהשבוע מתחיל ביום ראשון ומסתיים ביום שבת וניתן לשלבה ב- where

כאובייקט תנאי בעולם : הפונקצייה מקבלת שדה מסוג תאריך (date...) כ- Input
ומחזירה את כל התאריכים שנמצאים בטווח של השבוע הנוכחי (output)

table.date between trunc(next_day(sysdate,'SUNDAY')-7)
and
trunc (next_day(sysdate,'SUNDAY')-1)

לעזעזל היישור....

פונקציות זמן ל-Designer ,כל ה-DB's

קצת SQL,הנה מבחר לינקים ל-DB's שונים הנותנים שלל דוגמאות לפונקציות זמן שונות שניתן כמובן לשלב ב-designer או ב-free hand:

SQL server :

mysql :

Oracle :

טרה:
DB2 (ימח שמו...) :

Friday, November 7, 2008

שינוי סדר הטבלאות בפסוקית ה- from ב-Oracle:

עד גרסאת Oracle 9 ,מנוע האופטימיזצייה עובד לפי cost based ולכן ב- SQL הנוצר ב- BO הטבלאות בפסוקית ה- From מסודרות באופן דיפולטיבי מהטבלה הקטנה ביותר לטבלה הגדולה ביותר.שקילות הטבלאות נקבעת לפי ה- row count ,פיצ'ר הקיים גם ב- designer
קליק ימני על הטבלה





על מנת לקבל SQL אופטימאלי ,ב- Oracle ,סדר הטבלאות צריך להיות מסודר מהגבוה לנמוך.בכדי לשנות את סדר הטבלאות יש להתערב בקובץ ה- prm המחזיק את הפרמטרים של ה- SQL
המחולל בעולם

מיקום הקובץ בגרסת BOXI :

D:\Program Files\Business Objects\BusinessObjects Enterprise 11.5\dataAccess\connectionServer\odbc\oracle dir

בגרסא 6:
C:\Program Files\Business Objects\BusinessObjects Enterprise 6\dataAccess\RDBMS\connectionServer\oracle






פותחים את הקובץ הprm- ושם משנים את הפרמטר:

"Parameter Name="REVERSE_TABLE_WEIGHT מה- Yes ל- No

התוצאה:

כעת ה- SQL שיחולל בשאילתות של המשמשים יכלול טבלאות המסודרות מהגדולה לקטנה...
נתקלתי כבר במקרים בהם שאילתות שופרו בעד 50% זמני ריצה,במקרים אחרים דובר על שיפור קל.

מזכיר לכם שמגרסאת Oracle 10 אין לפרמטר זה משמעות מאחר וה-DB עובד לפי rule based.


Thursday, November 6, 2008

current week in Oracle

הפונקצייה הבאה מחזירה את ימי השבוע הנוכחי נכון ליום ההרצה,לדוגמא:

אם היום ה - 11/09/2007 אני אקבל את כל התאריכים הבאים:9/10/11 ,כלומר כל הימים
מתחילת השבוע עד ליום ההרצה.

הפונקצייה מבוססת על ההנחה שהשבוע מתחיל ביום ראשון ומסתיים ביום שבת וניתן
לשלבה ב- where ,כאובייקט תנאי בעולם :

הפונקצייה מקבלת שדה מסוג תאריך (date...) כ- Input
ומחזירה את כל התאריכים שנמצאים בטווח של השבוע הנוכחי (output)

table.date between trunc(next_day(sysdate,'SUNDAY')-7)
and
trunc (next_day(sysdate,'SUNDAY')-1)
שוב,בהעתקה הכל יסתדר,היישור ישאר לבנתיים מגבלה...

Day diff in days,hours,minutes SQL Server+Oracle

הנה פונקציות לחישוב הפרש בימים,שעות,דקות בין תאריכים:

כמובן שאת ה- SQL אתם יכולים לשבץ בעולם כאובייקט המחשב את הזמן בימים,שעות,דקות...
SQL server:

SELECT DATEDIFF(day, 0, DATEADD(minute, DATEDIFF(minute, PROCESS.date_created, PROCESS.date_modified), 0))as days,DATEPART(hour, DATEADD(minute, DATEDIFF(minute, PROCESS.date_created, PROCESS.date_modified), 0))as hour, DATEPART(minute, DATEADD(minute, DATEDIFF(minute, PROCESS.


באורקל:

SELECT floor((date1-date2)*24) ' HOURS ' mod(floor((date1-date2)*24*60),60) ' MINUTES ' mod(floor((date1-date2)*24*60*60),60) ' SECS ' time_difference FROM dates;