如何正确重写程序?我想删除4个月以来的旧数据

时间:2018-01-21 07:09:06

标签: oracle stored-procedures plsql

我的表名是ARBITER,其中一列是CREATE_DATE。我想删除超过4个月的数据。

如何正确重写程序?所以我写了这个:

procedure RemoveOldData(CREATE_DATE) as 
BEGIN 
   delete from ARBITER 
   where trunc(sysdate) < add_months(trunc(sysdate),-4); 
END; 

但是我收到了这个错误

  

错误(91):PLS-00103:遇到符号&#34;文件结束&#34;期待以下之一时:开始结束函数编译指示程序

3 个答案:

答案 0 :(得分:2)

此程序将产生您需要的具体结果:

create or replace PROCEDURE RemoveOldData IS
BEGIN
     delete from ARBITER 
     where create_date < add_months(trunc(sysdate),-4);
END;
/

这是a LiveSQL demo (OTN account required)

问题是您打算使用此参数

PROCEDURE RemoveOldData (ARBITER in varchar2)

这应该是截止日期吗?表名?

答案 1 :(得分:0)

或者,您可以使用class ViewCreate(CreateView): model = view_C author_name = self.request.user.username #this is the error author = get_user_model().objects.get(username=author_name).pk publish_date = datetime.date.today() initial={ 'author':author, 'publish_date':publish_date, } 函数(如果恰好包含四个月的时间,请在4之前添加一个等号):

months_between

答案 2 :(得分:-1)

create or replace procedure RemoveOldData(CREATE_DATE  in varchar2)
as
begin
delete from CREATE_DATE 
where trunc(sysdate)  < add_months(trunc(sysdate),-4);
exception
WHEN OTHERS THEN
   raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);

end;

/