ruby dbi とRDBMS

rubyとdbiで勉強して(あそんで)いる、このごろ。

require 'dbi'
dbh = DBI.connect("dbi:pg:test:localhost","user","password")
row = dbh.select_one( "select * from hoge" )
row.each{|col|
puts col.class
}
でDB側とrubyとでデータ型の関連を調べてみた。
postgvresqlは
int → fixnum
decimal → bigdecmal
varchar → string
float → float
double → float
rubyのfloatはdoubleと同精度。
postgresqlのdecimalがbigdecimalに紐付けられているのは好感がもてる。

mysqlも同様な結果。

ところがoracleは
number(10,2)をFLOATで返してくる。これはまずいんじゃないかな。
ODBC経由にするとnumber型がすべてBigdecimal型で返ってくる。
ORACLEのFLOAT、REALはいずれもstring型。

mssqlもODBC経由なら
int → Fixnum
decimal → bigdecimal
float,real → float

やっぱりORACLEが一番くせが強いかな?
[PR]
by nora1962 | 2009-04-14 05:56 | PC
<< パンナコッタ rubyのsplitではまる >>