import pandas as pd
import cx_Oracle

# Caminho do arquivo CSV original
input_file = 'Municipios.csv'

# Ler o arquivo CSV original
df = pd.read_csv(input_file, delimiter=';', decimal=',')

# Exibir o DataFrame original para referência
print("DataFrame Original:")
print(df.head())

# Configuração de conexão ao banco de dados
dsn = cx_Oracle.makedsn('192.168.15.250', 1521, service_name='DBI')
connection = cx_Oracle.connect(user='Desenvolvimento', password='senha001', dsn=dsn)
cursor = connection.cursor()

# Iterar sobre cada linha do DataFrame e inserir os dados na tabela
for index, row in df.iterrows():
    cursor.execute("""
        INSERT INTO MUNICIPIOS (
            MUNICIPIOSEMACENTO, LONGITUDE, LATITUDE, NM_LOCALIDADE, ID, CD_GEOCODSD, CD_GEOCODDS, 
            NM_DISTRITO, CD_IBGE, NM_MUNICIPIO, NM_MICRO, NM_MESO, NM_UF, NM_CATEGORIA, ALT, 
            LOCALIZACAO_ACENTOS, LOCALIZACAO_SEM_ACENTOS
        ) VALUES (
            :MUNICIPIOSEMACENTO, :LONGITUDE, :LATITUDE, :NM_LOCALIDADE, :ID, :CD_GEOCODSD, :CD_GEOCODDS, 
            :NM_DISTRITO, :CD_IBGE, :NM_MUNICIPIO, :NM_MICRO, :NM_MESO, :NM_UF, :NM_CATEGORIA, :ALT, 
            :LOCALIZACAO_ACENTOS, :LOCALIZACAO_SEM_ACENTOS
        )
    """, {
        'MUNICIPIOSEMACENTO': row['MUNICIPIOSEMACENTO'],
        'LONGITUDE': row['LONGITUDE'],
        'LATITUDE': row['LATITUDE'],
        'NM_LOCALIDADE': row['NM_LOCALIDADE'],
        'ID': row['ID'],
        'CD_GEOCODSD': row['CD_GEOCODSD'],
        'CD_GEOCODDS': row['CD_GEOCODDS'],
        'NM_DISTRITO': row['NM_DISTRITO'],
        'CD_IBGE': row['CD_IBGE'],
        'NM_MUNICIPIO': row['NM_MUNICIPIO'],
        'NM_MICRO': row['NM_MICRO'],
        'NM_MESO': row['NM_MESO'],
        'NM_UF': row['NM_UF'],
        'NM_CATEGORIA': row['NM_CATEGORIA'],
        'ALT': row['ALT'],
        'LOCALIZACAO_ACENTOS': row['LOCALIZACAO_ACENTOS'],
        'LOCALIZACAO_SEM_ACENTOS': row['LOCALIZACAO_SEM_ACENTOS']
    })

# Confirmar as mudanças e fechar a conexão
connection.commit()
cursor.close()
connection.close()

print("Dados inseridos no banco de dados com sucesso.")
