Oracle学习笔记二十五:包的定义与调用「建议收藏」

Oracle学习笔记二十五:包的定义与调用「建议收藏」一、包的作用 • Oracle中包的概念与Java中包的概念非常类似,只是Java中的包是为了分类管理类,但是关键字都是package。 • 在一个大型项目中,可能有很多模块,而每个模块又有自己的过程

Oracle学习笔记二十五:包的定义与调用

一、包的作用

• Oracle中包的概念与Java中包的概念非常类似,只是Java中的包是为了分类管理类,但是关键字都是package。

• 在一个大型项目中,可能有很多模块,而每个模块又有自己的过程、函数等。而这些过程、函数默认是放在一起的(如在PL/SQL中,过程默认都是放在一起的,即Procedures中),这些非常不方便查询和维护,甚至会发生误删除的事件。所以通过使用包就可以分类管理过程和函数。

• 包中还可以自定义自定义类型,从而在过程和函数中可以直接使用自定义变量。

二、包的构成

• 包规范部分

• 包体部分

--包规范定义语法
create or replace package 包名
as |is
    --定义存储过程
    --定义函数
    --定义ref游标类型
end 包名;

--包体定义语法
create or replace package body 包名
is |as
    --实现存储过程
    --实现函数
end 包名;

三、包的实例

• 定义包:

--定义包规范
create or replace package getemp_package
as
    --定义一个游标类型
    type emp_cursor_type is ref cursor;
    --定义一个存储过程
    procedure getemp(p_sal in number,c_emp out emp_cursor_type);
end getemp_package;

--定义包体
create or replace package body getemp_package
as
    --实现存储过程
    procedure getemp(p_sal in number,c_emp out emp_cursor_type)
    as
    begin
        --打开游标
        open c_emp for select * from emp where sal>p_sal;
    end getemp;
end getemp_package;

• 调用包:

set serveroutput on;
declare
    c_out getemp_package.emp_cursor_type;
    v_emp emp%rowtype;
begin
    getemp_package.getemp(p_sal=>900,c_emp=>c_out);
    loop
        fetch c_out into v_emp;
        exit when c_out%notfound;
        dbms_output.put_line(v_emp.empno || "-" || v_emp.ename);
    end loop;
end;

 

原文地址:https://www.cnblogs.com/atomy/archive/2022/06/15/16345450.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/5105.html

(0)
上一篇 2023-05-22
下一篇 2023-05-22

相关推荐

  • 用Python GUI设计实现按钮功能

    用Python GUI设计实现按钮功能在Python中,GUI(图形用户界面)是Python GUI编程的主要应用领域。Python提供了许多GUI框架,如Tkinter、PyQt、wxPython等等。在本文中,我们将使用Tkinter来创建按钮。

    2024-01-25
    54
  • Python函数库:计算sin(0)的值

    Python函数库:计算sin(0)的值在Python中,计算正弦函数可以直接使用math模块提供的sin函数。例如,计算sin(0)的值可以如下示例代码所示:

    2024-02-05
    47
  • 关于测试开发之python的信息

    关于测试开发之python的信息软件测试人员能用python做的事情很多,最常见的就是下面四项:1)做自动化测试【web自动化,app自动化,接口自动化】;2)做性能测试;3)开发小工具;4)搭建测试平台。

    2023-10-31
    72
  • Python strptime: 解析时间字符串的方法

    Python strptime: 解析时间字符串的方法在Python中,有很多场景需要对时间进行处理。时间字符串的解析也是其中一个常见的问题。Python提供了datetime模块来操作时间和日期。在这个模块中,strptime()是一个重要的方法,它可以帮助我们将时间字符串转换为数据类型为datetime的Python对象,以便进一步的处理。

    2024-03-28
    31
  • 英语教案Unit 3 Getting Together Topic 2 What does your mother do?

    英语教案Unit 3 Getting Together Topic 2 What does your mother do?Section A Teaching Goals: Learn some new words and phrases. Learn how to receive guests. Learn how …

    2022-12-25
    99
  • 在Python中执行py文件

    在Python中执行py文件Python是一种广泛使用的高级编程语言,被认为是易于学习、易于阅读、易于维护和易于编写的语言。Python代码通常用.py文件扩展名保存。在Python中执行.py文件是很常见的操作。在本文中,我们将展示如何在Python中执行.py文件,无论是在命令行中,还是在Python IDE或编辑器中。

    2024-04-23
    18
  • mybatis mapped statements_Mybatis框架

    mybatis mapped statements_Mybatis框架MyBatis通过MappedStatement描述或者@Select、@Update等注解配置的SQL信息。在介绍MappedStatem…

    2023-02-09
    111
  • sql面试宝典带答案吗_sql语句面试经典50题

    sql面试宝典带答案吗_sql语句面试经典50题一、试用SQL查询语句表达下列对教学数据库中三个基本表 S、SC 、C 的查询: S(sno,sname,SAGE,SSEX) 各字段表示学号,姓名,年龄,性别 Sc(sno,cno,grade) 各

    2023-03-12
    129

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注