城市猎人

在一网情深的日子里,谁能说得清是苦是甜,只知道确定了就义无反顾
posts - 1, comments - 7, trackbacks - 0, articles - 89

PL/SQL之存储过程

Posted on 2008-10-27 11:27 sailor 阅读(318) 评论(0)  编辑  收藏 所属分类: oracle

一、定义
    过程用于执行特定操作。如果在应用程序中经常需要执行特定的操作,可以基于这些操作建立一个特定的过程。通过使用过程,不仅可以简化客户端应用程序的开发和维护,而且还可以提高应用程序的运行性能。

二、语法

1create or replace procedure prod_name(Name in out type, Name in out type, is
2begin
3  
4end prod_name;

三、例子

1、不带参数
1SQL> create or replace procedure show_emp_info
2  2  is
3  3  v_count number(3,0);
4  4  
5  5  begin
6  6   select count(empno) into v_count from emp;
7  7   dbms_output.put_line('总数: ' || v_count);
8  8  end;
9  9  /


2、带参数
 1create or replace procedure show_emp_count_witharg(v_depno number)
 2is
 3v_count number(3,0);
 4v_dname varchar2(30);
 5begin
 6 select count(empno) into v_count from emp where depno = v_depno;
 7 select dname into v_dname from dept where depno = v_depno;
 8 
 9 dbms_output.put_line(v_dname || '的人数有' || v_count || '');
10end;
11/
12
13SQL>exec show_emp_count_witharg(1);
14销售部的人数有4人

3、建立过程,带有参数out
 1create or replace procedure show_emp_count_without(v_depno in out number, v_dname out varchar2)
 2is
 3v_count number(3,0);
 4begin
 5 select count(empno) into v_count from emp where depno = v_depno;
 6 select dname into v_dname from dept where depno = v_depno;
 7 
 8 dbms_output.put_line(v_dname || '的人数有' || v_count || '');
 9end;
10/

调用:
 1SQL> var no number
 2SQL> var dname varchar2
 3SQL> exec :no := 1
 4 
 5PL/SQL procedure successfully completed
 6no
 7---------
 81
 9 
10SQL> exec show_emp_count_without(:no, :dname);
11 
12销售部的人数有4人
13 
14PL/SQL procedure successfully completed
15no
16---------
171
18dname
19---------
20销售部


4、建立工程,带有参数in和out
 1create or replace procedure show_emp_count_withinout(v_depno in out number)
 2is
 3v_count number(3,0);
 4v_dname varchar2(30);
 5begin
 6 select count(empno) into v_count from emp where depno = v_depno;
 7 select dname into v_dname from dept where depno = v_depno;
 8 
 9 dbms_output.put_line(v_dname || '的人数有' || v_count || '');
10end;
11/
12
13调用:
14SQL> var dno number
15SQL> exec :dno := 3
16 
17PL/SQL procedure successfully completed
18dno
19---------
203
21 
22SQL> exec show_emp_count_withinout(:dno);
23 
24生产部的人数有1人
25 
26PL/SQL procedure successfully completed
27dno
28---------
293

四、查看对象
1Select text from user_sources where type = 'PROCEDURE';


只有注册用户登录后才能发表评论。


网站导航: