首页 > 软件开发 > ORACLE >

oracle存储过程教程

来源:互联网 2023-03-17 00:00:50 364

存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。

IiL办公区 - 实用经验教程分享!

IiL办公区 - 实用经验教程分享!

在大型数据库系统中,存储过程和触发器具有很重要的作用。无论是存储过程还是触发器,都是SQL 语句和流程控制语句的集合。

IiL办公区 - 实用经验教程分享!

IiL办公区 - 实用经验教程分享!

工具/原料

  • ORACLE
  • PL/SQL数据库工具

方法/步骤

  • 1

    通过ORACLE自带的 Net Manager 配置需要连接的数据库,如COST

    IiL办公区 - 实用经验教程分享!

    IiL办公区 - 实用经验教程分享!

    oracle存储过程教程IiL办公区 - 实用经验教程分享!

  • 1该信息未经许可获取自百度经验
  • 2

    打开PL/SQL数据库工具,属于正确的用户名和密码以及选择,点击OK进入需要创建存储过程的用户下

    IiL办公区 - 实用经验教程分享!

    IiL办公区 - 实用经验教程分享!

    oracle存储过程教程IiL办公区 - 实用经验教程分享!

  • 3

    了解一般存储过程的格式

    IiL办公区 - 实用经验教程分享!

    IiL办公区 - 实用经验教程分享!

    create or replace procedure 存储过程名(param1 in type,param2 out type)IiL办公区 - 实用经验教程分享!

    asIiL办公区 - 实用经验教程分享!

    变量1 类型(值范围);IiL办公区 - 实用经验教程分享!

    变量2 类型(值范围);IiL办公区 - 实用经验教程分享!

    BeginIiL办公区 - 实用经验教程分享!

    语句块IiL办公区 - 实用经验教程分享!

    Exception --异常处理IiL办公区 - 实用经验教程分享!

    When others thenIiL办公区 - 实用经验教程分享!

    Rollback;IiL办公区 - 实用经验教程分享!

    End;IiL办公区 - 实用经验教程分享!

    IiL办公区 - 实用经验教程分享!

    IiL办公区 - 实用经验教程分享!

    IiL办公区 - 实用经验教程分享!

    IiL办公区 - 实用经验教程分享!

    IiL办公区 - 实用经验教程分享!

    IiL办公区 - 实用经验教程分享!

    oracle存储过程教程IiL办公区 - 实用经验教程分享!

  • 4

    在SQL输入界面输入需需要创建的存储过程,IiL办公区 - 实用经验教程分享!

    create or replace procedure sp_demo(param1 in varchar2,param2 out varchar2)IiL办公区 - 实用经验教程分享!

    /*IiL办公区 - 实用经验教程分享!

    * 存储过程实例IiL办公区 - 实用经验教程分享!

    */IiL办公区 - 实用经验教程分享!

    asIiL办公区 - 实用经验教程分享!

    cnt int;IiL办公区 - 实用经验教程分享!

    rst varchar2(100)IiL办公区 - 实用经验教程分享!

    BeginIiL办公区 - 实用经验教程分享!

    Select count(*) into cst from Tab_Demo where Col_Value = param1;IiL办公区 - 实用经验教程分享!

    If (cst > 0) then --判断条件IiL办公区 - 实用经验教程分享!

    param2 := '有匹配的值';IiL办公区 - 实用经验教程分享!

    ElseIiL办公区 - 实用经验教程分享!

    param2 := '无匹配的值';IiL办公区 - 实用经验教程分享!

    End if;IiL办公区 - 实用经验教程分享!

    ExceptionIiL办公区 - 实用经验教程分享!

    When others thenIiL办公区 - 实用经验教程分享!

    Rollback;IiL办公区 - 实用经验教程分享!

    End;IiL办公区 - 实用经验教程分享!

    如下图

    IiL办公区 - 实用经验教程分享!

    IiL办公区 - 实用经验教程分享!

    oracle存储过程教程IiL办公区 - 实用经验教程分享!

  • 5

    测试刚才编写的存储过程IiL办公区 - 实用经验教程分享!

    exec sp_demo('男');

    IiL办公区 - 实用经验教程分享!

    IiL办公区 - 实用经验教程分享!

    oracle存储过程教程IiL办公区 - 实用经验教程分享!

  • 注意事项

    • 不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程

      IiL办公区 - 实用经验教程分享!

      IiL办公区 - 实用经验教程分享!

    • 如果用create or replace procedure,创建存储过程的时候注意不要与用户下现有的存储过程同名,造成现在存储过程被覆盖

      IiL办公区 - 实用经验教程分享!

      IiL办公区 - 实用经验教程分享!

    • 存储过程参数不带取值范围,in表示传入,out表示输出

      IiL办公区 - 实用经验教程分享!

      IiL办公区 - 实用经验教程分享!

    以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!IiL办公区 - 实用经验教程分享!


    标签: oracle

    办公区 Copyright © 2016-2023 www.bgqu.net. Some Rights Reserved. 备案号:湘ICP备2020019561号统计代码