由于某种原因,我在使用dbi时遇到麻烦,我正在尝试选择并将结果放入数组但没有运气。
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,2233]等。
我在网上搜索但无济于事。
答案 0 :(得分: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]