如果要插入数据的表已经存在,请使用INSERT INTO
:
with calendar as (
select :startdate + rownum - 1 as day
from dual
connect by rownum < :enddate - startdate )
insert into anothertable (no, dt, dayname)
select rownum as "S.No", to_date(day,'dd_mm_yyyy') as "Cal_Dt", to_char(day,'day') as "DayName"
from calendar
或者使用SELECT INTO
语法创建新表:
with calendar as (
select :startdate + rownum - 1 as day
from dual
connect by rownum < :enddate - startdate )
select rownum as "S.No", to_date(day,'dd_mm_yyyy') as "Cal_Dt", to_char(day,'day') as "DayName" into newtable
from calendar
编辑——实际上评论是完全正确的——没有考虑 Oracle :-) 这是从 Oracle 中的 SQL 语句创建表的正确方法:
with calendar as (
select :startdate + rownum - 1 as day
from dual
connect by rownum < :enddate - startdate )
CREATE TABLE newtable
AS
(select rownum as "S.No", to_date(day,'dd_mm_yyyy') as "Cal_Dt", to_char(day,'day') as "DayName"
from calendar)