2015-11-12 47 views
0

我選擇與蟒/ cx_Oracle Oracle數據和插入到帕拉與同一字段類型格式化不同類型的浮點數的與蟒

原始格式I具有在它這樣

Oracle表和樣本數據號字段
0.1428571428571428571428571428571428571429 
0 
0.2111 
2.1 
0.04 

所以我想創建SQL字符串來執行將數據插入帕拉像

sql4Impala = "insert into test01.ornek_2 values (%f, '%s', '%s', '%s', '%s')" % (row[0], row[1], row[2], row [3], row[4]) 

我的問題是在這裏開始我不知道從oracle側選擇什麼樣的實數。所以,不能格式化數字作爲原始格式

例如

0.0344827586207 it's original data 
0.034483  automatically trimed out with %f 

那麼,如何可以格式化sql4Impala實數,而我不知道原始數據的格式

感謝

回答

0

如果直接獲取數據,您將返回浮點數,這與浮點數沒有與數據庫中存儲的Oracle數相同的精度。爲了解決這個問題,請將數據作爲字符串檢索,然後使用decimal.Decimal(value)。像這樣:

connection = cx_Oracle.connect("user/[email protected]") 
cursor = connection.cursor() 
cursor.execute("select to_char(some_number) from some_table") 
for rawNumber, in cursor: 
    number = decimal.Decimal(rawNumber)