1

何らかの理由でdbiでrubyを使用するのに問題があります。選択を実行して結果を配列に入れようとしていますが、うまくいきません。

require 'dbi'

db = DBI.connect('DBI:OCI8:database', XXXX, XXXX)

#Gets Consumer Id Number you want to create accounts for
numberOfAccounts = []
puts("Please enter a CID")
NewCID = gets.chomp()
numberOfAccounts << db.execute("select T_NBR from T_CBA where C_ID='#{NewCID}'").fetch

私の配列は次のようになります:

[[<#BigDecimal:fc115f8,'0.8000169202 2E11',12(16)>]]

ここで、[222、3232、2323]などのいくつかの異なる番号が必要です。

私はオンラインで検索しましたが、役に立ちませんでした。

4

1 に答える 1

1

DBIは、データフィールドに基づいて、基になる列に通常のint型に収まらないほど大きい整数が含まれている可能性があると判断した可能性があります。または、すべての整数型にBigDecimalを使用して、心配する必要がない場合もあります。

値がすべて通常の整数に収まるほど小さいことがわかっている場合は、次のように、配列を入力した後で配列を整数に変換できます。

1.9.3-p194 :014 > numberOfAccounts
=> [[#<BigDecimal:119cd90,'0.123E3',9(36)>], [#<BigDecimal:119cd18,'0.456E3',9(36)>]] 
1.9.3-p194 :015 > numberOfAccounts.flatten!.collect!(&:to_i)
=> [123, 456] 
1.9.3-p194 :016 > numberOfAccounts
=> [123, 456] 
于 2013-03-05T19:24:40.810 に答える