包
包用于逻辑组合相关的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 1855FIRST_VALUE 功能描述:返回组中数据窗口的第一个值。 ... -
oracle定时删除表空间的数据并释放表空间
2009-10-13 16:53 2614这两天我一个朋友问我 ... -
oracle定时任务(dbms_job)
2009-10-13 16:50 2300今天总结下oracle的任务队列管理器(job queue ) ... -
Decode函数的语法
2009-10-13 16:47 987Decode函数的语法结构如下: decode (expre ... -
Oracle 中truncate与delete的区别
2009-10-13 16:27 1024Oracle 中truncate与delete的区别 收藏 ... -
数据库---存储过程总结
2009-10-13 16:20 946定义: ... -
oracle执行计划的理解
2009-10-13 16:12 735执行计划的理解 计信息 ------------------ ... -
oracle定时添加或删除分区表的分区
2009-10-13 16:11 2080这几天,根据业务的需求和性能的考虑,需要定时删除历史数据,表里 ... -
Oracle常用数据字典表
2009-09-16 09:00 1106查看当前用户的缺省表空间 SQL>select us ... -
关于SQL中的“\”的转义
2009-05-30 08:23 946select ename from myemp where e ... -
Oracle存储过程学习(2)
2009-05-11 08:05 1145存储过程创建语法: create or rep ... -
ora-12154 TNS:"无法处理服务名"的一个解决方法
2009-04-13 15:48 1449很怪异的一个问题,在网络环境下配置客户端,竟然怎么也连不上主机 ... -
触发器
2009-02-10 20:27 1017触发器 触发器是指被隐含执行的存储过程,当发生特定事件(例如修 ... -
函数的纯度级别以及使用
2009-02-05 16:09 942函数的纯度级别以及使用 - 定义由函数读取或修改的数据种类。 ... -
管理存储过程和函数
2009-02-05 10:47 743管理存储过程和函数 1.列出当前用户的子程序 SQL>c ... -
Oracle 自定义函数
2009-02-04 14:49 3621函数 函数用于返回特定数据。执行时得找一个变量接收函数的返回值 ... -
Oracle存储过程
2009-02-04 11:05 1044Oracle存储过程 存储过程不仅可以简化客户端应用程序的开发 ... -
PL/SQL DEVELOPER 基本用法详解
2009-02-03 10:37 2369一.编辑表数据(浏览表 ... -
游标(二)
2009-02-02 16:14 824游标FOR循环 游标FOR循环是游标使用的最简单的方式,当使用 ... -
游标(一)
2009-02-01 15:28 812使用游标 当在pl/sql块中 ...
相关推荐
在本文中,我们将详细探讨Oracle中的打包方法,以及如何创建和管理自己的数据库包。 一、Oracle数据库包的基本概念 Oracle数据库包是一种高级的PL/SQL编程结构,它允许将相关的变量、过程和函数封装在一起,形成一...
oracle包调试.wmv
Oracle包应用详解(入门级)
在`gradle导入本地oracle包连接数据库`这个场景下,我们需要确保这个驱动包被正确地添加到Gradle项目的依赖管理中。 Gradle是基于Groovy语言的构建自动化工具,具有灵活的依赖管理和构建脚本。为了将`ojdbc6.jar`...
Oracle包生成参数工具是一款专为Oracle数据库开发人员设计的应用,旨在简化创建自定义数据库包的过程。这个工具通过提供直观的用户界面和丰富的参数配置选项,帮助开发者高效地生成符合特定需求的PL/SQL包。在Oracle...
Oracle包,通常指的是Oracle数据库相关的软件包或者编程接口(API),是开发者与Oracle数据库进行交互的重要工具。Oracle数据库是全球广泛使用的大型关系型数据库管理系统,它提供了强大的数据存储、管理和处理能力...
创建Oracle包的基本语法如下: ```sql CREATE OR REPLACE PACKAGE package_name AS -- 规范:声明过程和函数 PROCEDURE procedure_name (parameter_list); FUNCTION function_name (parameter_list) RETURN ...
《R语言与Oracle数据库交互——Roracle包详解》 在数据科学领域,R语言以其强大的统计分析和可视化功能被广泛使用。然而,当涉及到大型企业级数据库时,如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,找这个包简直费思老劲了,终于弄齐了,特拿来与后来者分享! 只需这一个包就足够使用了,...
安装plsql_oracle的联系包(不用自己下载,别人给了一个包, 我放在:D:\IT\plsql_oracle下) --tnasname.ora:在plsql_oracle这个包里面 2,配置oracle监听,即环境变量 右击我的电脑选”属性”->“高级”->“环境...
Oracle内置包是Oracle数据库系统提供的一系列预定义的PL/SQL包,这些包极大地扩展了数据库的功能,并简化了开发者在数据库层面的操作。Oracle内置包包括了处理数据、管理事务、控制用户访问、监控数据库性能等多个...
总结一下,cx_Oracle离线安装在Linux环境下,需要安装cx_Oracle的RPM包,并配置Oracle Instant Client,包括基本连接库和SDK。通过设置环境变量,确保Python能够正确地找到并使用这些组件。这个过程对于没有网络连接...
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的UTL_HTTP工具包发送包含POST参数的请求 #### 概述 在Oracle环境中,经常需要与外部系统进行交互,特别是在需要从Web服务器获取数据或向其发送数据的情况下。`UTL_HTTP`是Oracle提供的一款强大工具...
包含文件: Oracle SQL语法速查.chm Oracle函数手册.chm Oracle官方文档-Oracle错误代码.chm Oracle函数手册.chm oracle傻瓜1000问.chm Oracle性能优化-SQL编写的一般规则.chm
解决方法是检查一下系统是否安装了 bos.clvm 的包。 6. 解决裸设备权限问题 在安装 oracle rac 时 oracle 无法正常访问并行裸设备。解决方法是 export PGSD_SUBSYS=grpsvcs 在 oracle 用户下的.profile 里加入即可...
本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法。分享给大家供大家参考,具体如下: 这里主要测试在Python中通过cx_Oracle调用PL/SQL。 首先,在数据库端创建简单的存储过程。 create or replace ...