よしだです

中村暁史 Nakamura Akifumi <BXQ04723 / nifty.ne.jp> writes:
> 吉田さんのOracleモジュール(0.2.5)で
> 
> cursor.parse("select * from emp where job='CLERK' ")
> cursor.exec
> 
> ってやるとテーブルの望んだ行が検索されるんですが
> 
> cursor.parse("select * from emp where job=:a ")
> cursor.bindrv(":a", "CLERK")
> cursor.exec
> 
> ってやると一行も検索されてきません。
> かといってエラーというわけでもないようだし。
> 
> 俺、bindrvの使い方ってなんか勘違いしてるんでしょか?

使い方は多分問題ないはずです。
以下のようなプログラムで検索できています。

require 'oracle'

conn = ORAconn.logon("scott", "tiger", "")
cursor = conn.open
cursor.parse("select * from emp where job=:a ")
cursor.bindrv(":a", "CLERK")
cursor.exec
while r = cursor.fetch
  p r
end
cursor.close
conn.logoff

こちらの環境は 

  Oracle7.3.3/Solaris2.5.1
  Oracle8.0.4/Solaris2.5.1
  Oracle8.0.5/Linux

で,ruby-1.4.2,oracle-0.2.6 (0.2.5 から変更されていません)
で確認しました。

-- 
    吉田正人  INS エンジニアリング(株)
              事業開拓室
    yoshidam / inse.co.jp
    yoshidam / yoshidam.net