Mudando a Data de pesquisa.
Boa Tarde, Pessoal
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:
Desde já agradeço, e muito a ajuda pessoal.
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:
SELECT
"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')
"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
Curtidas 0
Respostas
Roberto Spernega
17/10/2016
Bom dia Sergio,
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...
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
Sergio
17/10/2016
Bom Dia, Roberto
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:
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
Roberto Spernega
17/10/2016
Sergio,
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
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
Sergio
17/10/2016
Boa Tarde, Roberto
Voltei para o Sql Developer e funcionou que uma beleza.
Muito obrigado, maninho.
Voltei para o Sql Developer e funcionou que uma beleza.
Muito obrigado, maninho.
GOSTEI 0