2015-06-21 60 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)提供替代值,即使它們相同。