在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(Automatic Workload Repository)报告是Oracle数据库系统中的一个重要工具,它提供了数据库性能的深入洞察,帮助管理员诊断问题并优化系统性能。AWR报告...
以下是对Oracle数据库云的详细解读: 首先,Oracle数据库云的核心优势在于其混合云策略。这允许企业将本地Oracle数据库无缝连接至云端,确保数据的连续性和一致性。在同一标准、架构和软件的基础上,用户可以在自有...
以下是对"oracle centos7 asm依赖包"的详细解读: 1. **ASM介绍**:Oracle ASM是一种集成的文件系统和卷管理器,它提供了自动化的磁盘管理和数据存储功能。ASM能够自动平衡数据,提供故障检测和恢复,以及无缝地...
以下是对给定文件信息的详细解读: 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 Database RAC 说明 **1.1 RAC 系统说明** Oracle RAC(Real Application Clusters)是一种高可用性和高性能的企业级数据库解决方案。它允许多个数据库实例同时访问...
然而,转变为Oracle Applications DBA,即Oracle应用程序数据库管理员,意味着需要扩展技能集,理解Oracle应用程序的复杂架构,特别是Oracle电子商务套件、Oracle 11i数据库和Siebel产品等。这一转变涉及角色和工作...
接下来,我们将针对这些文档的主要内容进行详细解读,并对各版本间的差异进行简要概述。 ### Oracle 9i Database Release 2 (9.2) 文档 Oracle 9i 是Oracle公司发布的一款重要的数据库产品,其版本号为9.2。此版本...
本部分将详细解读该书可能涵盖的关键知识点。 1. **PL/SQL基础知识**:首先,书中会介绍PL/SQL的基本结构,包括声明段、执行段和异常处理段。声明段用于声明变量、常量、游标等;执行段执行具体的业务逻辑;异常...
1. **应用层**:提供了客户端和服务器应用程序之间的接口,如Oracle Call Interface (OCI) 和 Oracle Protocol Interface (OPI)。 2. **表现层**:Two-Task Common (TTC) 协议负责处理客户端和服务器间的数据和字符...
最后,批处理文件可能会设置定时任务,如Windows的任务计划程序或者Linux的cron job,让数据库备份在特定的时间自动运行,实现无人值守的自动化备份。 总的来说,"Oracle备份批处理文件"是通过整合RMAN和Data Pump...
本文将详细解读如何配置Oracle数据源,并通过图文教程的方式引导读者完成整个配置流程。 #### 一、Oracle数据源配置简介 数据源(Data Source)是一种用于存储关于数据库连接信息的对象,它使得应用程序能够方便地...
以下是对Oracle数据库概念的详细解读: 1. **数据库架构**:Oracle数据库采用客户-服务器模型,包括数据库服务器、客户端应用程序以及网络组件。服务器端负责数据存储和管理,客户端则用于数据查询和操作。Oracle...
文件名为"oraerrinfo"可能包含了关于Oracle错误代码的详细信息。 Oracle错误通常由一个或多个数字组成,如"ORA-00001","ORA-01422"等,这些数字代表了特定的错误类型。错误信息通常包括错误代码、错误消息以及可能...
以下是对该教程涉及的关键知识点的详细解读: ### Oracle数据库入门 #### 安装与配置 - **Oracle 10g的安装和卸载**:教程首先介绍了如何在Windows环境下进行Oracle 10g的安装和卸载,这是使用Oracle数据库的第一...
以下将详细解读每个部分的知识点: 1. SQL基础:这部分是Oracle数据库学习的基石,涉及了数据库查询的基础操作。包括基本查询语句、如何使用SQL语句查询表中的所有行和列、如何根据指定顺序选择列、如何在查询中...
以下是对这些文档内容的详细解读: 《Oracle Database Concepts》(Oracle数据库概念)是Oracle 11g的核心理论指南,它详细阐述了数据库的基础知识和Oracle的体系结构。该文档涵盖以下几个关键知识点: 1. **...
PL/SQL是Oracle的程序设计语言,用于编写存储过程、函数、触发器等,提升数据库的业务处理能力。 4. **性能优化**:通过监控和分析数据库性能,使用工具如SQL*Plus、Explain Plan、TKPROF等进行SQL调优,同时理解和...
特殊的表空间如SYSTEM表空间和SYSAUX表空间,分别用于存储数据字典和由Oracle内部程序包生成的动态数据。 6. Oracle的流程图:文档中提到的Oracle流程图,展示了一个简化的Oracle工作流程,强调了对核心机制的理解...
Oracle APEX(Application Express)是一款基于Web的开发工具,用于构建交互式、数据驱动的应用程序,无需深厚的编程技能即可实现。在Oracle数据库环境中,它提供了丰富的功能和易用的界面,使得数据库管理员和开发...
- **包与类型**:学习如何使用PL/SQL包来组织代码,以及自定义数据类型的方法。 - **触发器**:掌握触发器的创建与使用,实现自动化的数据库操作。 ### 3. Oracle 8i 数据库原理 #### 3.1 数据库架构 - **物理...