包
包用于逻辑组合相关的PL/SQL类型、项、子程序,它由包规范(create package)和包体(package body)两部分组成。
当建立包时,需要首先建立包规范,然后再建立包体。
====================================================================================================
包规范语法格式:
create or replace package package_name package_name 是包名,IS 开始的部分用于定义公共组件。
is
public type and item declarations
subprogram specificationsEND package_name;
end;
eg
create or replace package emp_package IS
g_deptno number(3):=30; ------公有变量;
procedure add_employee(eno number,empname varchar2,salary number,dno number default g_deptno);
procedure fire_employee(eno number);
function get_sal(eno number) return number;
end emp_package;
==================================================================================================
包体语法格式:
create or replace package body package_name
is
private type and item declareions
subprogram bodies;
end package_name;
eg:
create or replace package body emp_package is
function validate_deptno(v_deptno number) return boolean
is
v_temp int;
begin
select 1 into v_temp from dept where deptno=v_deptno;
return true;
Exception
when no_date_found then
return false;
end;
procedure add_employee(eno number,empname varchar2,sal number,dno number default g_deptno)
is
begin
if validate_deptno(dno) then
insert into emp(empno,ename,sal,deptno) values (eno,name,salary,dno);
else
raise_application_error(-20010,'不存在该部门');
end if;
end;
function get_sal(eno number) return number
is
v_sal emp.sal%type;
begin
select sal into v_sal from emo where empno=eno;
return v_sal;
Exception
when no_data_found then
raise_application_error(-20012,'该雇员不存在');
end;
end emp_package;
===========================================================================================================
调用包组件
对于包的私有组件,只能在包内调用,并且可以直接调用;
对于包的公有组件,既可以在包内调用,也可以在其他应用程序中调用,
当在其他应用程序中调用包的组件时,必须要加包名作为前缀(包名.组件名)
(a).在同一个包内调用包组件
当调用同一包内的其他组件时,
包用于逻辑组合相关的PL/SQL类型、项、子程序,它由包规范(create package)和包体(package body)两部分组成。
当建立包时,需要首先建立包规范,然后再建立包体。
====================================================================================================
包规范语法格式:
create or replace package package_name package_name 是包名,IS 开始的部分用于定义公共组件。
is
public type and item declarations
subprogram specificationsEND package_name;
end;
eg
create or replace package emp_package IS
g_deptno number(3):=30; ------公有变量;
procedure add_employee(eno number,empname varchar2,salary number,dno number default g_deptno);
procedure fire_employee(eno number);
function get_sal(eno number) return number;
end emp_package;
==================================================================================================
包体语法格式:
create or replace package body package_name
is
private type and item declareions
subprogram bodies;
end package_name;
eg:
create or replace package body emp_package is
function validate_deptno(v_deptno number) return boolean
is
v_temp int;
begin
select 1 into v_temp from dept where deptno=v_deptno;
return true;
Exception
when no_date_found then
return false;
end;
procedure add_employee(eno number,empname varchar2,sal number,dno number default g_deptno)
is
begin
if validate_deptno(dno) then
insert into emp(empno,ename,sal,deptno) values (eno,name,salary,dno);
else
raise_application_error(-20010,'不存在该部门');
end if;
end;
function get_sal(eno number) return number
is
v_sal emp.sal%type;
begin
select sal into v_sal from emo where empno=eno;
return v_sal;
Exception
when no_data_found then
raise_application_error(-20012,'该雇员不存在');
end;
end emp_package;
===========================================================================================================
调用包组件
对于包的私有组件,只能在包内调用,并且可以直接调用;
对于包的公有组件,既可以在包内调用,也可以在其他应用程序中调用,
当在其他应用程序中调用包的组件时,必须要加包名作为前缀(包名.组件名)
(a).在同一个包内调用包组件
当调用同一包内的其他组件时,
发表评论
-
Oracle特别函数---First_Value
2009-11-10 14:09 1828FIRST_VALUE 功能描述:返回组中数据窗口的第一个值。 ... -
oracle定时删除表空间的数据并释放表空间
2009-10-13 16:53 2540这两天我一个朋友问我 ... -
oracle定时任务(dbms_job)
2009-10-13 16:50 2261今天总结下oracle的任务队列管理器(job queue ) ... -
Decode函数的语法
2009-10-13 16:47 934Decode函数的语法结构如下: decode (expre ... -
Oracle 中truncate与delete的区别
2009-10-13 16:27 989Oracle 中truncate与delete的区别 收藏 ... -
数据库---存储过程总结
2009-10-13 16:20 912定义: ... -
oracle执行计划的理解
2009-10-13 16:12 703执行计划的理解 计信息 ------------------ ... -
oracle定时添加或删除分区表的分区
2009-10-13 16:11 2029这几天,根据业务的需求和性能的考虑,需要定时删除历史数据,表里 ... -
Oracle常用数据字典表
2009-09-16 09:00 1073查看当前用户的缺省表空间 SQL>select us ... -
关于SQL中的“\”的转义
2009-05-30 08:23 885select ename from myemp where e ... -
Oracle存储过程学习(2)
2009-05-11 08:05 1121存储过程创建语法: create or rep ... -
ora-12154 TNS:"无法处理服务名"的一个解决方法
2009-04-13 15:48 1422很怪异的一个问题,在网络环境下配置客户端,竟然怎么也连不上主机 ... -
触发器
2009-02-10 20:27 981触发器 触发器是指被隐含执行的存储过程,当发生特定事件(例如修 ... -
函数的纯度级别以及使用
2009-02-05 16:09 900函数的纯度级别以及使用 - 定义由函数读取或修改的数据种类。 ... -
管理存储过程和函数
2009-02-05 10:47 706管理存储过程和函数 1.列出当前用户的子程序 SQL>c ... -
Oracle 自定义函数
2009-02-04 14:49 3585函数 函数用于返回特定数据。执行时得找一个变量接收函数的返回值 ... -
Oracle存储过程
2009-02-04 11:05 1011Oracle存储过程 存储过程不仅可以简化客户端应用程序的开发 ... -
PL/SQL DEVELOPER 基本用法详解
2009-02-03 10:37 2336一.编辑表数据(浏览表 ... -
游标(二)
2009-02-02 16:14 793游标FOR循环 游标FOR循环是游标使用的最简单的方式,当使用 ... -
游标(一)
2009-02-01 15:28 777使用游标 当在pl/sql块中 ...
相关推荐
oracle包调试.wmv
Oracle包应用详解(入门级)
gradle导入本地oracle包连接数据库,内含oracle6.jar包
关于oracle的包的基础,值得一看.。。。。。。。。。。
通过yum进行oracle包下载,两种方式,一种为通过网络下载用yum下载相关包,一种是本地yum进行下载oracle包
ORACLE 包和包体的创建和使用,深入浅出。
Oracle包生成参数工具,谢谢大家支持
本文档是针对Oracle包的详细讲解,有例子。
oracle包,用于oracle数据库的连接!
linux rpm包telnet_server+安装oracle包 libaio-devel-0.3.106-3.2.i386.rpm telnet-server-0.17-38.el5.i386.rpm sysstat-7.0.0-3.el5.i386.rpm sysstat-7.0.2-3.el5.i386.rpm unixODBC-2.2.11-7.1.i386.rpm ...
oracle建包,包内有存储过程实现分页,里边包含游标,通过游标实现。
centos6下python3连接oracle11g,cx_Oracle-6.2.1-cp36-cp36m-manylinux1_x86_64.whl,oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.rpm
linux X86_64 安装oracle11G RAC所需全部的oracle包: 为了在vmware下安装配置oracle11G的RAC环境,我用的是redhat linux5,找这个包简直费思老劲了,终于弄齐了,特拿来与后来者分享! 只需这一个包就足够使用了,...
Oracle包应用详解[归类].pdf
安装plsql_oracle的联系包(不用自己下载,别人给了一个包, 我放在:D:\IT\plsql_oracle下) --tnasname.ora:在plsql_oracle这个包里面 2,配置oracle监听,即环境变量 右击我的电脑选”属性”->“高级”->“环境...
oracle 包 procedureoracle 包 procedure
Oracle内置包_reference,ocacle内置开发包,用于oracle数据库的开发,详细介绍oracle数据库的开发。
1、在某数据库服务器压缩oracle软件,假设$ORACLE_BASE=/opt/oracle/app/oracle/ # tar czvf /opt/oracle/app/Oracle_client.tar.gz /opt/oracle/app/oracle # chmod 777 /tmp/Oracle_client.tar.gz 2、在需要安装...
Oracle性能查询包使用
提供oracle调用java包的方式,提供oracle调用java包的方式