[Home] [Help]
PACKAGE BODY: APPS.EDW_COMPILE_PACKAGES
Source
1 package body edw_compile_packages AS
2 /* $Header: EDWCMPLB.pls 115.5 2003/09/16 07:22:37 smulye noship $ */
3
4 newline varchar2(10) := '
5 ';
6
7 Procedure compile_packages(errbuf in varchar2, retcode in number,
8 p_expr in varchar2 default null) IS
9
10 l_package varchar2(50);
11 l_stmt varchar2(100):= ' ALTER PACKAGE :S1 COMPILE';
12 l_dir varchar2(100);
13 l_expr varchar2(100);
14 cursor c_packages(p_type varchar2) is
15 SELECT distinct object_name from user_objects
16 where object_type = p_type and status = 'INVALID'
17 and object_name like l_expr;
18
19 BEGIN
20
21 execute immediate 'alter session set global_names=false';
22
23 IF (p_expr is null) THEN
24 l_expr := '%';
25 ELSE
26 l_expr := p_expr;
27 END IF;
28
29 /*l_dir:=fnd_profile.value('EDW_LOGFILE_DIR');
30 IF l_dir is null THEN
31 l_dir:='/sqlcom/log';
32 END IF;*/
33
34 l_dir := fnd_profile.value('UTL_FILE_LOG');
35 if l_dir is null then
36 l_dir := fnd_profile.value('EDW_LOGFILE_DIR');
37 if l_dir is null then
38 l_dir:='/sqlcom/log';
39 end if;
40 end if;
41
42 edw_log.put_names('validate.log', 'validate.out',l_dir);
43 edw_log.put_line( 'Checking for invalid package specifications...');
44
45
46 OPEN c_packages('PACKAGE');
47 LOOP
48
49
50 fetch c_packages into l_package;
51 EXIT WHEN c_packages%NOTFOUND;
52
53 edw_log.put_line( newline||'Package spec '||l_package||' is invalid');
54 BEGIN
55 execute immediate 'alter package '||l_package||' compile ';
56 edw_log.put_line( ' Recompiled package spec '||l_package);
57
58 EXCEPTION WHEN OTHERS THEN
59 edw_log.put_line( 'Error occurred while recompiling spec for '||l_package );
60 edw_log.put_line('Error is : '||sqlerrm);
61 null;
62 END;
63
64 END LOOP;
65 CLOSE c_packages;
66
67 edw_log.put_line( '');edw_log.put_line( '');
68 edw_log.put_line( 'Checking for invalid package bodies...'||newline||newline);
69
70
71 OPEN c_packages('PACKAGE BODY');
72 LOOP
73
74 fetch c_packages into l_package;
75 EXIT WHEN c_packages%NOTFOUND;
76 edw_log.put_line( newline||'Package body '||l_package||' is invalid');
77 BEGIN
78 execute immediate 'ALTER PACKAGE '||l_package||' COMPILE BODY';
79 edw_log.put_line( ' Recompiled package body '||l_package);
80 EXCEPTION WHEN OTHERS THEN
81 edw_log.put_line( 'Error occurred while recompiling body for '||l_package );
82 edw_log.put_line('Error is : '||sqlerrm);
83 null;
84 END;
85 END LOOP;
86
87 CLOSE c_packages;
88
89
90 END;
91
92 end edw_compile_packages;