CREATE OR REPLACE FUNCTION granted_function
RETURN VARCHAR2
ACCESSIBLE BY
(FUNCTION known_function,
PROCEDURE known_procedure
)
IS
BEGIN
RETURN 'Execution Granted!';
END;
/
CREATE OR REPLACE FUNCTION known_function
RETURN VARCHAR2
IS
received VARCHAR2(50);
BEGIN
received := granted_function();
DBMS_OUTPUT.PUT_LINE('Received: ' || received);
RETURN '';
END;
/
SET SERVEROUTPUT ON
SELECT known_function() FROM dual;
CREATE OR REPLACE FUNCTION unknown_function
RETURN VARCHAR2
IS
received VARCHAR2(50);
BEGIN
received := granted_function();
DBMS_OUTPUT.PUT_LINE('Received: ' || received);
RETURN '';
END;
/
SHOW ERRORS
DROP FUNCTION granted_function;
DROP FUNCTION known_function;
DROP FUNCTION unknown_function;