Fórum Mudando a Data de pesquisa. #564196
17/10/2016
0
Seguinte estou criando um Select para um relatório, e me deparei com a seguinte dificuldade, usei bastante a função do Oracle "SYSDATE", agora quero ver um jeito de pode alterar as datas todas de uma vez, já tentei inserir uma variável, mas não consegui.
Segue parte do código, neste caso esta só com uma linha após o select, mas no original tem muitas, semelhantes a ela:
"TRUNC"("MONTHS_BETWEEN"(SYSDATE ,BEM.DTINIREFCIAP)) AS MESES_JA_UTILIZADA
FROM
TCIBEM BEM,
TGFPRO PRO
WHERE BEM.CODEMP = 1
AND PRO.CODPROD = BEM.CODPROD
AND BEM.DTFIMREFCIAP >= "TRUNC"(SYSDATE, 'MONTH')
Desde já agradeço, e muito a ajuda pessoal.
Sergio
Curtir tópico
+ 0Posts
18/10/2016
Roberto Spernega
Estes SELECTS estão num script (arquivo texto), Forms, Reports, Procedures ou Functions?
Depende de onde estiver a solução é diferente.
Se forem scripts, puros, que você executa pelo sqlplus, tem que criar uma VARIABLE do tipo texto.
variable v_data varchar2(10);
E se referenciar a ela com a formatação de data.
To_date(:v_data,'dd/mm/yyyy')
SELECT TRUNC(MONTHS_BETWEEN(To_date(:v_data,'dd/mm/yyyy'),BEM.DTINIREFCIAP)) AS MESES_JA_UTILIZADA
FROM TCIBEM BEM, TGFPRO PRO
WHERE BEM.CODEMP = 1
AND PRO.CODPROD = BEM.CODPROD
AND BEM.DTFIMREFCIAP >= TRUNC(To_date(:v_data,'dd/mm/yyyy'), 'MONTH')
seria mas ou menos isso.
Se for um bloco PLSQL já é de outro jeito...
Gostei + 0
18/10/2016
Sergio
Maninho sou leigo ainda no assunto, mas uso esse select para um relatório no Navicat, consulta direto no banco de dados de meu sistema.
Coloquei como me falou mas apresentou o erro:
[SQL]SELECT
TRUNC(MONTHS_BETWEEN("TO_DATE"(:v_data,''dd/mm/yyyy''),BEM.DTINIREFCIAP)) AS MESES_JA_UTILIZADA
FROM TCIBEM BEM, TGFPRO PRO
WHERE BEM.CODEMP = 1
AND PRO.CODPROD = BEM.CODPROD
[Err] ORA-01008: nem todas as variáveis são limitadasGostei + 0
18/10/2016
Roberto Spernega
Este erro é de variável não encontrada.
Não conheço o NAVICAT, vi apenas que é uma ferramenta para acessar bancos de dados.
[tagcod][SQL]variable v_data varchar2(10);
[tagcod][SQL]SELECT
TRUNC(MONTHS_BETWEEN("TO_DATE"(:v_data,''dd/mm/yyyy''),BEM.DTINIREFCIAP)) AS MESES_JA_UTILIZADA
FROM TCIBEM BEM, TGFPRO PRO
WHERE BEM.CODEMP = 1
AND PRO.CODPROD = BEM.CODPROD
Gostei + 0
18/10/2016
Sergio
Voltei para o Sql Developer e funcionou que uma beleza.
Muito obrigado, maninho.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)