L'approximation standard la plus proche de printf pour Oracle à laquelle je puisse penser est utl_lms.format_message . Cependant, cela ne fonctionnera pas dans les instructions SQL, c'est-à-dire que ce n'est pas grave :
begin
dbms_output.put_line(
utl_lms.format_message('hello %s, the number is %d', 'world', 42)
);
end;
/
mais cela donne un ORA-00902 :type de données invalide erreur :
select utl_lms.format_message('hello %s, the number is %d', 'world', 42)
from dual