Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Ruby dbi select语句返回BigDecimal?_Sql_Ruby_Oracle_Dbi - Fatal编程技术网

Sql Ruby dbi select语句返回BigDecimal?

Sql Ruby dbi select语句返回BigDecimal?,sql,ruby,oracle,dbi,Sql,Ruby,Oracle,Dbi,由于某种原因,我在使用ruby和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() numberO

由于某种原因,我在使用ruby和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)>]]
我想有几个不同的数字,比如[22232322323]等等


我在网上搜索过,但没有结果。

DBI可能已经根据数据字段确定,基础列可能包含太大的整数,无法放入常规整数类型。或者,它可能只是对所有整数类型使用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] 

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] 

另一方面,我期待不止一个结果,我如何得到所有结果而不是一个?我有点困惑,你是想要一个数组,这是numberOfAccounts是如何构建的,还是一个单一的扁平数组,这是你的示例所需要的数据。如果您仍然需要数组,可以这样做:numberOfAccounts.collect{| row | row.collect&:to_i},这将产生类似[[123]、[456]]的结果。我对自己的问题也有点困惑,也很沮丧,所以让其他人困惑也就不足为奇了!事实上,我想要一个单平面阵列,并希望得到的是“123”而不是[]。所以我从一开始就很困惑,我没有意识到我想要的号码被找到了,你帮我理顺了,现在我很好,谢谢!p、 s找到了我的评论需要使用的答案。fetch_all verse。fetch获取我想要的所有数据。顺便说一句,我期待不止一个结果,我如何得到所有的结果而不是一个?我有点困惑,你是想要一个数组,这是numberOfAccounts是如何构建的,还是一个单一的扁平数组,这是你的示例所需要的数据。如果您仍然需要数组,可以这样做:numberOfAccounts.collect{| row | row.collect&:to_i},这将产生类似[[123]、[456]]的结果。我对自己的问题也有点困惑,也很沮丧,所以让其他人困惑也就不足为奇了!事实上,我想要一个单平面阵列,并希望得到的是“123”而不是[]。所以我从一开始就很困惑,我没有意识到我想要的号码被找到了,你帮我理顺了,现在我很好,谢谢!p、 s找到了我的评论需要使用的答案。fetch_all verse。fetch获取我想要的所有数据。