SQL

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

Identificando intervalos entre datas no MySQL

Seguindo uma dúvida postada no fórum iMasters, que é a respeito de como identificar os intervalos de meses em que não há registro para um determinado usuário (o que chamamos de GAPS), irei exemplificar como resolver este problema com uma simples abordagem.

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]: