SET SERVEROUTPUT ON SIZE UNLIMITED
SET ECHO OFF
SET FEEDBACK OFF
-- =============================
-- Function definitions
-- =============================
CREATE OR REPLACE FUNCTION FUNC_1 RETURN VARCHAR2 AS
BEGIN
RETURN 'Function 1';
END;
/
CREATE OR REPLACE FUNCTION FUNC_2 RETURN VARCHAR2 AS
BEGIN
RETURN 'Function 2';
END;
/
-- ... add all other functions here ...
-- =============================
-- Wait until all functions are VALID
-- =============================
DECLARE
v_status VARCHAR2(10);
v_done BOOLEAN := FALSE;
BEGIN
WHILE NOT v_done LOOP
v_done := TRUE;
FOR r IN (
SELECT object_name, status
FROM user_objects
WHERE object_type = 'FUNCTION'
AND object_name IN ('FUNC_1','FUNC_2' /* add all function names here */)
) LOOP
IF r.status <> 'VALID' THEN
v_done := FALSE;
DBMS_LOCK.SLEEP(0.1); -- wait 100ms before checking again
END IF;
END LOOP;
END LOOP;
DBMS_OUTPUT.PUT_LINE('All functions are compiled and valid.');
END;
/
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)