pl/sql 创建存储过程

1、存储过程创建格式:

  create [or replace] procedure procedure_name(参数)
  as/is
    声明部分
  begin
      执行部分
  [exception
      异常处理部分]
  end;

  注:(1).中括号为可选部分,即在一个存储过程中可以有也可以没有。

    (2).如果存储过程没有参数不要用括号。

2.调用存储过程:

  格式:execute/exec procedure_name

  举例调用:

  begin

    procedure_name(参数);

  end;

  

3.学习创建存储过程:

  (1).创建一个无参存储过程
    create procedure proc_test
    is
    begin
      dbms_output.put_line(‘我的第一个存储过程‘);
    end;

    调用:

    begin
      proc_test;
    end;

  (2).创建一个存储过程用于计算一个数的平方。

    create or replace procedure proc_test01(a in number,b out number)
    is
    begin
      b:=a*a;
    end;

    执行:

    declare
    b number;
    begin
      proc_test01(5,b);
        dbms_output.put_line(‘5的平方是:‘||b);
    end;

  (3).创建一个存储过程,要求输入指定员工编号,使该员工的工资增加20%,要有异常处理;

  create or replace procedure proc_add_sal(eno employee.empno%type)
  as
  v_sal employee.sal%type;
  sal_is_null exception;
  begin
    select sal into v_sal from employee where empno=eno;
    if v_sal is null
      then
        raise sal_is_null;
    else
      update employee set sal=sal*1.2 where empno=eno;
    end if;
    exception
      when sal_is_null
       then
          dbms_output.put_line(‘雇员工资不存在‘);
        when no_data_found

   then
          dbms_output.put_line(‘员工编号不存在‘);
       when others

    then
            dbms_output.put_line(‘出现其它异常‘);
end;
  
  begin
    proc_add_sal(eno=>9999);
  end;

4.指定执行存储过程的权限给其它用户:

  grant execute on procedure_name to user/public;

5.使用存储过程注意事项:

  (1).必须包含声明和可执行部分;

  (2).调用存储过程有三中参数指定方式:按位置指定,按名称指定,混合指定;

  (3).参数类型有三种:in,out,in out;

  (4).不可以使用DDL;

  (5).变量类型用引用类型;

  (6).存储过程最好声明异常处理。

pl/sql 创建存储过程

时间: 2024-10-06 16:00:57

pl/sql 创建存储过程的相关文章

PL/SQL创建、调试、调用存储过程

存储过程  所用函数说明  功能:求和与差  原形:GetSumAndSub(p1 in number , p2 in number ,m out number , b out number)   参数:m=p1+p2 b=p1-p2  1.先建存储过程 左边的浏览窗口选择 procedures ,会列出所有的存储过程,右击文件夹procedures单击菜单“new",弹出  template wizard窗口, name框中输入 GetSumAndSub ,parameters中填入: p1

PL/SQL之--存储过程

一.存储过程 存储过程是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.oracle可以把PL/SQL程序储存在数据库中,并可以在任何地方来运行它.存储过程被称为PL/SQL子程序,是被命名的PL/SQL快,存储在数据库,通过输入.输出参数与调用者交换信息.oracle存储过程不返回数据. 语法: create or replace procudure 存储过名称( 参数名称 输入输出类型 参数类型, 参数名称

Oracle 中的PL/SQL、存储过程、触发器、函数、包(学习笔记)

   一.PL/SQL是什么? PL/SQL(procedural language/SQL)是oracle在sql上的扩展,pl/sql不仅允许嵌入sql语言,而且可以定义常量和变量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这使得它的功能十分强大.但是移植性不好. 1. 实例1 只包括执行部分的PL/SQL块 set serveroutput on; begin dbms_output.put_line('asdasdasdas'); end; / set serverout 选

PL/SQL编程—存储过程

SQL> create or replace procedure sp_pro3(name_in varchar2,id_in varchar2) is 2 begin 3 update mytest set name=name_in where id=id_in; 4 end; 5 / Procedure created SQL> exec sp_pro3('newName','1') PL/SQL procedure successfully completed SQL> selec

PL/SQL之存储过程和函数

1.创建存储过程 1.1语法: CREATE[OR REPLACE] PROCEDURE [schema.] procedure_name[(argument[{IN|OUT|IN OUT}] datatype[,...])] {IS|AS} pl/sql_body; procedure_name为存储过程的名称, argument是参数名, datatype是对应参数的数据类型, pl/sql_body是该存储过程真正进行的处理操作的PL/SQL块, OR REPLACE是可选项,如果存在一个

使用PL/SQL编写存储过程访问数据库

一.实验目的 熟悉使用存储过程来进行数据库应用程序的设计. 二.实验内容 对学生-课程数据库,编写存储过程,完成下面功能: 1.统计离散数学的成绩分布情况,即按照各分数段统计人数: 2.统计任意一门课的平均成绩: 3.将学生选课成绩从百分制改为等级制(即A.B.C.D.E). 要求:提交源程序并表示必要的注释.保证程序能正确编译和运行,认真填写实验报告. 三.实验步骤 实验之前,已经建立数据库,有student,course和sc三张基本表. (一)统计离散数学的成绩分布情况,即按照各分数段统计

使用PL/SQL创建,测试Oracle存储过程

首先在左边的文件夹中选中procedures文件夹,新建一个存储过程,如下: create or replace procedure uc_users_amount_pro(endDate in varchar2) is insMember number; perMember number; insMemberMon number; perMemberMon number; -- 变量名 表名.字段名%type; -- rowtype表示该类型为行数据类型,存储的是一行数据,一行数据里可以有多列

PL/SQL 05 存储过程 procedure

--存储过程(不带参数) create or replace procedure 存储过程名as  变量.常量声明;begin  代码;end; --存储过程(带输入参数) create or replace procedure 存储过程名(参数1 类型,参数2 类型,...)   --可以设默认值,如low int:=1000as  变量.常量声明;begin  代码;end; --存储过程(带输出参数) create or replace procedure 存储过程名(参数1 out 类型

PL/SQL创建用户

步骤一:新建 步骤二:填写信息 对应SQL代码 -- Create the user create user WENT identified by "longrise" default tablespace NSEST temporary tablespace NSEST_TEMP profile DEFAULT; -- Grant/Revoke object privileges grant read, write on directory SYS.ZWGC to WENT with