- Este tópico contém 5 respostas, 3 vozes e foi atualizado pela última vez 15 anos, 10 meses atrás por
Thiago Vilhena.
-
AutorPosts
-
18 de maio de 2010 às 8:50 pm #94061
Thiago Vilhena
ParticipanteBom dia pessoal, mais uma venho aqui pedir um help..
Po eu estou aqui tentando trazer esse select
SELECT SYSDATE,
LAST_DAY(SYSDATE) "Last",
LAST_DAY(SYSDATE) - SYSDATE "Days Left"
FROM DUALDentro de um bloco PL/SQL e verificar se faltam menos de 3 dias para a virada do mes, e printar na tela tela do sqlplus
tentei fazer essa linda gambiarra rsrs,
/* BEGIN
FOR item IN
(
SELECT SYSDATE
FROM DUAL
)
LOOP
dbms_output.put_line('SYSDATE =' || item.sysdate || ', ULTIMO DIA =' ||LAST_DAY(item.sysdate) || ', FALTAM = ' ||(LAST_DAY(item.sysdate) - SYSDATE) || ' DIAS');
END LOOP;
END;
/
A ideia, é utilizar essa verificação para que todo final de mes quando faltar menos de 3 dias para virada rode uma outra query que verifique se uma tabela especifica está particionada, ai caso ela nao esteja executar uma DDL para fazer o particionamento, mas estou indo por partes
Primeiro tentar trazer essa query para verificar quanto tempo falta para acabar o mes
Vlw pessoal abração
18 de maio de 2010 às 8:55 pm #94062Thiago Vilhena
Participanteah pessoal estou caminhando rsrs conssegui isso aqui…
declare
data_01 date;
data_02 date;
data_03 varchar2(50);
BEGIN
SELECT SYSDATE,
LAST_DAY(SYSDATE),
LAST_DAY(SYSDATE) - SYSDATE
into data_01, data_02, data_03
FROM DUAL;
dbms_output.put_line('SYSDATE =' || data_01 || ', ULTIMO DIA =' || data_02 || ', FALTAM = ' || data_03);
END;
/
vou verficar se é menos que 3
18 de maio de 2010 às 9:02 pm #94063Regis Araujo
ParticipanteThiago..!!
Não é mais facil vc criar um JOB que execute todo dia 28 de cada mês?? Um Job que irá criar as partições para o proximo mês ???!?!
Abraços..!
18 de maio de 2010 às 9:09 pm #94064burga
Participanteou algo assim:
select 1
from dual
where
to_char(sysdate + 3,'MM') != to_char(sysdate,'MM');18 de maio de 2010 às 9:14 pm #94065Thiago Vilhena
Participante[quote=”Thunder_Catz”:39pais33]Thiago..!!
Não é mais facil vc criar um JOB que execute todo dia 28 de cada mês?? Um Job que irá criar as partições para o proximo mês ???!?!
Abraços..![/quote]
Entao, isso ira ser feito em PROCEDURE, irei criar uma procedure para fazer isso, mas como nao entendo muito de PL, alias nada rsrs
eu estou estudando.18 de maio de 2010 às 10:08 pm #94066Thiago Vilhena
ParticipanteEntao a ideia é que a proc irá ser executada todos os dias, dai qando faltar la os 3 dias pra virada do mes ela vai la verifica se esta particionada se estiver passa direto se nao estiver particionado, vai la e particiona, =D foi essa logica que pensei.
penssei nisso visando algum problema da aplicação parar de funcionar e ficar travado uns 2 dias, quando restaurarem a procedure vai verificar la e vai fazer, é pra precaver futuros problemas =D
-
AutorPosts
- Você deve fazer login para responder a este tópico.