DBA Data[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;