Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

apex2ords

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.

Visão Geral

  • Entrada: arquivo de exportação do APEX (ex.: restful_services_12-22-2025.sql).
  • Saída: script gerado ords_migrated_install.sql com módulos, templates e handlers prontos para ORDS.
  • Conversões:
    • p_uri_template com {param} é convertido para :param (padrão ORDS atual).
    • p_source_type do APEX é mapeado para oracledb/json ou oracledb/plsql.
    • p_source é extraído de string única ou de wwv_flow_string.join(wwv_flow_t_varchar2(...)).
    • Adiciona SET DEFINE OFF para evitar prompts de variáveis &.
    • Inclui ORDS.ENABLE_SCHEMA e COMMIT.

Pré-requisitos

  • Python 3 (sem dependências externas).
  • ORDS configurado no banco (para executar o script gerado).

Dependências e requirements.txt

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.txt

Observações:

  • requirements.txt pode ficar vazio se não houver pacotes externos.
  • Para registrar apenas dependências específicas, edite manualmente o arquivo em vez de usar pip freeze completo.

Como usar

Execute o conversor apontando para o arquivo de exportação do APEX:

python3 apex2ords.py restful_services_12-22-2025.sql

Se o arquivo existir, será gerado ords_migrated_install.sql na mesma pasta.

Exemplo

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.sql

Instalando no ORDS

Use SQL*Plus ou SQLcl conectado ao schema destino e execute o script gerado:

@ords_migrated_install.sql

O script já habilita o schema (ORDS.ENABLE_SCHEMA) e define módulos, templates e handlers.

Notas e limitações

  • Caso apareça Error_Parsing_Source em 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) para p_url_mapping_pattern ao habilitar o schema.

Arquivos do projeto

Troubleshooting

  • "Arquivo não encontrado": verifique o caminho do .sql passado.
  • Variáveis &: o script inclui SET DEFINE OFF para evitar prompts.
  • Endpoints não respondem: valide se o ORDS está configurado para o schema correto e se o p_base_path e p_pattern refletem sua estrutura desejada.

About

Transforma APEX Restful Services em ORDS Restful Services.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages