Oracle

warning: Creating default object from empty value in /home/bughunter/bughunter.tecland.com.br/modules/taxonomy/taxonomy.module on line 1390.

SQL injection no Oracle usando o tipo DATE via NLS_DATE_FORMAT

Seguindo a ideia passada no blog do Tom Kyte [1], é possível fazer sql injection via uma variável DATE no PL/SQL, isso por causa da possibilidade de alterar a formatação do tipo DATE, e isso pode ser feito tanto via ALTER SESSION, como via variável de ambiente.

Demonstrarei como poderíamos utilizar esse detalhe do Oracle (que não é um bug, mas uma falha na aplicação), para injetar SQL.

Oracle: Retornando dados através de uma função

Mais uma beleza de recurso do Oracle a ser testado! Chama-se Table Function, segue a definição dada pela documentação [1]:

Oracle9i's table functions provide the support for pipelined and parallel execution of transformations implemented in PL/SQL, C, or Java. Scenarios as mentioned earlier can be done without requiring the use of intermediate staging tables, which interrupt the data flow through various transformations steps.

Deletando N últimas linhas no MySQL e no Oracle

Seguindo a idéia apresentada em um tópico de um fórum, onde foi solicitada uma solução para deleção de N últimas linhas de uma tabela no MySQL. A questão é bem simples de resolver, principalmente porque o MySQL fornece tanto ORDER BY como LIMIT para o DELETE, isso mesmo, ORDER BY no DELETE!

Assim fica mole então né? Vamos ao exemplo removendo as últimas 5 linhas de uma tabela através de um campo de valor único crescente.!

Oracle: Criando índice virtual

Como de costume, cada vez mais acho recursos super interessantes no Oracle. Dessa vez, trata-se da criação de índice virtual, que é a criação de índice sem storage para a árvore do mesmo. O banco simplesmente simula o acesso como se houvesse o índice real. A utilidade de tal recurso sem dúvida é para possibilitar o teste do comportamento do CBO quanto ao uso do índice, principalmente em uma tabela onde há uma grande massa de dados, o que tomaria bastante tempo e disco se não fosse virtual.

Oracle: Obtendo dados hierarquicamente

Mais um grande ajuda provida pelo Oracle, é a possibilidade de trazer os dados de forma hierárquica. Para isso, usamos o comando START WITH ... CONNECT BY PRIOR ..., que funciona da seguinte forma [1]: