程序包主体
程序包是对相关过程、函数、变量、游标和异常等对象的封装,以下代码演示了程序包的使用:
首先执行:
create or replace package mypack
is
procedure employee2_proc(employeeid number);
function employee2_function return varchar2 ;
end;
/
其次执行:
create or replace package body mypack as
procedure employee2_proc(employeeid number)
is
firstname varchar2(20);
lastname varchar2(20);
divisionid varchar2(20);
begin
select first_name,last_name,division_id into firstname,lastname,divisionid
from employees2 where employee_id = employeeid ;
dbms_output.put_line('first_name = '||firstname || 'lastname='||lastname || 'divisionid ='|| divisionid);
end employee2_proc;
function employee2_function
return varchar2 is
jobid varchar2(20);
sal number(8);
begin
select job_id,salary into jobid,sal from employees2 where employee_id =2;
if jobid = 'MGR' then
dbms_output.put_line('job = Manager' || ' salary = '||sal);
end if;
end employee2_function;
end mypack;
/
以下代码执行程序包中的employee2_proc过程
Set serveroutput on
execute mypack.employee2_proc(2);
以下代码执行程序包中的employee2_function函数
declare
empinfo varchar2(50);
begin
empinfo := mypack.employee2_function;
dbms_output.put_line('empinfo ='|| empinfo);
end;
/
程序包中的游标:
1. 创建程序包:
create or replace package my_cur as
cursor employeecur return employees2;
end;
/
2. 创建程序包主体:
create or replace package body my_cur as
cursor employeecur return employees2 is
select * from employees2 where salary >120000;
end;
/
执行以上程序包中的my_cur 游标。
declare
myrecord employees2%rowtype;
begin
open my_cur.employeecur;
loop
fetch my_cur.employeecur into myrecord;
exit when my_cur.employeecur %notfound;
dbms_output.put_line('employee_id ='||myrecord.employee_id || '
firstname ='|| myrecord.first_name ||' lastname ='|| myrecord.last_name);
end loop;
end;
/
获取子程序和程序包的信息:
COLUMN OBJECT_NAME FORMAT A18
SELECT object_name, object_type
FROM USER_OBJECTS
WHERE object_type IN ('PROCEDURE', 'FUNCTION',
'PACKAGE', 'PACKAGE BODY');
获取user_source 视图结构:
DESC USER_SOURCE
获取程序包中的子程序 TEST 的源代码。
COLUMN LINE FORMAT 9999
COLUMN TEXT FORMAT A50
SELECT line, text FROM USER_SOURCE
WHERE NAME='TEST';
获取程序包中的子程序规范信息:
Desc pack_me;
分享到:
相关推荐
### Oracle 学习笔记知识点概览 #### 一、Oracle 数据库系统参数查询与管理 在 Oracle 数据库的学习过程中,了解如何查看和管理数据库的系统参数是非常重要的。这些参数直接影响着数据库的性能和稳定性。 ##### ...
本文将结合提供的“oracle学习笔记2013(+安装、卸载)”,分享学习过程中的心得和体验。 ### Oracle安装篇 对于初学者而言,Oracle数据库的安装往往会感到复杂和棘手。不同版本的Oracle对于操作系统有着严格的...
这份“Oracle学习笔记”无疑是你深入理解和掌握Oracle技术的重要资源。笔记涵盖了Oracle的语法基础、核心概念以及各种实用功能,旨在帮助初学者快速上手,同时也能为有一定经验的DBA提供参考。 首先,Oracle数据库...
根据提供的文档信息,可以看出这份文档主要记录了李兴华老师教授的Oracle课程中的关键知识点,特别是关于多表查询、连接类型、以及SQL中的...以上是文档中提到的关键知识点的详细介绍,希望对您学习Oracle有所帮助。
总结来说,"Oracle学习笔记+代码"涵盖了Oracle数据库的基础和进阶内容,包括SQL语句的使用、PL/SQL编程以及通过Pro*C/C++进行数据库访问。通过深入学习和实践,你可以成为一个熟练的Oracle开发者,能够构建高效、...
oracle 学习笔记包含各种查询,增加,删除,修改等
【标题】"学习笔记 testOracle" 提供了一个线索,表明这是一份关于Oracle数据库的学习资料。Oracle是全球广泛使用的大型关系型数据库管理系统,用于存储、管理和处理大量的结构化数据。在学习笔记中,作者可能详细...
本学习笔记详细记录了作者在准备Oracle 11g OCP认证过程中的学习心得和实践经验,对于希望深入理解Oracle数据库管理和优化的读者来说,是一份宝贵的资料。 Oracle 11g包含了许多重要的特性和改进,例如: 1. **...
### 韩顺平玩转Oracle学习笔记知识点详解 #### 一、Oracle基本使用——基本命令 ##### 连接命令 - **`conn[ect]`**:此命令用于连接到Oracle数据库。语法如下: - `conn 用户名/密码@网络服务名 [as sysdba/...
Oracle 认证学习笔记 本文档主要讲述 Oracle 认证学习笔记,涵盖了 Oracle 数据库体系...通过对 Oracle 认证学习笔记的学习,读者可以了解 Oracle 数据库的基本结构和工作机理,从而更好地理解和使用 Oracle 数据库。
在 Oracle 中,创建 Jobs 主要是通过 DBMS_SCHEDULER 包的 `CREATE_JOB` 过程来实现。此过程允许用户指定任务的执行细节,如要执行的具体操作、执行时间表(包括开始日期、重复频率、终止日期等)以及其他与任务相关...
### Oracle查询操作学习笔记知识点详解 #### 一、Oracle用户管理与权限分配 - **创建用户**:在Oracle中创建用户的基本语法为`CREATE USER username IDENTIFIED BY password`。例如,`CREATE USER xiaoming ...
这份"非常适用的Oracle学习笔记"涵盖了Oracle的基础知识,对于初学者和有经验的DBA来说都是一份宝贵的参考资料。 1. Oracle基础知识 Oracle数据库的核心是其关系型数据库模型,它通过表格来存储和管理数据。在...
Oracle 基础学习笔记 本文档是 Oracle 基础学习笔记,旨在帮助初学者学习 Oracle 10g 的基础知识。笔记分为多个部分,包括 Oracle 的体系结构、后台进程、存储模式、数据类型和数据库对象等。 1. Oracle 的体系...
### Oracle 最全学习笔记知识点梳理 #### 一、存储过程 - **定义**:存储过程是一种在数据库中存储复杂程序以便外部程序调用的一种数据库对象。 - **应用场景**:主要用于执行大量的更新或插入操作,以提高数据库...
在Oracle学习笔记中,我们关注两个关键知识点:1) SQLLoader的使用和2) Oracle应用程序性能分析。 1. SQLLoader导入数据 SQLLoader是Oracle提供的一种高效的数据加载工具,能够将文本格式的数据批量导入到Oracle...
Oracle学习笔记是一个全面涵盖Oracle数据库管理系统知识的资源,适合初学者和有经验的DBA(数据库管理员)深入学习。Oracle是世界上最广泛使用的数据库系统之一,以其高性能、高可用性和安全性著称。以下是一些关键...