我使用python / cx_Oracle选择Oracle数据并使用相同的字段类型插入Impala
我在Oracle表中有数字字段,并且它的样本数据就像那样
0.1428571428571428571428571428571428571429
0
0.2111
2.1
0.04
所以我试图创建sql字符串来执行插入数据到Impala那样的
sql4Impala = "insert into test01.ornek_2 values (%f, '%s', '%s', '%s', '%s')" % (row[0], row[1], row[2], row [3], row[4])
我的问题是从这里开始我不知道从甲骨文那边选择了什么样的实数。因此无法将数字格式化为原始格式
例如
0.0344827586207 it's original data
0.034483 automatically trimed out with %f
那么我怎么能在sql4Impala中格式化实数而我不知道原始数据的格式
由于
答案 0 :(得分:0)
如果直接获取数据,则会返回浮点数,这些浮点数与数据库中存储的Oracle数字的精度不同。要解决此问题,请将数据检索为字符串,然后使用decimal.Decimal(value)。像这样:
connection = cx_Oracle.connect("user/pw@tns")
cursor = connection.cursor()
cursor.execute("select to_char(some_number) from some_table")
for rawNumber, in cursor:
number = decimal.Decimal(rawNumber)