| Oracle FAQ | Your Portal to the Oracle Knowledge Grid | |
Home -> Community -> Usenet -> c.d.o.server -> Circular reference with private procedures in package
Circular reference with private procedures in package
Hello! Here's my question...
The following package will not compile because of a circular reference between inner1 and inner2. Because private functions need to be placed in a specific order and inner1 and inner2 are inter-dependant, there doesn't seem to be a way to get this package to compile other than making INNER1 public. Is there anything else I can do?
CREATE OR REPLACE 
PACKAGE test_pkg 
IS 
/**************************************************************************************************/
FUNCTION OUTER( 
pNumber IN NUMBER 
) 
RETURN NUMBER; 
/**************************************************************************************************/
END; 
/ 
CREATE OR REPLACE 
PACKAGE BODY test_pkg 
IS 
/**************************************************************************************************/
FUNCTION INNER2( 
pNumber IN NUMBER 
) 
RETURN NUMBER 
IS 
lNumber NUMBER; 
BEGIN 
lNumber := pNumber + 1; 
IF lNumber < 10 THEN 
lNumber := INNER1(lNumber); 
END IF; 
RETURN lNumber; 
END; 
/**************************************************************************************************/
FUNCTION INNER1( 
pNumber IN NUMBER 
) 
RETURN NUMBER 
IS 
lNumber NUMBER; 
BEGIN 
lNumber := pNumber + 1; 
IF lNumber < 10 THEN 
lNumber := INNER2(lNumber); 
END IF; 
RETURN lNumber; 
END; 
/**************************************************************************************************/
FUNCTION OUTER( 
pNumber IN NUMBER 
) 
RETURN NUMBER 
IS 
lNumber NUMBER; 
BEGIN 
lNumber := INNER1(pNumber); 
RETURN lNumber; 
END; 
/**************************************************************************************************/
END; 
/
Received on Wed Jul 02 2003 - 11:55:21 CDT
![]()  | 
![]()  |