文字列変換
OracleとDB2で文字列変換関数の仕様が違うようです。
DB2でDECIMALを文字列変換すると、DOUBLEの文字列が返ってきます。
SMALLINTやINTEGERを文字列変換すると、SMALLINTは6桁、INTEGERは11桁で返ってきます。長さが足りない分はスペースが付きます。
management_month(管理年月、DECIMAL(6,0))が[200503]のとき、
■Oracle
SELECT TO_CHAR(management_month) FROM m_mng
結果 =>[200503]
■DB2
SELECT CHAR(management_month) FROM m_mng
結果 =>[200503. ]
管理年月の初日(20050301)をとりたいとき、
■Oracle
SELECT TO_NUMBER(TO_CHAR(management_month) || '01')
FROM m_mng
結果 =>[20050301]
■DB2
SELECT INTEGER(REPLACE(CONCAT(CHAR(CAST(management_month AS INTEGER)), '01'),' ' ,''))
FROM m_mng
結果 =>[20050301]
DECIMALをINTEGERにCASTして、CHARしたらスペースが付くのでREPLACEして
ます。もっとウマイやり方があると思いますが。。