从概念到示例—Oracle中操作存储过程
2009-04-11 13:13:23 来源:WEB开发网综合示例:带输入,输出,输入输出参数的练习
1create or replace Procedure RunByParameters
2(
3 iSal in emp.sal%type, --输入指定工资
4 sname out varchar, --输出查询结果:姓名 注意数据类型没有精度,确保能够存储值
5 sjob in out varchar --若作为输出时,
6)
7as
8 iCount number; --变量声明,用于记录查询到符合条件的记录数目
9Begin
10 select count(*) into iCount from emp where sal>iSal and job=sjob; --使用输入参数
11 if iCount=1 then
12 select ename into sname from emp where sal>isal and job=sjob; --根据两个输入参数把结果输出
13 sname:='姓名为:'||sname||'的职工:'||to_char(iSal); --输出sname
14 sjob:='工作为:'||sjob; --输出sjob
15 else
16 sname:='没查到工资为:'||to_char(iSal); --输出sname
17 sjob:='工作为:'||sjob||' 的记录!'; --输出sjob
18 end if;
19Exception
20 when too_many_rows then
21 DBMS_output.put_line('返回值多余一行!');
22 when others then
23 DBMS_output.put_line('在RunByParameters过程执行时出现意外情况!');
24End;
25
26调用
27declare
28 realSal emp.Sal%type;
29 realName varchar(40);
30 realJob varchar(40);
31Begin
32 realSal:=1100;
33 realName:='';
34 realJob:='CLERK';
35 /**//*第一次调用*/
36 RunByParameters(realSal,realName,realJob);
37 DBMS_output.put_line(realName||' '||realJob);
38 /**//*第二次调用*/
39 realJob:='MANAGER';
40 RunByParameters(2900,realName,realJob);
41 DBMS_output.put_line(realName||' '||realJob);
42 /**//*第三次调用*/
43 RunByParameters(isal=>realSal,sName=>realname,sjob=>realjob);
44 DBMS_output.put_line('带联合符号'||realName||''||realJob);
45end;
46/
47
更多精彩
赞助商链接