ホーム » DB関連 » PL/SQLのStringformatについて

PL/SQLのStringformatについて

   作者:ビズコネクトポータル   发布时间:2013-08-14   

Oracle 10Gから、utl_lms.format_message関数が用意されました。

PL/SQLから呼び出すことが可能ですが、SQLだと呼べないです。

http://docs.oracle.com/cd/B19306_01/appdev.102/b14258/u_lms.htm

・サンプルコード

set serveroutput on;

declare

tempVar  varchar2(20000);

begin
  tempVar := utl_lms.format_message('hello %s, the number is %d', 'world', 42);
  dbms_output.put_line(tempVar);

end;
/

自分用にラッパすると、もっと使いやすくなります。

CREATE OR REPLACE FUNCTION sprintf(format IN VARCHAR2 CHARACTER SET ANY_CS,
                           args ...) RETURN VARCHAR2 CHARACTER SET format%CHARSET AS LANGUAGE C 
  NAME "pilmsfm"
  PARAMETERS
  (CONTEXT,
   FORMAT               STRING,
   FORMAT  INDICATOR    SB4,
   FORMAT  LENGTH       SB4,
   FORMAT  CHARSETFORM  UB4,
   ARGS                 VALIST,
   RETURN  INDICATOR    SB4,
   RETURN  LENGTH       SB4,
   RETURN  CHARSETFORM  UB4,
   RETURN               STRING)  
   LIBRARY SYS.UTL_LMS_LIB
   WITH CONTEXT;
/
grant execute on UTL_LMS_LIB to public;

 

 

此评论不代表本站观点大家说

《PL/SQLのStringformatについて》等您坐沙发呢!

发表评论

亲,不支持纯字母、符号评论哦~