`
xiaofan_0204
  • 浏览: 126940 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

详细解读Oracle程序包

阅读更多
在Oracle中程序包通常由两部分组成:规范(specification)和主体(body)

1:规范
    ->规范中一般定义公用的变量、需要组织到程序包中的所有函数和存储过程都会出现在规范中.
2:主体
    ->主体实现规范中定义的函数和存储过程,而且是必须实现

程序包事列
--创建程序包规换
--注意一下几点:
--1:函数不要写is过程的实现
--2:存储过程不要写as的过程的实现
--3:函数和存储过程不需要create or replace命令
--4:声明变量时不要用declare
create or replace package pkg_students as
       student_str varchar2(500);--声明变量时不要用declare
       student_age number :=18;
       function get_student_string return varchar2;
       procedure update_student  --函数和存储过程不需要create or replace命令
                 (
                        in_student_id in number,
                        in_student_name in varchar2,
                        in_student_age in number
                 );
       procedure delete_student(in_student_id in number);
end pkg_students;

--在数据字典中查看程序包的规范信息
select object_name,object_type,status from user_objects where lower(object_name)='pkg_students';

--创建程序包主体
--注意一下几点:
--1:规范中的参数定义要和主体的中的参数定义要一致,参数名也不允许改动
--2:规范中定义的函数和存储过程必须在主体中全部实现
--3:在主体中实现函数时,不需要create or replace命令
create or replace package body pkg_students as
       --规范中函数体的实现get_student_string
       function get_student_string
       return varchar2 is
       begin
              declare cursor cu_pkg_student is
              select student_name 
              from students order by student_id;
              student_name varchar2(20);
              back_row_string varchar2(500);
              begin
                       open cu_pkg_student;             --别忘了打开游标
                       fetch cu_pkg_student into student_name;
                       while cu_pkg_student%found loop
                             back_row_string := student_name || ',' || back_row_string ;
                             fetch cu_pkg_student into student_name;
                       end loop;
                       return substr(back_row_string,1,length(back_row_string)-1);
              end;
       end get_student_string;
       --规范中更新学生信息的存储过程的实现update_student
       procedure UPDATE_STUDENT
                     (
                       in_student_id          in number,--参数的定义必须和主体中参数名称和类型一致
                       in_student_name        in varchar2,
                       in_student_age         in number
                     )as
                     begin
                       update students set 
                                       student_name=in_student_name,
                                       student_age =in_student_age
                                       where student_id =in_student_id;
                       commit;
                     end UPDATE_STUDENT;
       
       --规范中删除学生信息的存储过程的实现delete_student
       procedure DELETE_STUDENT 
                     (
                       in_student_id   in number
                     )as
                     begin
                       delete from students where student_id = in_student_id;
                       commit;
                     end DELETE_STUDENT;
end pkg_students;

--调用程序包中参数和存储过程
select pkg_students.get_student_string() from dual;
begin
       pkg_students.delete_student(10);
end;

select * from students;

分享到:
评论

相关推荐

    解读ORACLE_AWR报告

    ### 解读ORACLE_AWR报告 #### 基本信息概览 ORACLE_AWR(Automatic Workload Repository)报告是Oracle数据库系统中的一个重要工具,它提供了数据库性能的深入洞察,帮助管理员诊断问题并优化系统性能。AWR报告...

    全面解读Oracle数据库云.pptx

    以下是对Oracle数据库云的详细解读: 首先,Oracle数据库云的核心优势在于其混合云策略。这允许企业将本地Oracle数据库无缝连接至云端,确保数据的连续性和一致性。在同一标准、架构和软件的基础上,用户可以在自有...

    oracle centos7 asm依赖包

    以下是对"oracle centos7 asm依赖包"的详细解读: 1. **ASM介绍**:Oracle ASM是一种集成的文件系统和卷管理器,它提供了自动化的磁盘管理和数据存储功能。ASM能够自动平衡数据,提供故障检测和恢复,以及无缝地...

    centos7安装oracle19c所需依赖.zip

    以下是对给定文件信息的详细解读: 1. **GCC**:GCC(GNU Compiler Collection)是GNU项目的一部分,提供了C、C++等编程语言的编译器。在CentOS7上安装Oracle 19c时,gcc-4.8.5和gcc-c++-4.8.5是必须的,因为它们是...

    Oracle 10g RAC安装全面解读

    ### Oracle 10g RAC 安装全面解读 #### ORACLE Database RAC 说明 **1.1 RAC 系统说明** Oracle RAC(Real Application Clusters)是一种高可用性和高性能的企业级数据库解决方案。它允许多个数据库实例同时访问...

    从一个“普通”的Oracle DBA(Oracle数据库管理员)转变为Oracle Applications DBA(Oracle应用程序数据库管理员)

    然而,转变为Oracle Applications DBA,即Oracle应用程序数据库管理员,意味着需要扩展技能集,理解Oracle应用程序的复杂架构,特别是Oracle电子商务套件、Oracle 11i数据库和Siebel产品等。这一转变涉及角色和工作...

    oracle官方文档下载地址

    接下来,我们将针对这些文档的主要内容进行详细解读,并对各版本间的差异进行简要概述。 ### Oracle 9i Database Release 2 (9.2) 文档 Oracle 9i 是Oracle公司发布的一款重要的数据库产品,其版本号为9.2。此版本...

    oracle PL SQL 程序设计(第5版)下册

    本部分将详细解读该书可能涵盖的关键知识点。 1. **PL/SQL基础知识**:首先,书中会介绍PL/SQL的基本结构,包括声明段、执行段和异常处理段。声明段用于声明变量、常量、游标等;执行段执行具体的业务逻辑;异常...

    Oracle协议分析

    1. **应用层**:提供了客户端和服务器应用程序之间的接口,如Oracle Call Interface (OCI) 和 Oracle Protocol Interface (OPI)。 2. **表现层**:Two-Task Common (TTC) 协议负责处理客户端和服务器间的数据和字符...

    oracle备份批处理文件

    最后,批处理文件可能会设置定时任务,如Windows的任务计划程序或者Linux的cron job,让数据库备份在特定的时间自动运行,实现无人值守的自动化备份。 总的来说,"Oracle备份批处理文件"是通过整合RMAN和Data Pump...

    oracle配置数据源

    本文将详细解读如何配置Oracle数据源,并通过图文教程的方式引导读者完成整个配置流程。 #### 一、Oracle数据源配置简介 数据源(Data Source)是一种用于存储关于数据库连接信息的对象,它使得应用程序能够方便地...

    Oracle概念

    以下是对Oracle数据库概念的详细解读: 1. **数据库架构**:Oracle数据库采用客户-服务器模型,包括数据库服务器、客户端应用程序以及网络组件。服务器端负责数据存储和管理,客户端则用于数据查询和操作。Oracle...

    ORACLE错误中文说明.rar

    文件名为"oraerrinfo"可能包含了关于Oracle错误代码的详细信息。 Oracle错误通常由一个或多个数字组成,如"ORA-00001","ORA-01422"等,这些数字代表了特定的错误类型。错误信息通常包括错误代码、错误消息以及可能...

    Oracle数据库案例教程.pdf

    以下是对该教程涉及的关键知识点的详细解读: ### Oracle数据库入门 #### 安装与配置 - **Oracle 10g的安装和卸载**:教程首先介绍了如何在Windows环境下进行Oracle 10g的安装和卸载,这是使用Oracle数据库的第一...

    oracle讲义

    以下将详细解读每个部分的知识点: 1. SQL基础:这部分是Oracle数据库学习的基石,涉及了数据库查询的基础操作。包括基本查询语句、如何使用SQL语句查询表中的所有行和列、如何根据指定顺序选择列、如何在查询中...

    oracle11g英文官方文档

    以下是对这些文档内容的详细解读: 《Oracle Database Concepts》(Oracle数据库概念)是Oracle 11g的核心理论指南,它详细阐述了数据库的基础知识和Oracle的体系结构。该文档涵盖以下几个关键知识点: 1. **...

    oracle DBA培训资料

    PL/SQL是Oracle的程序设计语言,用于编写存储过程、函数、触发器等,提升数据库的业务处理能力。 4. **性能优化**:通过监控和分析数据库性能,使用工具如SQL*Plus、Explain Plan、TKPROF等进行SQL调优,同时理解和...

    Oracle核心技术

    特殊的表空间如SYSTEM表空间和SYSAUX表空间,分别用于存储数据字典和由Oracle内部程序包生成的动态数据。 6. Oracle的流程图:文档中提到的Oracle流程图,展示了一个简化的Oracle工作流程,强调了对核心机制的理解...

    Oracle APEX 3.2 安装

    Oracle APEX(Application Express)是一款基于Web的开发工具,用于构建交互式、数据驱动的应用程序,无需深厚的编程技能即可实现。在Oracle数据库环境中,它提供了丰富的功能和易用的界面,使得数据库管理员和开发...

    Oracle参考书籍目录

    - **包与类型**:学习如何使用PL/SQL包来组织代码,以及自定义数据类型的方法。 - **触发器**:掌握触发器的创建与使用,实现自动化的数据库操作。 ### 3. Oracle 8i 数据库原理 #### 3.1 数据库架构 - **物理...

Global site tag (gtag.js) - Google Analytics