Вот аккуратная функция, которая использует REGEXP_SUBSTR.
Я проверил его в пакете (и он даже работает, если другая процедура в пакете вызывает его):
FUNCTION SET_PROC RETURN VARCHAR2 IS
BEGIN
RETURN NVL(REGEXP_SUBSTR(DBMS_UTILITY.FORMAT_CALL_STACK,
'procedure.+\.(.+)\s', 1,1,'i',1), 'UNDEFINED');
END SET_PROC;