読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

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