2
給定兩次,我如何在Oracle表中每小時插入一行?Oracle - 在兩次之間每小時插入一行
Start Time: 3.00 PM
End Time: 6.00 PM
Name: 'Asdfg'
預計數據將產生:
Name StartTime EndTime
ASDFG 3.00 4.00
ASDFG 4.00, 5.00
ASDFG 5.00 6.00
給定兩次,我如何在Oracle表中每小時插入一行?Oracle - 在兩次之間每小時插入一行
Start Time: 3.00 PM
End Time: 6.00 PM
Name: 'Asdfg'
預計數據將產生:
Name StartTime EndTime
ASDFG 3.00 4.00
ASDFG 4.00, 5.00
ASDFG 5.00 6.00
這確實是沒有PL/SQL中,一個插入。你可以參數化開始和結束時間,並在你的程序中使用它:
INSERT INTO tbl (NAME, starttime, endtime)
(SELECT 'ASDFG', t1, t2
FROM (SELECT to_char((to_date('3.00 PM','HH.MI AM')+(LEVEL-1)/24),'HH.MI AM') t1
, to_char((to_date('3.00 PM','HH.MI AM')+LEVEL/24), 'HH.MI AM') t2
FROM dual
CONNECT BY LEVEL <= (to_date('6.00 PM','HH.MI AM') - to_date('3.00 PM','HH.MI AM')) * 24));
CurrentTime := StartTime;
WHILE CurrentTime <= EndTime
LOOP
INSERT INTO MY_TABLE VALUES (CurrentTime);
CurrentTime := CurrentTime + (1/24);
END LOOP;
COMMIT;
應該做的伎倆(我沒有嘗試...)
你從哪裏插入** **?客戶端應用程序或存儲過程(如「plsql」標記可能會提示)? –
SP內。我得到兩個參數作爲StartTime和EndTime。 – Asdfg
另外,你是否希望實際的INSERT **執行**間隔一個小時,或者你只需要「空出」插入的數據,而INSERT本身可以一次完成? –