Compilação Condicional com Oracle 10g

Estudando alguns recursos do banco para utilizar na Integração, verifiquei a existência de uma interessante característica do Oracle.

Estava escrevendo uma estrutura de integração onde iria alterar uma trigger em uma tabela central do sistema de gestão de planos de saúde da Unimed Fortaleza. Como temos outras Unimeds como clientes, não poderia simplesmente referenciar minhas novas estruturas nesta trigger e enviá-las em outras versões para eles.

A compilação condicional permite utilizar o pré-processador do PL/SQL a fim de decidir se um excerto de código irá ou não ser utilizado na compilação.

Utilização

O exemplo abaixo ilustra uma função que utiliza este recurso:

Compilação Condicional 1

Ao compilar esta função normalmente com o comando ALTER FUNCTION IDADE COMPILE;, teríamos o seguinte código:

Compilação Condicional 2

Para utilizar a compilação condicional, teríamos o seguinte comando:

ALTER FUNCTION idade COMPILE PLSQL_CCFLAGS = ‘auditoria_idade:TRUE’ REUSE SETTINGS;
Teríamos o código deste jeito:

Compilação Condicional 3

Conclusão

A utilização da compilação condicional permite que sejam ativados blocos de códigos de acordo com a passagem de parâmetros durante a compilação.

A principal desvantagem é a ortogonalidade do código, que fica um pouco comprometida pela utilização de instruções pouco usuais. Outro fator é que não temos como documentar as macros que são utilizadas nos códigos, a não ser que o objeto seja lido.

Vejo como maior vantagem a possibilidade de incluirmos códigos, que em certos contextos podem ser inválidos. Por exemplo, um cliente X não terá a estrutura de integração, mesmo assim, posso fazer referência às packages dentro do bloco condicional que este só será validado na compilação em que seja passado o valor TRUE para a macro.

NanoBase: Um processador de consultas para a plataforma JME CLDC/MIDP

Ano passado foi um ano corrido. Com orientação do Prof. José Maria Monteiro, Vitor Vasconcelos e eu reformulamos o NanoBase para uma arquitetura mais robusta e orientada a padrões.

Conheça mais o NanoBase e o NanoZoom.

Security Masturbating Monkeys

 

Linus Torvalds disse recentemente que ele acha o povo do OpenBSD, permitam-me a livre tradução, “um bando de macacos masturbadores”.Claro que não foi de graça, na realidade, ele se referia às pessoas que acham que bugs de segurança têm uma maior prioridade sobre bugs usuais, como a de um driver qualquer, por exemplo.

A causa de Linus é nobre, porém muito bairrista. Empresas de segurança não patrocinam o Linux. Ponto para eles que contam com um defensor de peso.

Filler

Enquanto a parada não começa!

Exploits of a Mom