我希望将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