Tenho um problema quando tento trazer dados do oracle para python, os valores que são float não possuem a virgula, trazendo um valor muito maior do que deveria ser. O resultado vem dessa forma:
(Decimal('39768'), Decimal('0'), Decimal('512208333333'))
(Decimal('39769'), Decimal('4'), Decimal('710575'))
(Decimal('39774'), Decimal('6'), Decimal('587583333333'))
(Decimal('39776'), Decimal('2'), Decimal('33932'))
(Decimal('39781'), Decimal('1'), Decimal('16872'))
(Decimal('39787'), Decimal('0'), Decimal('19875'))
(Decimal('39907'), Decimal('2'), Decimal('270976'))
(Decimal('39935'), Decimal('2'), Decimal('82175'))
(Decimal('39936'), Decimal('2'), Decimal('48355'))
(Decimal('39976'), Decimal('2'), Decimal('2173'))
(Decimal('39978'), Decimal('2'), Decimal('98905'))
Gostaria de saber porque isso acontece e como posso resolver.
colocarei o trecho de código abaixo:
import pyodbc
import xlsxwriter
con = pyodbc.connect(
'Driver={Oracle em OraClient10g_home1};'
'dbq=(local);'
'Uid=user;'
'Pwd=password;'
)
sql = """
with tabela_quanti1 as(select cod_material, cod_almoxarifado, ano, mes, quantidade
from (select cod_material,
cod_almoxarifado,
ano,
mes,
quantidade,
max(ANO) over (partition by cod_material) max_ano
from material.estoque)
where ano = max_ano)
, tabela_quantifinal as(select cod_material, cod_almoxarifado, ano, mes, quantidade
from (select cod_material,
cod_almoxarifado,
ano,
mes,
quantidade,
max(mes) over (partition by cod_material) max_mes
from tabela_quanti1)
where mes = max_mes
and cod_almoxarifado = 8)
, tabela_medio1 as(select cod_material, ano, mes, custo_medio
from (select cod_material,
ano,
mes,
custo_medio,
max(ANO) over (partition by cod_material) max_ano
from material.customedio)
where ano = max_ano)
, tabela_mediofinal as(select cod_material, ano, mes, custo_medio
from (select cod_material,
ano,
mes,
custo_medio,
max(mes) over (partition by cod_material) max_mes
from tabela_medio1)
where mes = max_mes)
select tabela_quantifinal.cod_material
,tabela_quantifinal.quantidade
,tabela_mediofinal.custo_medio
from tabela_quantifinal , tabela_mediofinal
where tabela_quantifinal.cod_material = tabela_mediofinal.cod_material
"""
cursor = con.cursor()
cursor.execute(sql)
linhas = cursor.fetchall()
for linha in linhas:
print(linha)
cursor.close()
con.close()