Default values for formal parameters are not supported. However, you can create a stored package that contains:
/*
Create a stored procedure with zero, one, or two VARCHAR2 arguments. The following
'Test' package procedure can be invoked by any of the following:
test.test;
test.test('Hi');
test.test('Hi','There');
*/
CREATE PACKAGE Test IS
PROCEDURE Test;
PROCEDURE Test(a VARCHAR2 );
PROCEDURE Test(a VARCHAR2,
b VARCHAR2);
END Test;
CREATE PACKAGE BODY Test IS
PROCEDURE Private_Test( a in VARCHAR2 := 'Hello'
b in VARCHAR2 := 'There') IS
BEGIN
Dbms_Output.Put_Line(a);
Dbms_Output.Put_Line(b);
END;
PROCEDURE Test IS
BEGIN
Private_Test;
END;
PROCEDURE Test(a VARCHAR2) IS
BEGIN
Private_Test (a);
END;
PROCEDURE Test(a VARCHAR2 , b VARCHAR2) IS
BEGIN
Private_Test (a, b);
END;
END Test;