DBA Data[Home] [Help]

PACKAGE BODY: APPS.SHP_GEN_UNIQUE_PKG

Source


1 PACKAGE BODY SHP_GEN_UNIQUE_PKG as
2 /* $Header: SHPFXUQB.pls 115.0 99/07/16 08:17:25 porting ship $ */
3 
4   --
5   -- PUBLIC FUNCTIONS
6   --
7 
8   --
9   -- Name
10   --   Gen_Check_Unique
11   -- Purpose
12   --   Checks for duplicates in database
13   -- Arguments
14   --   query_text               query to execute to test for uniqueness
15   --   prod_name		product name to send message for
16   --   msg_name			message to print if duplicate found
17   --
18   -- Notes
19   --   uses DBMS_SQL package to create and execute cursor for given query
20 
21   PROCEDURE Gen_Check_Unique(query_text VARCHAR2,
22 			 prod_name VARCHAR2,
23 			 msg_name VARCHAR2) IS
24 	rec_cursor INTEGER;
25 	any_found INTEGER;
26   BEGIN
27     rec_cursor := dbms_sql.open_cursor;
28     dbms_sql.parse(rec_cursor,query_text,dbms_sql.v7);
29     any_found := dbms_sql.execute_and_fetch(rec_cursor);
30     IF (any_found > 0) THEN
31       FND_MESSAGE.SET_NAME(prod_name,msg_name);
32       APP_EXCEPTION.RAISE_EXCEPTION;
33     END IF;
34   END;
35 
36   PROCEDURE Get_Active_Date(query_text 		IN	VARCHAR2,
37    			    date_fetched 	OUT	DATE) IS
38     rec_cursor 			INTEGER;
39     row_processed 		INTEGER;
40     error_out			EXCEPTION;
41     date_in_table		DATE;
42   BEGIN
43     rec_cursor := dbms_sql.open_cursor;
44     dbms_sql.parse(rec_cursor,query_text,dbms_sql.v7);
45     dbms_sql.define_column(rec_cursor, 1, date_in_table);
46     row_processed := dbms_sql.execute(rec_cursor);
47 
48     IF ( dbms_sql.fetch_rows(rec_cursor) > 0) THEN
49       dbms_sql.column_value( rec_cursor, 1, date_in_table);
50     ELSE
51       RAISE error_out;
52     END IF;
53 
54     dbms_sql.close_cursor(rec_cursor);
55 
56     date_fetched := date_in_table;
57 
58   EXCEPTION
59     WHEN OTHERS THEN
60         dbms_sql.close_cursor(rec_cursor);
61         FND_MESSAGE.Set_Name('OE','OE_QUERY_ERROR');
62         FND_MESSAGE.Set_Token('PACKAGE','SHP_GEN_UNIQUE_PKG');
63         FND_MESSAGE.Set_Token('ORA_ERROR',to_char(sqlcode));
64         FND_MESSAGE.Set_Token('ORA_TEXT',query_text);
65         APP_EXCEPTION.Raise_Exception;
66   END Get_Active_Date;
67 
68 
69 END SHP_GEN_UNIQUE_PKG;