Conversor simples de exportações de APEX RESTful Services para scripts ORDS modernos (PL/SQL). Lê um arquivo .sql exportado do APEX contendo chamadas wwv_flow_api.create_restful_module/template/handler e gera um script instalável com ORDS.DEFINE_MODULE, ORDS.DEFINE_TEMPLATE e ORDS.DEFINE_HANDLER.
- Entrada: arquivo de exportação do APEX (ex.:
restful_services_12-22-2025.sql). - Saída: script gerado
ords_migrated_install.sqlcom módulos, templates e handlers prontos para ORDS. - Conversões:
p_uri_templatecom{param}é convertido para:param(padrão ORDS atual).p_source_typedo APEX é mapeado paraoracledb/jsonouoracledb/plsql.p_sourceé extraído de string única ou dewwv_flow_string.join(wwv_flow_t_varchar2(...)).- Adiciona
SET DEFINE OFFpara evitar prompts de variáveis&. - Inclui
ORDS.ENABLE_SCHEMAeCOMMIT.
- Python 3 (sem dependências externas).
- ORDS configurado no banco (para executar o script gerado).
Este projeto não usa bibliotecas externas além da biblioteca padrão do Python. Ainda assim, se preferir padronizar o setup com requirements.txt e ambiente virtual, siga:
# Criar e ativar ambiente virtual (macOS/Linux)
python3 -m venv .venv
source .venv/bin/activate
# (Opcional) Gerar requirements.txt com o ambiente atual
pip freeze > requirements.txt
# Instalar dependências a partir do requirements.txt (se existir)
pip install -r requirements.txtObservações:
requirements.txtpode ficar vazio se não houver pacotes externos.- Para registrar apenas dependências específicas, edite manualmente o arquivo em vez de usar
pip freezecompleto.
Execute o conversor apontando para o arquivo de exportação do APEX:
python3 apex2ords.py restful_services_12-22-2025.sqlSe o arquivo existir, será gerado ords_migrated_install.sql na mesma pasta.
No diretório do projeto:
cd /Users/igoraugustodefariacosta/Documentos/Projetos/apex2ords
python3 apex2ords.py restful_services_12-22-2025.sql
# Saída esperada:
# Processando restful_services_12-22-2025.sql...
# Encontrado: <n> Módulos, <n> Templates, <n> Handlers.
# Sucesso! Arquivo gerado: ords_migrated_install.sqlUse SQL*Plus ou SQLcl conectado ao schema destino e execute o script gerado:
@ords_migrated_install.sqlO script já habilita o schema (ORDS.ENABLE_SCHEMA) e define módulos, templates e handlers.
- Caso apareça
Error_Parsing_Sourceem algum handler, revise manualmente a fonte no arquivo gerado — pode haver casos de citação complexa que exigem ajuste. - Nem todos os tipos/funções legado do APEX são cobertos; revise a saída e adapte conforme necessário.
- O padrão de base path utiliza o prefixo do módulo e
LOWER(USER)parap_url_mapping_patternao habilitar o schema.
- Script: apex2ords.py
- Exemplo de entrada: restful_services_12-22-2025.sql
- Saída gerada: ords_migrated_install.sql
- "Arquivo não encontrado": verifique o caminho do
.sqlpassado. - Variáveis
&: o script incluiSET DEFINE OFFpara evitar prompts. - Endpoints não respondem: valide se o ORDS está configurado para o schema correto e se o
p_base_pathep_patternrefletem sua estrutura desejada.