ROW_NUMBER関数でエラー(SQLSTATE: 42884)
またいつかはまりそうなのでメモ。
現象
サーバーを再構築したら、DB2のROW_NUMBER関数の実行でエラー(SQLSTATE: 42884)が発生するようになった。
- 同じバージョンのDB2を利用している他のサーバーでは正しく動作している。
- 同じモジュールを使用している他のサーバーでは正しく動作している。
エラーは以下。
com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -440, SQLSTATE: 42884, SQLERRMC: ROW_NUMBER;FUNCTION
対策
(りょうさんが)Googleで検索してヒットしたページの情報を参考に、サーバーの現在時刻を正しく設定すれば機能するようになった。
$ date 052017152008
えー、なんでかはよくわかりません・・。現在時刻に依存する機能なんだろうか?うーん、謎だ。
DB2のバージョンなど
以下の通りです。
$ db2ls Install Path Level Fix Pack Special Install Number Install Date -------------------------------------------------------------------------------------------- /opt/ibm/db2/V9.1 9.1.0.4 4 Thu Jan 17 18:19:24 2008 JST