Наблюдение - похоже, вы можете использовать utl_lms.format_message для печати в стиле C - жаль, что я знал бы это раньше (как бы сэкономил написание). Кажется, только Ora10 и выше.
begin
dbms_output.put_line(
utl_lms.format_message(
'A %s is here and a %s is there and a %s too','Giraffe','Lion','Spider'));
end;
Я не вижу способа удовлетворить требование OP - поднять исключение системного уровня и подставить правильный параметр.
Однако, если вы можете использовать другой номер исключения, вы можете написать собственную процедуру обработки исключений, которая может
а) взять в сериале необходимое исключение
б) использовать utl_lms.get_message для получения текста
c) использовать format_message для замены в параметрах
d) вызвать пользовательское исключение, используя сгенерированный текст
Проблема в том, что это не сработает, если ваша вызывающая система ожидает ORA-01919.