나는 FromDate 및 ToDate를 프로 시저에 전달한 후 다음과 같이 값을 업데이트하고 삽입하려고합니다. student
및 studLoad
테이블에는 각각 id, name 및 insertDate라는 세 개의 필드가 있습니다.날짜 비교 오라클에 병합
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
특히 "날짜 문제"에 문제가 있습니까? –
코드에서 sl.insertdate = trunc (sysdate) 및 trunc (sysdate)를 제거하면 프로 시저가 생성됩니다.하지만 당연히 내 요구 사항을 충족하지 못합니다. – z22
일반적으로 오류가 발생하는 경우 매우 유용합니다 우리가 추측하기보다는 오류를 게시하는 것. 유효한 구문이 아닌 INSERT ... VALUES 문에 WHERE 절을 지정하려고하기 때문에 컴파일 오류가 발생했다고 가정합니다. 또한 귀하의 요구 사항이 무엇인지 정확히 설명하는 것이 도움이 될 것입니다. 귀하는 "올바른"것으로 간주 할 수있는 것을 모릅니다. –