[Home] [Help]
PACKAGE BODY: APPS.MSC_REFRESH_MV
Source
1 PACKAGE BODY MSC_REFRESH_MV AS
2 /* $Header: MSCRFMVB.pls 120.1 2005/06/19 23:03:45 appldev ship $ */
3
4 PROCEDURE REFRESH_MAT_VIEWS(
5 ERRBUF OUT NOCOPY VARCHAR2, /* file.sql.39 change 4405879 */
6 RETCODE OUT NOCOPY NUMBER, /* file.sql.39 change 4405879 */
7 p_mv_name IN VARCHAR2,
8 p_schema_id IN NUMBER DEFAULT 724)
9 IS
10
11 l_schema_name VARCHAR2(30);
12 l_mv_exist number;
13 l_complete_refresh_flag varchar2(1) := 'C' ;
14 l_mv_name varchar2(240) ;
15
16 Cursor application_schema IS
17 SELECT a.oracle_username
18 FROM FND_ORACLE_USERID a, FND_PRODUCT_INSTALLATIONS b
19 WHERE a.oracle_id = b.oracle_id
20 AND b.application_id= p_schema_id;
21
22 Cursor mv_exist(p_mv_trim_name varchar2, p_schema_name varchar2) IS
23 SELECT 1
24 FROM all_objects
25 WHERE object_name = p_mv_trim_name
26 AND owner = p_schema_name;
27
28 BEGIN
29 msc_util.msc_log('Begin REFRESH_MAT_VIEWS');
30 RETCODE:= G_SUCCESS;
31
32 select nvl(ltrim(rtrim(upper(p_mv_name))), '@@@') into l_mv_name from dual;
33
34 OPEN application_schema;
35 FETCH application_schema INTO l_schema_name;
36 CLOSE application_schema;
37
38 OPEN mv_exist(l_mv_name, l_schema_name);
39 FETCH mv_exist INTO l_mv_exist;
40 CLOSE mv_exist;
41
42 if (l_mv_exist = 1) then
43 -- msc_util.msc_log('Refreshing ' || l_mv_name);
44 fnd_message.set_name('MSC','MSC_REF_MV_EXIST_PRE');
45 fnd_message.set_token('VIEW_NAME',l_mv_name);
46 msc_util.msc_log(fnd_message.get);
47 DBMS_SNAPSHOT.REFRESH( l_schema_name||'.'||l_mv_name , l_complete_refresh_flag);
48 else
49 -- msc_util.msc_log(l_schema_name||'.'||l_mv_name ||' does not exist');
50 fnd_message.set_name('MSC','MSC_REF_MV_EXIST_ERR');
51 fnd_message.set_token('VIEW_NAME',l_mv_name);
52 fnd_message.set_token('SCHEMA_NAME',l_schema_name);
53 msc_util.msc_log(fnd_message.get);
54 RETCODE:= G_ERROR;
55 end if;
56
57 msc_util.msc_log('End REFRESH_MAT_VIEWS');
58
59 EXCEPTION
60
61 WHEN OTHERS THEN
62 msc_util.msc_log(sqlerrm);
63 RETCODE:= G_ERROR;
64 ERRBUF:= SQLERRM;
65
66 END REFRESH_MAT_VIEWS;
67
68
69 END MSC_REFRESH_MV;