Este é um projeto web robusto construído em Python (Flask) para servir como uma interface gráfica (GUI) para executar consultas e atualizações em um banco de dados Oracle. A ferramenta é 100% modular, permitindo que novas operações de banco de dados sejam adicionadas e editadas diretamente de um arquivo queries.json, sem a necessidade de alterar o código-fonte.
- Interface Modular: As queries não estão fixadas no código. Elas são carregadas dinamicamente a partir do
queries.json. - Editor de Query: Permite visualizar e editar a query SQL salva diretamente pela interface web (com um alerta de segurança).
- Filtros Dinâmicos: A interface gera os campos de filtro (parâmetros) automaticamente, com base no que está definido no JSON.
- Resultados em Tabela: Exibe os resultados da busca em uma tabela interativa com coluna de seleção "congelada" (sticky).
- Formulário de Update Dinâmico: Gera os campos de atualização com base nas colunas retornadas pela query.
- Segurança: As credenciais são gerenciadas por variáveis de ambiente (
.env) e não são expostas no código.
- Backend: Python 3, Flask,
oracledb - Frontend: HTML5, CSS3, JavaScript (Vanilla JS/Fetch API)
- Configuração: JSON
Siga estes passos para executar o projeto localmente.
- Python 3.7+
- Acesso a um banco de dados Oracle (local ou remoto).
- Oracle Instant Client (necessário para a biblioteca
oracledbse conectar ao banco).
git clone https://github.com/Celta031/dynamic-oracle-query-tool.git
cd dynamic-oracle-query-tool# Windows
python -m venv venv
venv\Scripts\activate
# macOS / Linux
python3 -m venv venv
source venv/bin/activatepip install -r requirements.txtCrie seu próprio arquivo de credenciais a partir do exemplo.
# Copie o arquivo de exemplo
cp .env.example .envAgora, edite o arquivo .env com suas credenciais reais do Oracle.
# / .env
DB_USER="OCI"
DB_PASSWORD="sua-senha-real"
DB_HOST="102.168.0.0"
DB_PORT="1521"
DB_SERVICE="opc.sub00000.vcn.oraclevcn.com"
DB_ROLE_PASSWORD="123456~"Edite o arquivo queries.json para refletir as tabelas, colunas e regras de negócio do seu banco de dados.
"id": Um identificador único."name": O nome que aparecerá no dropdown."sql": A query SQL (deve incluira.rowidcomo primeira coluna para o update funcionar)."target_table": A tabela que sofrerá oUPDATE."parameters": Os campos que se tornarão filtros (bind variables da query)."update_rules": Mapeamento de colunas que podem ser atualizadas e suas regras de conversão (ex:TO_TIMESTAMP).
python run.pyAbra seu navegador e acesse http://127.0.0.1:5000.