Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gessimarjunior

Tipo Data em Um CURSOR

Recommended Posts

Quando faço um cursor e trago uma data no select essa data não aparece no formato do ano de quatro dígitos (ex.: 18/02/2000 aparece 18/02/00).

 

Exemplo:

 

Os registros no campo TAB_DATA possuem data com ano com 4 dígitos mas quando a variavel vData é utilizada o ano aparece só com 2 dígitos, alguem sabe se tem alguma configuração ou algo assim para que a variavel vData venha com ano com 4 dígitos? (conseguentemente a variavel TESTE fica com ano com 2 dígitos)

 

DECLARE

vCODIGO TABELA.TAB_CODIGO%TYPE;

vDATA TABELA.TAB_DATA%TYPE;

TESTE DATE;

 

CURSOR TESTE_CURSOR IS

SELECT TAB_CODIGO, TAB_DATA

FROM TABELA;

BEGIN

OPEN TESTE_CURSOR;

LOOP

FETCH TESTE_CURSOR INTO vCodigo,vData;

EXIT WHEN ITENS%NOTFOUND;

 

TESTE := vDATA;

 

END LOOP;

CLOSE TESTE_CURSOR;

END;

 

 

Já tentei utilizar TO_DATE(vDATA,'DD/MM/YYYY') e nada, Tentei tambem no select colocar TO_DATE(TAB_DATA,'DD/MM/YYYY') e tambem não deu certo.

 

 

Valew

Compartilhar este post


Link para o post
Compartilhar em outros sites

O formata data do Oracle guarda a data com dia,m~es,ano hora minuto e segundo.

 

Seu problema pare estar na formatação da saída.

 

tente rodar o bloco abaixo

 

DECLARE

vCODIGO TABELA.TAB_CODIGO%TYPE;

vDATA TABELA.TAB_DATA%TYPE;

TESTE DATE;

 

CURSOR TESTE_CURSOR IS

SELECT TAB_CODIGO, TAB_DATA

FROM TABELA;

BEGIN

OPEN TESTE_CURSOR;

LOOP

FETCH TESTE_CURSOR INTO vCodigo,vData;

EXIT WHEN ITENS%NOTFOUND;

 

TESTE := vDATA;

dbms_output.put_line(to_char(teste,'dd/mm/yyyy hh24:mi:ss day month year q'); // não esqueça de ligar o output on !!

END LOOP;

CLOSE TESTE_CURSOR;

END;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.