`
tjmzgn
  • 浏览: 159751 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Oracle 包

阅读更多


包用于逻辑组合相关的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打包

    在本文中,我们将详细探讨Oracle中的打包方法,以及如何创建和管理自己的数据库包。 一、Oracle数据库包的基本概念 Oracle数据库包是一种高级的PL/SQL编程结构,它允许将相关的变量、过程和函数封装在一起,形成一...

    oracle包调试 视频

    oracle包调试.wmv

    Oracle包应用详解(入门级)

    Oracle包应用详解(入门级)

    gradle导入本地oracle包连接数据库

    在`gradle导入本地oracle包连接数据库`这个场景下,我们需要确保这个驱动包被正确地添加到Gradle项目的依赖管理中。 Gradle是基于Groovy语言的构建自动化工具,具有灵活的依赖管理和构建脚本。为了将`ojdbc6.jar`...

    Oracle包生成参数工具

    Oracle包生成参数工具是一款专为Oracle数据库开发人员设计的应用,旨在简化创建自定义数据库包的过程。这个工具通过提供直观的用户界面和丰富的参数配置选项,帮助开发者高效地生成符合特定需求的PL/SQL包。在Oracle...

    oracle包

    Oracle包,通常指的是Oracle数据库相关的软件包或者编程接口(API),是开发者与Oracle数据库进行交互的重要工具。Oracle数据库是全球广泛使用的大型关系型数据库管理系统,它提供了强大的数据存储、管理和处理能力...

    一个简单的oracle过程被使用的例子,包含架包

    创建Oracle包的基本语法如下: ```sql CREATE OR REPLACE PACKAGE package_name AS -- 规范:声明过程和函数 PROCEDURE procedure_name (parameter_list); FUNCTION function_name (parameter_list) RETURN ...

    Roracle_1.3-1.tar

    《R语言与Oracle数据库交互——Roracle包详解》 在数据科学领域,R语言以其强大的统计分析和可视化功能被广泛使用。然而,当涉及到大型企业级数据库时,如Oracle,如何高效地进行数据交换和处理成为了一个关键问题...

    linux rpm包telnet_server+安装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包和包体的创建和使用

    ORACLE 包和包体的创建和使用,深入浅出。

    python连接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包

    linux X86_64 安装oracle11G RAC所需全部的oracle包: 为了在vmware下安装配置oracle11G的RAC环境,我用的是redhat linux5,找这个包简直费思老劲了,终于弄齐了,特拿来与后来者分享! 只需这一个包就足够使用了,...

    plsql连接oracle的包

    安装plsql_oracle的联系包(不用自己下载,别人给了一个包, 我放在:D:\IT\plsql_oracle下) --tnasname.ora:在plsql_oracle这个包里面 2,配置oracle监听,即环境变量 右击我的电脑选”属性”->“高级”->“环境...

    Oracle内置包_reference

    Oracle内置包是Oracle数据库系统提供的一系列预定义的PL/SQL包,这些包极大地扩展了数据库的功能,并简化了开发者在数据库层面的操作。Oracle内置包包括了处理数据、管理事务、控制用户访问、监控数据库性能等多个...

    cx_Oracle离线安装包

    总结一下,cx_Oracle离线安装在Linux环境下,需要安装cx_Oracle的RPM包,并配置Oracle Instant Client,包括基本连接库和SDK。通过设置环境变量,确保Python能够正确地找到并使用这些组件。这个过程对于没有网络连接...

    oracle客户端windows包

    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的UTL_HTTP工具包发送包含POST参数的请求 #### 概述 在Oracle环境中,经常需要与外部系统进行交互,特别是在需要从Web服务器获取数据或向其发送数据的情况下。`UTL_HTTP`是Oracle提供的一款强大工具...

    oracle帮助文档包.rar

    包含文件: Oracle SQL语法速查.chm Oracle函数手册.chm Oracle官方文档-Oracle错误代码.chm Oracle函数手册.chm oracle傻瓜1000问.chm Oracle性能优化-SQL编写的一般规则.chm

    Oracle 常见故障解决方法

    解决方法是检查一下系统是否安装了 bos.clvm 的包。 6. 解决裸设备权限问题 在安装 oracle rac 时 oracle 无法正常访问并行裸设备。解决方法是 export PGSD_SUBSYS=grpsvcs 在 oracle 用户下的.profile 里加入即可...

    Python使用cx_Oracle调用Oracle存储过程的方法示例

    本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法。分享给大家供大家参考,具体如下: 这里主要测试在Python中通过cx_Oracle调用PL/SQL。 首先,在数据库端创建简单的存储过程。 create or replace ...

Global site tag (gtag.js) - Google Analytics