各位大侠,请教个oracle问题,执行一段代码出现错误,希望各位给出解决办法,谢谢谢!

执行一下代码时:--创建一个更改emp表sal字段的存储过程createorreplaceprocedurename_update(enoinnumber,--输入参数,... 执行一下代码时:
--创建一个更改emp表sal字段的存储过程
create or replace procedure name_update
(
eno in number,--输入参数,为emp表的EMPNO字段
newsal in number --输入参数,更改sal字段后的新值
) as
--定义部分,定义一个异常
declare exp_name exception;
pragma exception_init(exp_name,-9856);
--执行部分
begin
update emp set sal=newsal where empno=eno;
--如果输入的eno不在emp表中,触发下面的异常,通知用户根据异常信息解决问题。
if SQL%NOTFOUND THEN
raise exp_name;--触发异常语句
end if;
--下面是异常处理语句
exception
when exp_name then
dbms_output.put_line('emp表中不存在:'||eno||'这个编号!');
end;

报错信息如下:
7/1 PLS-00103: 出现符号 "DECLARE"在需要下列之一时: begin function pragma procedure subtype type <an identifier> <a double-quoted delimited-identifier> current cursor delete exists prior external language 符号 "begin" 被替换为 "DECLARE" 后继续。
22/0 PLS-00103: 出现符号 "end-of-file"在需要下列之一时: ( begin case declare end exception exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << continue close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge pipe purge
请问各位高手是什么原因啊????
展开
 我来答
百度网友da38773
2014-03-25 · 超过29用户采纳过TA的回答
知道答主
回答量:70
采纳率:0%
帮助的人:71.4万
展开全部
存储过程里不需要用declare关键字,直接这样写就行了:
create or replace procedure name_update
(
eno in number,--输入参数,为emp表的EMPNO字段
newsal in number --输入参数,更改sal字段后的新值
) as
--定义部分,定义一个异常
exp_name exception;
pragma exception_init(exp_name,-9856);
begin

......
end;
253654522
2014-03-25 · TA获得超过138个赞
知道小有建树答主
回答量:134
采纳率:0%
帮助的人:181万
展开全部
你在declare上面加个begin,最后一行加个end再试试。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式