2015-06-21 40 views
4

现代编程语言允许开发人员使用占位符创建字符串,并用通常称为format的函数/方法替换正确的值。有时,它看起来像这样:Oracle中的字符串格式(PL /)SQL

"Hi {0}! How are you?".format('John'); 

在Oracle SQL或PL/SQL中是否有任何具有相同行为的函数?或者这里的最佳做法是什么?

+0

同样的问题,但对于JavaScript:http://stackoverflow.com/questions/610406/javascript-equivalent-to-printf-string-format – tjati

回答

10

utl_lms包,特别是format_message()该程序包的过程可用于格式化字符串。

begin 
    dbms_output.put_line(utl_lms.format_message('Hi %s! How are you %s?.' 
              , 'John' 
              , 'John' 
              ) 
         ); 
end; 

结果:

Hi John! How are you John?. 

应该注意的是:

  1. 它只能内的PLS/SQL块,而不是SQL。
  2. 您应该为每个替代特殊字符(字符串为%s,数字为%d)提供替代值,即使它们相同。