[Home] [Help]
PACKAGE BODY: APPS.HZ_GEN_PLSQL
Source
1 PACKAGE BODY HZ_GEN_PLSQL AS
2 /*$Header: ARHGENPB.pls 115.4 2003/02/10 21:33:29 rrangan noship $ */
3
4 FUNCTION getstrlenb(str IN VARCHAR2, max IN NUMBER)
5 RETURN NUMBER;
6
7 PROCEDURE new(
8 name IN VARCHAR2,
9 obtype IN VARCHAR2
10 ) IS
11 BEGIN
12 m_name := name;
13 m_type := obtype;
14 m_array.DELETE;
15 m_idx := 0;
16 END;
17
18 PROCEDURE add_line(
19 line IN VARCHAR2,
20 newline boolean default true) IS
21
22 l_string varchar2(32767) := line;
23 l_len number;
24 BEGIN
25 LOOP
26 EXIT WHEN l_string IS NULL;
27 m_idx := m_idx + 1;
28 l_len := getstrlenb(l_string, 255);
29 m_array(m_idx) := substrb( l_string, 1, l_len );
30 l_string := substrb( l_string, l_len+1 );
31 END LOOP;
32
33 IF LENGTH( m_array(m_idx) ) = 255 THEN
34 m_idx := m_idx + 1;
35 m_array(m_idx) :='';
36 END IF;
37
38 IF newline THEN
39 m_array(m_idx) := m_array(m_idx) || fnd_global.local_chr(10);
40 END IF;
41 END;
42
43 PROCEDURE compile_code IS
44
45 l_status VARCHAR2(255);
46 cur_hdl INT;
47 n NUMBER;
48
49 BEGIN
50
51 cur_hdl := dbms_sql.open_cursor;
52 dbms_sql.parse(cur_hdl, m_array, 1, m_idx, false, dbms_sql.native);
53 n := dbms_sql.execute(cur_hdl);
54
55 BEGIN
56 SELECT STATUS INTO l_status FROM USER_OBJECTS
57 WHERE OBJECT_NAME = m_name
58 AND OBJECT_TYPE = m_type;
59
60 IF l_status <> 'VALID' THEN
61 --dbms_output.put_line('Error compiling package');
62 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_COMPILE_PKG_ERROR');
63 FND_MESSAGE.SET_TOKEN('NAME', m_name);
64 FND_MESSAGE.SET_TOKEN('ERROR', 'Compilation Errors');
65 FND_MSG_PUB.ADD;
66 RAISE FND_API.G_EXC_ERROR;
67 END IF;
68 EXCEPTION
69 WHEN NO_DATA_FOUND THEN
70 --dbms_output.put_line('Package not created');
71 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_COMPILE_PKG_ERROR');
72 FND_MESSAGE.SET_TOKEN('NAME', m_name);
73 FND_MESSAGE.SET_TOKEN('ERROR', 'Package not created');
74 FND_MSG_PUB.ADD;
75 RAISE FND_API.G_EXC_ERROR;
76 END;
77 EXCEPTION
78 WHEN FND_API.G_EXC_ERROR THEN
79 RAISE FND_API.G_EXC_ERROR;
80 WHEN OTHERS THEN
81 FND_MESSAGE.SET_NAME('AR', 'HZ_DQM_COMPILE_PKG_ERROR');
82 FND_MESSAGE.SET_TOKEN('NAME', m_name);
83 FND_MESSAGE.SET_TOKEN('ERROR' ,SQLERRM);
84 FND_MSG_PUB.ADD;
85 RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
86 END compile_code;
87
88 FUNCTION getstrlenb(str IN VARCHAR2, max IN NUMBER)
89 RETURN NUMBER IS
90 BEGIN
91 IF length(str) > 255 THEN
92 RETURN 255;
93 ELSE
94 RETURN length(str);
95 END IF;
96 END;
97
98
99
100 END HZ_GEN_PLSQL;