with days as (
select date '2014-05-12' + (level - 1) as day
from dual
connect by level <= date '2014-05-16' - date '2014-05-12' + 1
)
select *
from days
order by day;
SQLFiddle: http://sqlfiddle.com/#!4/d41d8/29558
If you need this on a regular basis, it's probably better to create a function that does this for you:
create or replace type date_list as table of date
/
create or replace function generate_series(p_start_date date, p_end_date date)
return date_list
pipelined
is
l_count integer;
begin
l_count := trunc(p_end_date) - trunc(p_start_date);
for i in 0..l_count loop
pipe row (p_start_date + i);
end loop;
end;
/