久保@茅ヶ崎市です。

Kenji Sato/佐藤 健司 <ken / kcom.co.jp> writes:

> 佐藤(健)@KCOM です。
> いつもお世話になっております。
>
> お陰さまで、OCI8 のインストールも成功しました。ありがとうございまし
> た。
>
> TIMESTAMP 型にアクセスすると、下記のエラーになります。
> VERCHAR2, DATE, NUMBER は問題無いようです。
>
> 対応方法等ありましたら、ご教授頂ければ幸いです。
>
> --- エラー内容 ---
> /usr/local/lib/ruby/site_ruby/1.6/oci8.rb:387:in `define_columns': unsupported d
> atatype: 187 (RuntimeError)
>         from /usr/local/lib/ruby/site_ruby/1.6/oci8.rb:352:in `upto'
>         from /usr/local/lib/ruby/site_ruby/1.6/oci8.rb:352:in `define_columns'
>         from /usr/local/lib/ruby/site_ruby/1.6/oci8.rb:297:in `exec'
>         from /usr/local/lib/ruby/site_ruby/1.6/oci8.rb:113:in `exec'
>         from ./oci8-1.rb:5
> ---

手元に Oracle がないので検証できませんが、とりあえずは、oci8.rb の
387 行目付近、

    else
      raise "unsupported datatype: #{OCI_TYPECODE_NAMES[datatype] ? OCI_TYPECODE_NAMES[datatype] : datatype}"
    end

を

    else
	  @stmt.defineByPos(i, String, 100)
    end

として無条件で文字列として定義すればなんとかなるかもしれません。
第三引数の 100 は適当です。文字列に変換したときの最大値を指定してくだ
さい。

うーむ、どちらをデフォルトにするべきか....。

では、再見
-- 
神奈川県茅ヶ崎市在住 久保 健洋
email: kubo / jiubao.org
web:   http://www.jiubao.org
GnuPG fingerprint = 5F7B C8EF CA16 57D0 FDE1  9F47 C001 1F93 AC08 2262