OracleDBのテーブルからレポートを設計するためにJaspersoftiReportツールを使用しています。数値の値を取得しています。テキストに変換したいと思います。
たとえば、取得する値が1652の場合、それを1千5百と2に変換するにはPl/SQL関数が必要です。
利用できる機能はありますか?
OracleDBのテーブルからレポートを設計するためにJaspersoftiReportツールを使用しています。数値の値を取得しています。テキストに変換したいと思います。
たとえば、取得する値が1652の場合、それを1千5百と2に変換するにはPl/SQL関数が必要です。
利用できる機能はありますか?
数値をタイムスタンプに変換して戻すと、整数の場合にこれを取得できます。
SQL> select to_char(to_timestamp(lpad( 1652 , 9, '0'), 'FF9' ), 'Ffsp' ) str
2 from dual;
STR
---------------------------------------------------------------------------
One Thousand Six Hundred Fifty-Two
SQL> select to_char(to_timestamp(lpad( 1502 , 9, '0'), 'FF9' ), 'Ffsp' ) str from dual;
STR
---------------------------------------------------------------------------
One Thousand Five Hundred Two
これはある程度まで機能します(返される文字列のサイズは制限されています)。そうしないと、これを行うために独自の関数を作成する必要があります。
このトリックを使用できます:
DECLARE
ws_number NUMBER := 30;
ws_text VARCHAR2(60);
BEGIN
ws_text := to_char(to_date(ws_number,'j'), 'jsp');
END;
はj
数値をユリウス日に変換し、ユリウス日jsp
の値を返します。このAskTomの投稿で詳しく説明されています