Baseado no post que vi de um colega, editei um script para subir todos os vendedores via excel. É necessário criar uma planilha em excel com as informações dos vendedores e colunas conforme a base.
import cx_Oracle
import pandas as pd
class Extrator:
def __init__(self, linha):
self.linha = linha
self.descritor = linha[1]
def split_descritor(self):
return self.descritor.split('-')
def split_linha(self):
return [item for item in self.linha]
def get_id(self):
return self.split_linha()[0]
def get_descritor(self):
return self.descritor
def get_embalagem(self):
return self.split_linha()[2]
def get_tamanho(self):
return self.split_descritor()[1].strip()
def get_sabor(self):
return self.split_descritor()[2].strip()
def get_preco(self):
return self.split_linha()[3]
def __str__(self):
return f'ID: {self.get_id()} - Descritor: {self.get_descritor()} - Embalagem: {self.get_embalagem()} - ' \
f'Tamanho: {self.get_tamanho()} - Sabor: {self.get_sabor()} - Preco: {self.get_preco()}'
# Lendo excel
dfv = pd.read_excel(r"CAMINHO_ATÉ_ARQUIVO\vendedores.xlsx", engine='openpyxl') # necessita ter o pacote openpyx
dfv.drop(df.iloc[:,4:], inplace=True, axis=1)
# Iniciando conexão
# servidor, porta e serviço -> so utilizar o que é disponibilizado nos detalhes da
#conexao via sql developer
dsn_tns = cx_Oracle.makedsn('localhost', '1521', service_name='xe')
connection = cx_Oracle.connect(
user="system", # Usuario
password="SUA SENHA", # Senha
dsn=dsn_tns) # Detalhes da conexão
print("Conexão com o database realizada!")
cursor = connection.cursor()
# Elimina tabela
cursor.execute("""
begin
execute immediate 'drop table TABELA_DE_VENDEDORES';
exception when others then if sqlcode <> -942 then raise; end if;
end;""")
# Criando tabela
cursor.execute("""
create table TABELA_DE_VENDEDORES (
MATRICULA VARCHAR2(5),
NOME VARCHAR2(100),
PERCENTUAL_COMISSAO FLOAT
)""")
# Definindo chave primaria
cursor.execute("""
alter table TABELA_DE_VENDEDORES add constraint PK_TABELA_DE_VENDEDORES primary key (MATRICULA)""")
for row in dfv.itertuples(index=False):
extrator = Extrator(row)
tup = (extrator.get_id(), extrator.get_descritor(), extrator.get_embalagem())
cursor.execute("insert into TABELA_DE_VENDEDORES (MATRICULA, NOME, PERCENTUAL_COMISSAO) values(:1, :2, :3)", tup)
print("Vendedores adicionados ao banco de dados.")
connection.commit()
cursor.close()
connection.close()