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

执行一下代码时:
--创建一个更改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
请问各位高手是什么原因啊????

存储过程里不需要用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;
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-03-25
你在declare上面加个begin,最后一行加个end再试试。

请各位OPenGL高手指点一下,下面一段代码那里出现问题了?谢谢!
try to add this at the beginning of main(). I meet this problem before too.

...在运行场景时,出现以下错误消息,请各位大侠帮忙看一下,说一下原因...
解决参考方案:1)修改服务器配置文件,比如修改:最大连接数、最大线程数、链接超时时间、多少次错误后放弃连接 2)服务器不能过早的主动关闭连接。keep-alive on 3)定位哪个资源引起的问题,对资源进行优化 4)持久连接 5)配置连接池,采用多线程来处理并发连接 原因有很多,具体问题具体分析吧。当然...

安装oracle 10.0时出现错误,大侠们给看看呗,是怎么回事?谢谢~
1、检查\/tmp目录的权限,安装oracle的用户是否有\/tmp目录的读写权限 2、检查\/tmp目录的空间大小,df -h \/tmp ,系统提示\/tmp目录必须大于60M以上,或者更多。

请问一下各位大侠,Access violation at address 00000000. Read of...
也许win在这个问题上没弄好,所以有此错误常常发生,一般运行大型软件或多媒体后出现这种情况 3、劣质内存条也会出现这个问题 一般来说,内存出现问题的可能性并不大,主要方面是:内存条坏了、内存质量有问题,还有就是2个不同牌子不同容量的内存混插,也比较容易出现不兼容的情况,同时还要注意散热问题,特别是超频后。你...

oracle 触发器执行时报ORA-06512错误,怎么解决?求各位大侠来指点小弟...
create or replaceTRIGGER "XXXX".UPDATE_PC1 before update on A for each rowbeginif updating ('A_SHZT') then if :new.A_SHZT='1' and NEW.A_rq=(to_char(sysdate,'yyyymmdd')) then update B set B_PC=(to_char(sysdate,'yyyymmdd')) WHERE B_ID=NEW.A_ID; end if...

跪求各位大侠,一款财务软件,数据库是oracle805,现在数据都变成原来的二...
(报表公式错误除外)处理方法:具体步骤如下:1)进行反过帐、反结帐到出错期间的前一期,2)安装新版本软件(建议用比较高的版本),3)在新版本软件中恢复操作权限,4)在新版本软件中重新进行过帐、结帐 其实说白了,就是返结帐、返过帐,然后再重新过帐结帐。一般可以解决这个问题 ...

...请问各位大侠如何解决? oracle 10g for linux as 5.0
这没有什么好办法,有两种,如果系统运行时间很长,第一清楚无用的操作系统中的文件,第二就是清除一个时间点之前的所有oracle文件,只有这两种方法才能释放空间,当然你也可以添加硬盘

电脑运行软件时,显示运行时出错,错误代码4 是怎么回事,跪求各位大侠...
很显然是此软件有BUG,或者有漏洞!建议下载正规的软件,或者重新安装试试,应该可以解决!祝你好运!

请各位大侠给出用VB.NET连接oracle数据库并执行sql查询语句的代码示例...
Set OraDatabase=OraSession.CreateDatabase ("Demo","scott\/tiger",0&)'建立数据库连接 Set OraDynaset=OraDatabase.CreateDynaset("select*from student",0&)'初始化动态集对象 ’添加记录 'Begin an AddNew OraDynaset.DbAddNew OraDynaset.Fields("ID").value="1000"’ID为列名 OraDynaset.DbUpdate...

电脑总是出现这个是什么意思
例一:IE浏览器出现“0x0a8ba9ef”指令引用的“0x03713644” 内存,或者“0x70dcf39f”指令引用的“0x00000000”内存。该内存不能为“read”。要终止程序,请单击“确定”的信息框,单击“确定”后,又出现“发生内部错误,您正在使用的其中一个窗口即将关闭”的信息框,关闭该提示信息后,IE浏览器也被关闭。解决方法:...

相似回答