Oracle SQL 関数 : CAST : データ型の変換

 Ret := CAST( <expr> AS <データ型>  );

 CASTは<expr>で指定されたデータを<データ型>で指定されたデータ型に変換します。
以下に例を示します。 最初のSQL文はNUMERIC型からCHAR,VARCHAR2型への変換ですが、CHAR型の場合は指定桁分の結果が返されるので、固定桁の表示がほしいときには利用できます。

次のSQL文はDATE型からCHAR,VARCHAR2型への変換と、CHAR型からDATE型への変換です。
'CHAR_TO_DATE'の結果はDATE型そのもを表示しても面白くないので、TO_CHAR関数で再びCHAR型へ書式付で変換しています。時刻がクリアされて変換されるところが注意するところです。
SQL> SELECT 1 AS NUM_TEST
  2        ,'#' || CAST(1 AS CHAR(10))     || '#' AS NUM_TO_CHAR
  3        ,'#' || CAST(1 AS VARCHAR2(10)) || '#' AS NUM_TO_VARCHAR2 FROM DUAL;

  NUM_TEST NUM_TO_CHAR  NUM_TO_VARCH
---------- ------------ ------------
         1 #1         # #1#

SQL> SELECT '#' || CAST(SYSDATE AS CHAR(20))     || '#' AS DATE_TO_CHAR
  2        ,'#' || CAST(SYSDATE AS VARCHAR2(20)) || '#' AS DATE_TO_VARCHAR2
  3        ,TO_CHAR(CAST('2005/01/22' AS DATE),'YYYY/MM/DD HH24:MI:SS') AS CHAR_TO_DATE FROM DUAL;

DATE_TO_CHAR           DATE_TO_VARCHAR2       CHAR_TO_DATE
---------------------- ---------------------- -------------------
#05-03-07            # #05-03-07#             2005/01/22 00:00:00