运用子程序完成增删改查业务需求

版权声明:原创内容是本人学习总结,仅限学习使用,禁止用于其他用途。如有错误和不足,欢迎评论指正补充。 https://blog.csdn.net/qian_qian_123/article/details/82851830

------------创建子程序>>调用子程序>>创建带参数的子程序>>对子程序授权>>删除子程序------------

一、子程序

子程序是已命名的PL/SQL块,它们存储在数据库中,可以为它们指定参数,可以从任何数据库客户端和应用程序中调用它们。子程序包括存储过程函数使用存储过程执行操作使用函数执行操作并返回值,就像应用程序中的方法。

与匿名的PL/SQL块一样,子程序具有声明部分、可执行部分、异常处理部分(可选)。

1、声明部分

声明部分包括类型、游标、常量、异常和嵌套子程序的声明。这些项是局部的,在退出子程序时将不复存在。

2、可执行部分

可执行部分包括赋值、控制执行过程以及操纵Oracle的语句。

3、异常处理部分

异常处理部分包括异常处理程序,负责处理执行存储过程中出现的异常。

***子程序的优点

扫描二维码关注公众号,回复: 3568070 查看本文章

二、存储过程

存储过程是执行某些操作的子程序,是执行特定任务的模块。从根本上讲,存储过程就是命名的PL/SQL块,它可以被赋予参数,存储在数据库中,然后由一个应用程序或其他PL/SQL程序调用。

1、存储过程的用法

①创建存储过程

②调用存储过程

为了能够顺利地调用所创建的存储过程,对权限要求如下:

调用存储过程的用户和创建存储过程的用户相同,以保证调用存储过程的用户有使用存储过程的权限。

1)用命令调用

用命令在SQL提示符下调用,使用EXECUTE语句来执行过程。

2)在PL/SQL块中调用

提示:在PL/SQL块中调用存储过程时不需要写exec,直接写存储过程名称调用,exec是命令行中调用存储过程的命令。

③存储过程的参数模式

④存储过程的访问权限

存储过程创建之后,只有创建该存储过程的用户和管理员才能调用它。其他用户如果要调用该存储过程,需要得到存储过程的execute权限。

GRANT EXECUTE ON 存储过程名 TO 用户名;--授予权限
GRANT EXECUTE ON 存储过程名 TO 用户名 WITH GRANT OPTION;--授予权限的同时授予其赋予其他用户权限的权限
REVOKE EXECUTE ON 存储过程名 FROM 用户名;--撤销权限

⑤删除存储过程

DROP PROCEDURE 存储过程名;

2、存储过程的跟踪和调试

①在SQL*Pus调试

3、存储过程和游标的用法

存储过程返回多行数据——把存储过程和游标结合起来。

实现步骤:

①将存储过程的参数定义为游标类型,且该游标为输出类型参数。

②把查询到的结果赋值给参数游标。

③调用这个存储过程时就可以得到这个结果集。

DECLARE 
TYPE empInfo IS REF CURSOR;
v_empInfo empInfo;

empInfomation emp%ROWTYPE;
BEGIN
  getAll(v_empInfo);
  LOOP
    FETCH v_empInfo INTO empInfomation;
    EXIT WHEN v_empInfo%NOTFOUND;
    dbms_output.put_line('姓名:'||empInfomation.ename||'   工资:'||empInfomation.sal);
  END LOOP;
END;

4、存储过程和事务的用法

---------------------------------------------------

三、函数

函数与存储过程相似,也是数据库中存储的已命名的PL/SQL程序块。函数的主要特性是它必须返回一个值。创建函数时通过RETURN子句指定函数返回值的数据类型。在函数体的任何地方,用户都可以通过RETURN expression语句从函数返回,这里的表达式的数据类型要与RETURN子句指定的类型相同。与存储过程类似,函数将代码分割成模块,有助于组织代码。

1、函数的语法

提示:

2、函数和存储过程的优点和区别

①存储过程与函数的优点

②存储过程与函数的区别

③使用存储过程与函数的原则

猜你喜欢

转载自blog.csdn.net/qian_qian_123/article/details/82851830
今日推荐