< :前の番号
^ :番号順リスト
> :次の番号
P :前の記事(自分と同じ返事先を持つ)
N :次の記事
|<:スレッドの先頭
>|:次のスレッド
^ :返事先
_:自分への返事
>:同じ返事先を持つ記事(前)
<:同じ返事先を持つ記事(後)
---:分割してスレッド表示、再表示
| :分割して(縦)スレッド表示、再表示
~ :スレッドのフレーム消去
.:インデックス
..:インデックスのインデックス
お世話になっております。 A.中村です。
On Fri, 5 Nov 1999 17:16:22 +0900
Yoshida Masato <yoshidam / yoshidam.net> wrote:
> > cursor.parse("select * from emp where job='CLERK' ")
> > cursor.exec
> >
> > ってやるとテーブルの望んだ行が検索されるんですが
> >
> > cursor.parse("select * from emp where job=:a ")
> > cursor.bindrv(":a", "CLERK")
> > cursor.exec
> >
> > ってやると一行も検索されてきません。
> 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
あ。劇的にミスっていました。
JOBの定義がCHAR(9)だったので、DBの中のデータは
"CLERK"ではなくて
"CLERK "となっていました。
なので、sqlを
"select * from emp where RTRIM(JOB) = :a"
とする(右のspaceを削る)と、解決しました。
失礼しました。
#あ。ってことは、RDBC-Oracleのトリアエズ版が出来た。
しかし微妙にヘンですね。
cursor.parse("select * from emp where (job) = 'CLERK' ")
はイケルのに
cursor.parse("select * from emp where RTRIM(JOB) = :a ")
cursor.bindrv(":a", "CLERK")
からRTRIM関数を取ったらイケナイんですね。
逆に
cursor.parse("select * from emp where RTRIM(JOB) = :a ")
cursor.bindrv(":a", "CLERK ")
これがイケルようだし。
いずれにせよ、このへんの挙動の差って、Ruby側じゃなくて
Oracleサーバー側の仕様ですよねえ?(^^;
#さて次はgetParamかな。