Como trabalhar com parâmetros do tipo data em concurrents

Laptop Date

Se tem um tipo de dado muito utilizado em parâmetros de programas, é o tipo data.

Com ele podemos filtrar as queries dos nossos programas, seja com data única ou numa faixa de datas (inicial e final).

Só é preciso tomar alguns cuidados, por exemplo, com os formatos.

E no EBS não é diferente, principalmente quando temos parâmetros do tipo data em concurrents e esses parâmetros serão utilizados em programas armazenados no banco de dados.

Por sorte, temos uma API pronta para facilitar a nossa vida, que é a FND_DATE.

Ela possui funções que formatam as datas do jeito que precisamos.

Quer saber mais sobre esse assunto? Então acompanhe o artigo para saber mais sobre:

  • Configuração do parâmetro no concurrent
  • Configuração do parâmetro na stored procedure
  • FND_DATE.CANONICAL_TO_DATE e FND_DATE.DATE_TO_CANONICAL

Configuração do parâmetro no concurrent

Quando estamos configurando o parâmetro do tipo data no concurrent, devemos utilizar o conjunto de valores FND_STANDARD_DATE:

FND_STANDARD_DATE

Ele irá garantir que o parâmetro chegue com o formato correto na stored procedure.

Configuração do parâmetro na stored procedure

Aqui talvez você ache estranho, mas o tipo do parâmetro deve ser VARCHAR2 e não DATE:

-- Declaração da Procedure
PROCEDURE teste (p_date IN VARCHAR2);

Mas não termina aqui, você não pode simplesmente utilizar o parâmetro no formato VARCHAR2, pois terá problemas.

Antes de utilizar precisará converter esses valores, como veremos a seguir.

FND_DATE.CANONICAL_TO_DATE

Antes de utilizar o parâmetro, é necessário convertê-lo para o formato data.

Para essa finalidade utilizamos a API FND_DATE.CANONICAL_TO_DATE:

-- Converte para o formato data
l_date := FND_DATE.CANONICAL_TO_DATE(p_date);

Agora está tudo pronto, basta utilizar a variável que o formato estará correto.

E caso queira fazer o inverso, é só utilizar a FND_DATE.DATE_TO_CANONICAL.

Conclusão

É um detalhe que parece simples, mas já vi muita gente quebrando a cabeça com problema em formatos de datas.

A combinação do conjunto de valores FND_STANDARD_DATE + a API FND_DATE garantirá que você não terá problemas.

Se gostou desse artigo, não deixe de compartilhar com seus amigos.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *