sql10
Published: (December 11, 2025 at 02:47 PM EST)
1 min read
Source: Dev.to
Source: Dev.to
Setup
SET VERIFY OFF FEEDBACK OFF HEADING OFF ECHO ON
SET SERVEROUTPUT ON
-- Capture argument or default to empty string (no prompt)
COLUMN p_flag_col NEW_VALUE p_flag
SELECT NVL('&1','') AS p_flag_col FROM dual;
Conditional Function Creation
BEGIN
IF UPPER('&p_flag') = 'Y' THEN
DBMS_OUTPUT.PUT_LINE('Flag is Y — creating functions...');
EXECUTE IMMEDIATE '
CREATE OR REPLACE FUNCTION func1 RETURN VARCHAR2 IS
BEGIN
RETURN ''Func1'';
END;';
EXECUTE IMMEDIATE '
CREATE OR REPLACE FUNCTION func2 RETURN VARCHAR2 IS
BEGIN
RETURN ''Func2'';
END;';
EXECUTE IMMEDIATE '
CREATE OR REPLACE FUNCTION func3 RETURN VARCHAR2 IS
BEGIN
RETURN ''Func3'';
END;';
EXECUTE IMMEDIATE '
CREATE OR REPLACE FUNCTION func4 RETURN VARCHAR2 IS
BEGIN
RETURN ''Func4'';
END;';
EXECUTE IMMEDIATE '
CREATE OR REPLACE FUNCTION func5 RETURN VARCHAR2 IS
BEGIN
RETURN ''Func5'';
END;';
DBMS_OUTPUT.PUT_LINE('All requested functions created successfully.');
ELSE
DBMS_OUTPUT.PUT_LINE('Flag is not Y — skipping function creation.');
END IF;
END;
/
Determine Whether to Describe func2
COLUMN dummy NEW_VALUE dummy
SELECT CASE WHEN UPPER('&p_flag') = 'Y' THEN 1 ELSE 0 END AS dummy FROM dual;
Description of func2 (only if flag = Y)
PROMPT
PROMPT Description of func2 (only if flag is Y):
PROMPT --------------------------------------
DESC func2