对,确实是declare要删除,你的as已经代表要申明一个变量了
create or replace procedure cpgd_insert(sj in varchar2) as
sl number(10);
begin
select count(1)
into sl
from dba_views
where view_name = 'jbftjl'
and OWNER = 'WINE';
if sl = 1 then
insert into dg_daybb
(epname, gangzhong, ph, guige, rbcp, ybcp, riqi)
select '纵剪机' as epname,
gangzhong,
ph,
guige,
rbcp,
ybcp,
to_date(sj, 'yyyy-mm-dd') as riqi
from jbftjl;
end if;
end;
begin
cpgd_insert ('2012-06-08');
end;
还有个问题,你insert后没提交,所以插入不到表里
insert into 后加一句
commit;
在oracle里,insert update delete后必须提交,否则插不进数据不说 ,还会造成锁表,请牢记
declare 不需要
第一,你sj in varchar2 后面不应该有分号
第二,不应该有declare这个关键字