我希望將FromDate和ToDate傳遞給一個過程,然後按如下方式更新和插入值。 student
和studLoad
表每個都有3個字段:id,name和insertDate。在oracle中比較日期合併
create or replace procedure incload(f_date date,t_date date) is
begin
merge into studload sl
using student s
on (s.studid=sl.studid)
when matched then
update set sl.studname=s.studname, sl.insertdate= trunc(sysdate);
when not matched then
insert (sl.studid,sl.studname,sl.insertdate)
values (s.studid,s.studname,trunc(sysdate))
where s.insertdate > f_date;
end;
日期事情給我帶來麻煩。我哪裏錯了?
編輯,包括錯誤
ERROR at line 12: PLS-00103: Encountered the symbol "END"
1. create or replace procedure incLoad(f_date date,t_date date) is
2. begin
3. merge into studLoad sl
什麼「約會事情」特別是你遇到麻煩? – 2012-08-13 17:20:22
當我刪除代碼中的sl.insertdate = trunc(sysdate)和trunc(sysdate)時,該過程被創建(但它當然不符合我的要求) – z22 2012-08-13 17:23:04
一般來說,如果您遇到錯誤,發佈錯誤而不是讓我們猜測。我假設你正在得到一個編譯錯誤,因爲你試圖在'INSERT ... VALUES'語句中指定一個'WHERE'子句,這是無效的語法。這也將有助於準確解釋您的要求 - 我們不知道您認爲什麼是「正確的」。 – 2012-08-13 17:25:51