[JRuby]Active_Recordでoracle9に接続
仕事で使うために試したけど、意外と問題が多い。
先にrailsとactiverecord-jdbc-adapterをインストール、ドライバーはoracle9用のojdbc14.jar、そして以下のコードをかいたらORA-01722のエラーが。
googleで検索したら問題発見http://forums.oracle.com/forums/thread.jspa?messageID=2253312。確かDBもoracle9だな~、んでjarをごにょごにょ。OracleDatabaseMetaData#getTypeInfoの を に変更、もっかいRun。今度はORA-00911のエラーが。DebugモードでSQLを検査したら、なぜか'?'がはいってた。ソースを見たらここが問題かな:word0 < 8100 ? '\377' : 2000、'\337'が'?'になるみたい。ヤケクソだったのでojdbc5.jar(oracle11用)に変更、またもやORA-01722のエラーが(直してないのかよ)。もっかい始めの同じ方法で直したら、やっと動いてくれました、ojdbc5.jarではORA-00911のエラーは出ないのね、ソースを見たらword0 < 8100 ? 255 : 2000になってた、ふ~ん。
これでやっとJRubyとActiveRecordでoracleに接続できた。唯一の不満は、重い、重すぎるぞ、JVM起動がおもいのか!?MRIプラスoci8のほうがよっぽど軽いよ(泣)。
