2010-06-28 7 views

Répondre

4
SELECT LAST_DAY(ADD_MONTHS(SYSDATE, -2)) + level 
FROM dual 
CONNECT BY 
     level <= LAST_DAY(ADD_MONTHS(SYSDATE, -1)) - LAST_DAY(ADD_MONTHS(SYSDATE, -2)) 
1

Comme ça?

begin 
for i in 1..to_char(trunc(sysdate,'mm')-1,'dd') loop 
    dbms_output.put_line(i); 
end loop; 
end; 
/

Ou si vous voulez ce jour:

begin 
for i in 1..to_char(trunc(sysdate,'mm')-1,'dd') loop 
    dbms_output.put_line(i+trunc(trunc(sysdate,'mm')-1,'mm')-1); 
end loop; 
end; 
/
0

Essayez celui

WITH d AS 
(
SELECT TRUNC (sysdate, 'MM') - 1 AS dt 
FROM dual 
) 
SELECT dt + LEVEL 
FROM d 
CONNECT BY LEVEL <= ADD_MONTHS (dt, 1) - dt