我是Golang的新手(但不是HANA),我正在尝试测试go-hdb从TCURR表(来自HANA DB SPS6)中提取数据。根据我对该表的理解,* UKURS 、 FFACT * 和 * TFACT * 在HANA DB中都是小数。但是,当从Go中检索时,我尝试使用row提取。扫描到Float64,如下所示:
var mandt, kurst, fcurr, tcurr, gdatu, datum string
var ukurs float64
var ffact, tfact float64
if err := rows.Scan(&mandt, &kurst, &fcurr, &tcurr, &gdatu, &ukurs, &ffact, &tfact, &datum); err != nil {
log.Fatal(err)
}
但是,唉,得到这样的错误
2016年8月18日10:18:31 SQL:列索引5上的扫描错误:正在将驱动程序.值类型[] uint8("@\xe2\x01\x00\x00\x00\x00\x00\x00\x00\x00\x0060 ")转换为浮点型64:无效语法
我试着阅读和理解它看起来需要uint8数据类型(或字节)的错误,然而,我被如何将那些uint8/字节转换为字符串所困。
有没有人有这个问题之前,以及如何获得十进制数据和显示它正确(即打印到控制台)?
1条答案
按热度按时间eufgjt7s1#
在看了一段时间并理解了驱动程序包后,我发现有一个函数确实回答了我的问题。该函数位于
decimal.go
中,函数名为decodeDecimal()
。由于它仅供内部使用,我复制了源代码并粘贴到我的代码中。代码如下所示:
decodeDecimal()
的功能函数
BigIntToFloat()