Warning: Procedure created with compilation errors 创建存储过程的时候出现的错误

createorreplaceprocedureprcle(v_nameinvarchar2,v_yearoutnumber,v_saloutnumber)isout_n... create or replace procedure prcle(v_name in varchar2,v_year out number,v_sal out number)
is
out_name varchar2(10)
out_sal number(7,2)
begin
out_name:='xiaoyang'
out_sal:=0.0
if(v_year>10)
select sal into v_sal from scott.employee where ename=v_name
out_sal:=v_sal+1300
if(v_year<5)
select sal into v_sal from scott.employee where ename=v_name
out_sal:=v_sal+500
dbms_output.put_line(out_sal)
dbms_output.put_line(out_year)
end prcle;
展开
 我来答
小白聊电子科技
高粉答主

2020-05-17 · 专注电子数码问题解答
小白聊电子科技
采纳数:775 获赞数:75487

向TA提问 私信TA
展开全部

Warning: Procedure created with compilation errors创建存储过程出现错误,是设置错误造成的,解决方法如下:

1、打开mysql的客户端管理软件,找到想要创建存储过程的数据库,在【Stored Procedures】菜单上点击鼠标右键,选择【Create Stored Procedure】菜单项。

2、点击之后,右侧会出现一个存储过程编辑界面,并且会有默认的创建存储过程的基本结构。

3、在CREATE PROCEDURE后面的是存储过程的名字,可以改成喜欢的任何名字。

4、在存储过程名字后面有个括号,这里是放置存储过程的传入、传出参数的,当然存储过程也可以没有参数,保留一个空括号即可。

5、调用存储过程使用call关键字,后面是存储过程的名称,括号中是传入的参数值。最后点击顶部的闪电符号,就可以执行存储过程,在下方显示存储过程返回的结果。

longrenyingdc8ecb1
2015-07-01 · TA获得超过1万个赞
知道大有可为答主
回答量:6032
采纳率:82%
帮助的人:2385万
展开全部
insert下面应该有个commit;(分号也带着)而且你的insert语句后面也没有分号,所以显示命令未结束
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
为民服务而注册
推荐于2018-02-28 · TA获得超过158个赞
知道答主
回答量:70
采纳率:0%
帮助的人:47.7万
展开全部
楼主的代码有几下几个问题:
从语法上讲:
1、PL/SQL语句或语句块要以 分号 结尾 ;
2、if语句的语法应是if then end if;

从命名习惯上讲:
1、过程内声明的变量不宜以out打头,一般以v_打头
2、过程头部括号内声明的输出变量则相反,宜以out_打头

从程序逻辑上讲:
1、v_year没有做任何初始化就用于大小判断;
2、v_name变量没有做任何初始化就用于select语句的过滤条件

最后,很抱歉没有直接把正确的代码贴出来演示给楼主。
因为确实看不出来你的代码是何用意。
楼主最好能跟大伙说说你想实现什么功能。
依循我上述几点,楼主自己再修改调试一番,相信印象愈加深刻,进步更加速度。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式