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

相关推荐

  • Elasticsearch核心技术与实战,性能是真牛[亲测有效]

    Elasticsearch核心技术与实战,性能是真牛[亲测有效]Elasticsearch 是一款非常强大的开源搜索及分析引擎。结合 Kibana、Logstash和Beats,Elasticsearch 还被广泛运用在大数据近实时分析,包括日志分析、指标监控、信

    2023-04-10
    156
  • Python jieba库的安装方法

    Python jieba库的安装方法自然语言处理是人工智能领域的重要研究方向之一。Python jieba是一款专业的中文分词库,能够高效地将中文文本按照词语进行切分,适用于文本分类、情感分析、信息检索等多种自然语言处理任务。但是,在使用Python jieba之前,需要进行安装配置。本文将从多个方面进行详细讲解Python jieba库的安装方法。

    2024-09-19
    15
  • CentOS 7上更改MySQL数据库存储目录浅析

    CentOS 7上更改MySQL数据库存储目录浅析个人之前总结过两篇文章“MySQL更改数据库数据存储目录”和“Ubuntu上更改MySQL数据库数据存储目录”,都是在工作中遇到相关案例后的一个简单总结。当初的经验不足,认知有限,所以现在来看来,当初

    2023-02-04
    148
  • 使用Python编辑器

    使用Python编辑器Python是一种动态的、跨平台的编程语言,广泛应用于Web开发、人工智能、数据科学、系统运维等领域。而Python编辑器则是编写和运行Python代码的工具。Python编程的初学者通常使用集成开发环境(IDE)来编写和调试Python代码。IDE通过在单个应用程序中集成多种工具来提高生产力,包括代码编辑器、调试器、版本控制、自动编辑和构建工具等。Python编辑器的选择非常丰富,可以根据个人喜好和使用场景选择合适的工具。那么在这篇文章中,我们将为您介绍如何使用Python编辑器来更高效地进行编程和开发。

    2024-06-18
    47
  • Python源码安装方法

    Python源码安装方法Python语言是一种解释型的高级程序设计语言。由于Python语言简洁易懂、代码可读性高、功能丰富、可扩展性强,已成为广泛使用的编程语言。如果您想要更加深入的了解Python语言的内部工作原理和机制,自行编译Python源码是一种不错的途径。同时,Python源码安装方法也是Python初学者需要了解的基本知识。

    2024-06-02
    52
  • Navicat免费版本-Navicat Lite「建议收藏」

    Navicat免费版本-Navicat Lite「建议收藏」一直在用Navicat管理数据库,今天发现原来它也有一个免费版本,虽然官方已经不维护,甚至在官网都找不到免费版的相关信息和下载链接。 但是在网上依然可以找到下载,下面提供一个地址: https://…

    2022-12-15
    136
  • mysql服务被关闭_MySQL死锁

    mysql服务被关闭_MySQL死锁看到这个 故障分析 | MySQL OOM 故障应如何下手,想起来几天前也遇到一次MySQL服务因为OOM被杀掉的情况,记录一下 背景:一个测试环境,由于Centos系统上没有设置虚拟内存,

    2023-02-22
    162
  • 在我们睡觉的时候,程序能不能自动查 bug?「建议收藏」

    在我们睡觉的时候,程序能不能自动查 bug?「建议收藏」作者介绍:我和我的 SQL 队(成员:杜沁园、韩玉博、黄宝灵、满俊朋),他们的项目「基于路径统计的 sql bug root cause 分析」获得了 TiDB Hackathon 2019 的三等…

    2022-12-25
    157

发表回复

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