Замечание. По-видимому, вы можете использовать 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;
Я не вижу какой-либо способ удовлетворения требований OPS - поднять исключение на уровне системы и заменить в правой параметра.
Однако, если вы можете жить с помощью другого номера исключения, вы можете написать свою собственную процедуру обработки исключений, которые могут
а) принять в сериале требуемой исключения б) использовать utl_lms.get_message для извлечения текст ) использовать format_message подставить в параметры г) поднять определенный пользователем исключение, используя сгенерированный текст
проблема заключается в том, что это не будет работать, если ваша система вызова ожидает ORA-01919.
Спасибо за ответ, но UTL_LMS, похоже, лучше соответствует моим требованиям. –