Oracle学习笔记(三)

来源:互联网 发布:三目运算符 java判断0 编辑:程序博客网 时间:2024/06/05 11:41

学习Oracle肯定会涉及到存储过程,存储过程可以让程序执行效率更高,因为存储过程在编译之后就会存储到数据库中,可以直接调用,比每次执行sql效率更高,而且会增强安全性。

下面的存储过程以SCOTT用户下默认的emp表为基础,设置了一个传入参数和两个传出参数。

存储过程可以设置参数,也可以不设置参数,IN标识传入参数,OUT表示传出参数,IN OUT类型既可作传入参数,也可作传出参数。

实现在输入员工编号的情况下,显示出该员工的姓名和职务。

CREATE OR REPLACE PROCEDURE user_info (user_no IN NUMBER,user_name OUT emp.ename%TYPE,user_job OUT emp.job%TYPE) IS BEGIN   SELECT emp.ename,emp.job INTO user_name,user_job FROM emp WHERE emp.empno=user_no;  EXCEPTION     WHEN no_data_found THEN      dbms_output.put_line('该员工编号不存在!');END user_info;
执行结果如下;

SQL> set serveroutput onSQL> declare   2  a emp.ename%type;  3  b emp.job%type;  4  begin  5  user_info(7654,a,b);  6  dbms_output.put_line('员工编号7654的姓名为'||a||',职务为'||b);  7  end;  8  /员工编号7654的姓名为MARTIN,职务为SALESMANPL/SQL procedure successfully completed



原创粉丝点击