`

Oracle数据库之PLSQL包

阅读更多
--=======PLSQL包=========
--首先我们来1个function , 1个procedure
create or replace function 
	f1(id in number) return number
is
	v_sal emp.sal%type;
begin
	select sal into v_sal from emp where empno = id;
	return v_sal;
end;

create or replace procedure p1
	(id in number ,v_sal out emp.sal%type)
is
begin
	select sal into v_sal from emp where empno = id;
end;

-- ==ok ,现在调用上述的过程跟函数
declare
	v_sal emp.sal%type;
begin
	
	dbms_output.put_line(f1(7900)); --调用函数
	
	p1(7900,v_sal); --调用过程
	
	dbms_output.put_line('procedure v_sal emp.sal%type:'|| v_sal);
end;

--======把不同的相关对象存储在一起,就要用到包.
--即表示 把上述的function ,procedure 合成一个
--包:包含两部分
	--声明:用于定义包的公共组件,如函数头,过程头,游标等以及常量,变量等。
	--     包头中定义的公共组件可以在包内引用,也可以被其它子程序引用。

	-- body 实现:用于定义包头中定义过的过程和函数。可以单独定义私有组件,
	-----------包括变量,常量,过程和函数等。
	-------私有组件只能在包内使用,而 不能被其它子程序所调用。


--对于应用来说 包声明是一个可见的接口,对应用来说是可见的。
--包体是黑盒,对应用来说隐藏了实现的细节

--定义包头
CREATE [OR REPLACE] PACKAGE package_name     
{AS|IS} 
	public_variable_declarations | --公共变量
	public_type_declarations | --公共类型
	public_exception_declarations |  --公共异常
	public_cursor_declarations |--公共游标
	function_declarations | --函数声明
	procedure_specifications--过程声明
 END [package_name]  

  --定义包体,包体中的package_name应当与包头中的package_name相同
CREATE [OR REPLACE] PACKAGE BODY package_name  
 {AS|IS}  
	private_variable_declarations | 
	private_type_declarations | 
	private_exception_declarations | 
	private_cursor_declarations |  
	function_declarations |   --函数实现,调用1次执行1次
	procedure_specifications --过程实现,调用1次执行1次
begin
		初始化代码 --首次调用包中的任意对象执行1次
		
END [package_name]  

--=============使用包有哪些优点? =============
--1.将相关的函数和过程组织在一起
--2.在一个用户环境内解决命名问题
--3.在不改变包声明的前提下 可以改变包体的实现
--4.限制过程,函数的依赖性
--5.整个包的访问权限只要1次授权
--6.区分私有过程,共有过程
--7.在包首次被调用时作为一个整体读入内存,减少多次调用时的磁盘I/O 次数

---------创建包头
create or replace package pkg1
	is
	type t_rec is record( --声明类型
		n1 number ,
		n2 varchar2(10)
	);
	v_rec t_rec; --定义公共变量
	procedure proce1 ; --声明过程
	function fun1(p2 in number)  return varchar2; --声明函数
end;

--创建包体
create or replace package body pkg1
	is
	--过程实现
	procedure proce1 
		is 
	begin
		 dbms_output.put_line('v_rec ' || v_rec.n1);
	end;
	--函数实现
	function fun1(p2 in number ) return varchar2 
		is
	begin
		return v_rec.n2||p2;
	end;
	
begin
	v_rec.n1 :=100; --初始化在包头声明的变量
	v_rec.n2 :='aaa';
end; --结束包体

--=================调用
declare
	v_str varchar2(10); --接收function返回的结果
begin
	v_str :=pkg1.fun1(10);--调用函数
	 dbms_output.put_line('v_str ' || v_str);
	pkg1.proce1;--调用过程
end;

--查看包头
select line,text from user_source  where name='PKG1' and type='PACKAGE';

--查看包体
select line,text from user_source  where name='PKG1' and type='PACKAGE BODY';

--删除
drop package PKG1;
	

 

分享到:
评论

相关推荐

    PLSQL Developer7(oracle数据库)

    PLSQL Developer7(oracle数据库) PLSQL Developer7(oracle数据库) PLSQL Developer7(oracle数据库) PLSQL Developer7(oracle数据库) PLSQL Developer7(oracle数据库) PLSQL Developer7(oracle数据库) ...

    Oracle数据库连接工具PLSQL轻桌面工具包

    Oracle数据库连接工具PLSQL轻桌面工具包,安装PLSQL必须下载轻桌面工具包

    Oracle数据库plsql客户端

    Oracle数据库PL/SQL Developer客户端是数据库管理员和开发人员常用的工具,它专为Oracle数据库系统设计,提供了便捷的界面来编写、测试和调试PL/SQL代码。这个工具的强大之处在于其全面的功能集,允许用户进行数据库...

    有JavaWEB的网上商城系统源码+项目说明(SSM框架、Shiro技术、Oracle数据库、PLSQL编程).zip

    有JavaWEB的网上商城系统源码+项目说明(SSM框架、Shiro技术、Oracle数据库、PLSQL编程、JSP、JQuery、Ajax、Jso).zip 有JavaWEB的网上商城系统源码+项目说明(SSM框架、Shiro技术、Oracle数据库、PLSQL编程、JSP、...

    Oracle数据库培训-PLSQL编程

    Oracle数据库培训-PLSQL编程

    基于oracle数据库的PLSQL编程以及存储过程的创建和使用资料.zip

    通过深入学习和实践这些内容,开发者能够熟练掌握在Oracle数据库中使用PLSQL进行编程,并能有效地创建和管理存储过程,以提高数据库应用的效率和质量。在实际工作中,了解这些知识点对于数据库管理和开发工作至关...

    oracle数据库和plsql语法练习

    Oracle数据库是一种广泛应用于企业级应用的高性能关系型数据库系统,由甲骨文公司开发和维护。它支持复杂的事务处理、数据存储和管理,是许多企业的首选数据库解决方案。PL/SQL,全称Procedural Language/Structured...

    PlSQL安装包:用于连接Oracle的工具

    PlSQL Developer是一款强大的集成开发环境,专门用于编写和管理Oracle数据库的PL/SQL代码。它为Oracle数据库管理员、开发人员和分析师提供了全面的功能,简化了与Oracle数据库的交互过程。这款软件是Allround ...

    oracle客户端(plsql developer连接远程数据库)

    plsql developer连接远程数据库(本地不用安oracle)

    oracle数据库利用plsql提取(导出).doc

    ### Oracle数据库利用PL/SQL开发工具进行数据提取详解 #### 一、Oracle数据库与PL/SQL简介 在深入了解如何利用PL/SQL Developer进行数据提取之前,我们先来简单了解一下Oracle数据库以及PL/SQL的基本概念。 - **...

    用plsql将mdb文件导入到oracle数据库中

    本文旨在详细介绍如何使用PL/SQL将MDB文件(Microsoft Access数据库)导入到Oracle数据库中的过程及相关技术点。 ### 一、概述 标题与描述都明确指出了本篇文章的核心内容:利用PL/SQL进行MDB文件向Oracle数据库的...

    使用PLSQL 创建Oracle数据库用户并设置权限

    "使用PLSQL创建Oracle数据库用户并设置权限" 在 Oracle 数据库中,创建用户并设置权限是数据库管理员的基本任务之一。在本文中,我们将使用 PLSQL 创建 Oracle 数据库用户并设置权限,包括创建用户、设置权限和创建...

    ORACLE数据库的PLSQL程序设计

    oracle数据库系统的好工具,plsql程序设计,内容详尽,适合初学者,步骤详细,是一份难能可贵的资料,我找了很久的,现在共享给大家

    使用plsqldev对oracle数据库做备份还原操作

    在Oracle数据库管理中,PL/SQL Developer是一款非常实用的工具,它专为Oracle数据库的存储程序单元开发设计,包括过程、函数、包、触发器等的编写和调试。这款工具以其用户友好、代码质量优化以及高生产力而受到青睐...

    plsqlDev链接Oracle数据库使用

    plsqlDev链接Oracle数据库使用plsqlDev链接Oracle数据库使用plsqlDev链接Oracle数据库使用

    PLSQL语法Oracle数据库

    PLSQL语法Oracle数据库

    oracle 数据库 plsql 存储过程

    ### Oracle数据库PL/SQL存储过程详解 #### 一、存储过程概述 **Oracle存储过程**是一种可以在Oracle数据库中存储并可被多次调用的PL/SQL代码块。它由一系列的PL/SQL语句组成,可以包含控制流程、变量声明等,能够...

    plsql 连接oracle数据库工具

    其中,"plsql"通常指的是Oracle的PL/SQL Developer,这是一个强大的第三方工具,专为开发和管理Oracle数据库的PL/SQL代码而设计。它提供了代码编辑、调试、数据库对象浏览、版本控制等多种功能,极大提高了开发效率...

    oracle数据库连接工具

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统,用于存储、管理和检索复杂的数据。为了与Oracle数据库进行交互,我们需要可靠的连接工具。"Oracle数据库连接工具"指的是可以方便地连接到Oracle数据库并执行...

    使用PLSQL创建Oracle数据库User用户并设置权限

    使用PLSQL创建Oracle数据库User用户并设置权限 主要演示了如何使用 PLSQL 创建一个 User 用户, 并使之具有创建表、修改表、访问表的权限。解决了 使用自定义用户创建表时出现的 没有表空间的访问权限的问题。

Global site tag (gtag.js) - Google Analytics