![](/img/trans.png)
[英]Insert data into oracle table using PL SQL only consists of 'Saturday' of the year
[英]How to insert data into oracle database table using PL SQL which includes 365 days of the year
我已經有一個內置於oracle的表。 我正在嘗試插入一些看起來像這樣的數據:
但是,我似乎無法將DATE與ID,YEAR和INDICATOR一起添加。
我設法從1/1/2019 7:00:00 PM-12/31/2019 7:00:00 PM獲取日期。
碼:
INSERT INTO TABLE(DATE)
select to_date('01-01-2019 7:00:00 PM', 'DD-MM-YYYY HH:MI:SS PM') + rownum -1 dt from dual
connect by level <= to_date('05-01-2019 7:00:00 PM', 'DD-MM-YYYY HH:MI:SS PM') -
to_date('01-01-2019 7:00:00 PM', 'DD-MM-YYYY HH:MI:SS PM') + 1;
當我排除DATE時,它看起來像這樣:
碼:
INSERT INTO TABLE (ID, YEAR, INDICATOR)
Values (sequ.nextval, '2019', 'X') ;
我試圖將這兩個代碼組合在一起,但是它不起作用。 我還有其他方法可以使它起作用嗎? 還是我做錯了方法? 唯一的更改數據是DATE,因為我需要將其設置為2019年的365天。所有數據的YEAR和INDICATOR都保持不變。
這是你想要的嗎?
insert into table(id, "date", "year", indicator)
select rownum, dt, extract(year from dt), 'X'
from (select to_date('01-01-2019 7:00:00 PM', 'DD-MM-YYYY HH:MI:SS PM') + rownum - 1 as dt
from dual
connect by level <= to_date('05-01-2019 7:00:00 PM', 'DD-MM-YYYY HH:MI:SS PM') -
to_date('01-01-2019 7:00:00 PM', 'DD-MM-YYYY HH:MI:SS PM') + 1
) t;
甚至更短(假設您可以計算當前年份):
insert into table( id, date, year, indicator)
select sequ.nextval, to_date('31-12-2018 07:00:00', 'DD-MM-YYYY HH24:MI:SS') + rownum, 2019, 'X' from all_objects where rownum <= 365
或者,如果您不想使用ALL_OBJECTS表:
insert into table( id, date, year, indicator)
select sequ.nextval, to_date('31-12-2018 07:00:00', 'DD-MM-YYYY HH24:MI:SS') + level, 2019, 'X' from dual connect by level <= 365
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.