sexta-feira, 30 de abril de 2010

Formatar intervalos de datas

Quem trabalha com Oracle sabe, que se você subtrair dois campos de data, o resultado será um number, como no exemplo abaixo:

SQL> select sysdate-to_date('11/11/2009','dd/mm/rrrr')
2 from dual
3 /

SYSDATE-TO_DATE('11/11/2009','DD/MM/RRRR')
------------------------------------------
170,651424

Mas existe uma função criada a partir da versão 10g do banco, para formatar este resultado em algo que faz mais sentido para o usuário, demonstrada abaixo:

SQL> select NUMTODSINTERVAL(sysdate-to_date('11/11/2009','dd/mm/rrrr'),'day')
2 from dual
3 /

NUMTODSINTERVAL(SYSDATE-TO_DATE('11/11/2009','DD/MM/RRRR'),'DAY')
---------------------------------------------------------------------------
+000000170 15:38:07.999999999

Ou seja, existem 170 dias, 15 horas, 38 minutos e 7 segundos entre os dois intervalos de data.

A função NUMTODSINTERVAL exige o segundo parâmetro, que é a escala que o número está sendo informado, que pode ser day, hour, minute ou second. Teste com vários intervalos e verá os resultados...

quinta-feira, 25 de fevereiro de 2010

Colocar imagem de campo blob no Oracle Reports

Para colocar uma imagem que esteja em um campo blob de uma tabela, selecione este campo no select do reports, e no modo de visualização, no campo procedente, sete a propriedade file format para imagem, como demonstrada no print abaixo:

quarta-feira, 13 de janeiro de 2010

Oracle Forms for Dummies – Part 3

Iremos agora explorar os objetos Trigger do Object Navigator:

Triggers (Gatilhos) servem para executar trechos de código escritos pelo programador quando determinados eventos ocorrem (muito útil). Clicando no botão de adicionar, ele já abre a lista de opções de triggers que podem ser usadas, como se pode ver na figura abaixo:


Assim que você escolher o tipo de trigger, será aberta a janela de edição de código, como na imagem abaixo:


Nesta Janela, você irá digitar o código que deverá ser executado quando o evento originário da trigger acontecer. Lembre-se sempre de escrever no seu bloco PL/SQL um bom tratamento de exceções, com no mínimo as clausulas colocadas neste exemplo.
PS: Se você ainda não sabe PL/SQL, é uma boa hora para aprender antes de continuar lendo este tutorial... :P

As triggers podem ser colocadas em três níveis basicamente:
• Nível de forms: Como as do exemplo acima, disparam quando a ação ocorre a nível de forms
• Nivel de Bloco: Disparam quando a ação ocorre no bloco em que ela está Associada.
• Nivel de campo: Ocorre quando a ação ocorre no campo em que ela está associada.

terça-feira, 29 de dezembro de 2009

Oracle Forms for Dummies – Part 2

Iremos comentar a estrutura hierarquica de uma tela de uma aplicação Oracle Forms:

Basicamente, temos a unidade de programa, que nada mais é que um arquivo fmb(código fonte) e/ou fmx (código executável). Este é o primeiro nível da hierarquia

Logo abaixo, temos as Windows (janelas), que como o nome diz, serão as janelas de sua aplicação.

Exemplo da parte superior de uma window padrão do Oracle Forms

Cada window irá conter um ou mais canvas, que são onde os objetos serão posicionados dentro. Lembra da visão do canvas??? É lá onde irão ficar os objetos.

Dentro da aplicação, teremos também os blocos, que geralmente correspondem a uma tabela do seu modelo de dados (nem sempre é uma tabela, irei explicar melhor quando chegar no item Bloco).

Dentro dos blocos, temos os itens, que correspondem a um objeto que geralmente está relacionado a uma coluna do Banco de Dados


Estes itens do bloco, serão posicionados dentro de um canvas, para dar origem a parte visual da sua aplicação


Resumindo:

Uma aplicação pode ter várias Windows

Uma window pode ter vários canvas

Um canvas pode ter vários itens

Um bloco tem vários itens.

segunda-feira, 28 de dezembro de 2009

Oracle Forms for Dummies – Part 1

Bom, escrevo esta série de posts com a intenção de ajudar as pessoas que estão iniciando a utilizar esta ótima ferramenta de desenvolvimento que é o Oracle Forms. O objetivo não é tornar ninguém ‘um Jedi’ na mesma, mas sim dar subsidio para fazer o básico de uma forma mais correta. Para isto iremos tomar por principio a versão 6i (por ser mais simples de instalar e configurar, posteriormente irei explicar as diferenças para a 10g, mas não são muitas não) e o banco Oracle XE.

Começando pelo principio, a tela inicial do Oracle forms é

Ela contem o menu de opções na parte superior, e o object navigator, onde se pode ‘navegar’ por todos os itens que sua aplicação tem ou terá.

Também teremos posteriormente a visão dos canvas, onde se poderá ver os objetos como eles aparecerão para o usuário (não se preocupe, posteriormente irei explicar para que cada componente serve)

Outra tela importante é a Property palette, onde irão ficar as propriedades dos objetos da sua aplicação (não se preocupe, posteriormente irei explicar para que cada propriedade serve)

Bom, a parte dois irá começar a explicar os itens da aplicação. Até.

segunda-feira, 21 de dezembro de 2009

Subtotal por grupo no BIRT

Bem, estava procurando como fazer um subtotal por grupo de um relatório desenvolvido na ferramenta BIRT, mas não encontrava. Então resolvi postar como fazer...

Use a seguinte função:

Total.sum(row["nomeColuna"], null, "nomeGrupo");

quarta-feira, 9 de dezembro de 2009

Exportação de banco de dados Oracle XE

Bom, vou ser bem simples, para exportar um banco de dados, uma das maneiras é usar o comando expdp

Ele vai criar um arquivo expdat.dmp no caminho (Oracle Xe Home)\app\oracle\admin\xe\dpdump\

Caso queira criar o arquivo de dump com outro nome, utilize a opção dumpfile.
Segue abaixo sintaxe simplificada

expdp (user DBA)@(nome banco) dumpfile=(nome do arquivo de dump).dmp

Simples assim...