【发布时间】:2019-07-09 13:40:03
【问题描述】:
试图创建一个程序,但我不断收到错误消息。这是代码
create or replace procedure HK.PURGE_LAN_DOTS
AS
batchsize number := 15000;
deleteline timestamp := current_timestamp - 365;
counter number := 0;
BEGIN
loop
DELETE FROM LAN.DOTS
WHERE rownum <= batchsize
AND TIMESTAMP < deleteline;
COMMIT;
counter:=counter + SQL%rowcount;
exit when batchsize > SQL%rowcount;
end loop;
HK.PURGE_LAN_DOTS;
END
这是我遇到的错误
错误(36,12):PLS-00103:遇到符号“。”预期以下情况之一时:;
【问题讨论】:
-
您发布的代码没有36行,因此不清楚错误指的是什么。如果它是更大脚本的一部分,您是否真的在
END之后有一个尾随分号,以及合适的语句分隔符——比如单独一行的/——在这和你在脚本中做的下一件事之间? -
除非您打算创建“HK.PURGE_LAN_DOTS;”行以创建永无止境的递归过程需要删除。我相信您要查找的是“END PURGE_LAN_DOTS;(无模式名称)。进一步使用 TIMESTAMP 列名是极差的做法,因为该术语是 Oracle 定义的类型。虽然允许使用列名,但很难发现错误。
标签: oracle stored-procedures plsql mod-plsql