程序包简析

oracle中的程序包简析    一 程序包的基本概念
    程序包可将若干函数或者存储过程组织起来,作为一个对象进行存储。程序包通常由两部分构成,规范(specification)和主体(body)。

程序包也可以包含常量和变量,包中的所有函数和存储过程都可以使用这些变量或者常量。

程序包是对相关过程、函数、变量、游标和异常等对象的封装 程序包由规范和主体两部分组成

二 规范
    1 创建规范(SQL窗口)
    create or replace package pkg_staff as
    staffString varchar2(500);
    stafftAge number:=18;
    function get_staff_string return varchar2;
    procedure insert_staff(in_staff_id in number,in_staff_name in varchar2);
    procedure update_staff(in_staff_id in number);
    procedure delete_staff(in_staff_id in number);
    end pkg_staff;
    2 在数据字典中查看程序包规范的信息
    select object_name,object_type,status from user_objects
    where lower(OBJECT_NAME) = 'pkg_staff'
    三 主体
    所谓规范,就像面向对象编程中的接口,该规范的主体必须实现该规范的所有方法。Oracle会自动寻找与主体同名的规范,看是否全部实现了该规范函数或者存储过程。若没有,则编译错误。
    1 创建主体
    create or replace package body pkg_staff as
    function get_staff_string return varchar2 as
    begin
    return 'staff';
    end get_staff_string;
    procedure insert_staff(in_staff_id in number,in_staff_name in varchar2) as
    begin
    insert into staff values (in_staff_id,in_staff_name);
    end insert_staff;
    procedure update_staff(in_staff_id in number) as
    begin
    update staff set name = 'xy' where num = in_staff_id;
    end update_staff;
    procedure delete_staff(in_staff_id in number) as
    begin
    delete from staff where num = '1';
    end delete_staff;
    end pkg_staff;
    2 在数据字典中查看程序包主体的信息
    select object_name,object_type,status from user_objects
    where lower(OBJECT_NAME) = 'pkg_staff'
    www.2cto.com
    四 调用程序包中的函数或者存储过程
    调用函数(SQL window)
    select pkg_staff.get_staff_string() as result from dual
    调用存储过程(Command window)
    begin
    pkg_staff.delete_staff(1);
    end;
    /

转载于:https://www.cnblogs.com/violin508/p/4321434.html

ORACLE的程序包1-程序包的基相关推荐

  1. oracle包写入程序失败_Oracle内核技术揭秘第一篇

    蒋蒋~~大家吼啊,又是我,智商233的天才少呂,今天给大家带来的是数据库内核的介绍,包括实例,数据库本身的一些进程 Oracle Database,又名Oracle RDBMS,或简称Oracle是目 ...

  2. 运行jar应用程序引用其他jar包的四种方法

    http://longdick.iteye.com/blog/332580 大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar ...

  3. python socket.socket()函数 套接字详解及TCP、UDP程序示例(粘包等)

    文章目录 socket的定义 套接字的工作流程 socket函数使用 socket函数用法 服务端套接字函数 客户端套接字函数 公共用途的套接字函数 面向文件的套接字方法 打电话的流程演示 服务端.p ...

  4. python封装成exe后运行失败_Python的带pandas包的程序封装成exe 2018-01-11

    前言: 今天在网上看了很多教程,最后还是在运行pyinstaller命令行时解决 环境配置:python 2.7.9 32位,setuptools 19.2版,WIN 64位 1.安装PyInstal ...

  5. [20190805]在小程序中使用npm包

    小程序是可以使用npm包的 1. 初始化npm:(在项目目录下输入) npm init 此时项目文件夹会创建一个配置信息的package.json文件 2. 手动新建node_modules文件夹:( ...

  6. Linux 应用程序的源码包如何安装?

    文章目录 configure make make install 关于文件 configure 的简单介绍 其它命令简介 C 语言开发的应用程序的源码包常以 .tar.gz 为扩展名,并且这些源码包通 ...

  7. TCP socket心跳包示例程序

    TCP socket心跳包示例程序_xqhrs232的专栏-CSDN博客_setsockopt 心跳包 原文地址::TCP socket心跳包示例程序_神奕的专栏-CSDN博客_tcp心跳包 相关文章 ...

  8. 智能小程序档案馆——如何给“包”瘦身

    上传小程序代码的时候包体积太大不知如何是好?小程序打开速度慢,流量耗费大不知如何优化?在今天的文章里,我们一起来讨论一下如何给"包"瘦身. 为什么要限制包的大小? 我们都知道小程序 ...

  9. linux java jar打包_【Java】Java程序打包成jar包在Linux上运行

    当需要把在Windows上开发的Java程序用在Linux上运行时,就需要吧该Java程序打包成jar包上传到Linux上去运行. 1.Java程序用MyEclipse打包成可运行的jar包 (1)在 ...

  10. 二开微信表情包小程序魔改版源码

    简介: 二开微信表情包小程序魔改版源码内附图文安装教程 源码包括俩个版本,一个之前发过黄色版本,一个是二开魔改版. 安装搭建就不说了,源码内打包好了 网盘下载地址: http://kekewl.cc/ ...

最新文章

  1. React.js 小书 Lesson12 - state vs props
  2. spring boot + vue + element-ui全栈开发入门——项目部署
  3. ORACLE DBA学习笔记--表空间的管理(tablespace)
  4. 简单的flash小动画成品_怎么制作flash动画?看这里怎么说。
  5. how I can force redetermination everytime
  6. VS2012和XE2013的关联和设置问题
  7. 3天撸了一套SpringBoot+Dubbo+Sentinel秒杀系统,爽!
  8. torch和tensorflow各版本下载地址,tensorflow与cuda版本对应关系
  9. 设计界新人不用再苦找资源网站啦!一流导航神器收藏起来!
  10. 设置searchDisplayController的searchResultsTableView的UITableViewStyle为grouped
  11. location对象相关
  12. 安兔兔:2018年8月iOS设备性能排行榜
  13. 锂离子电池正极材料(x酸锂类,三元锂NCM,NCA)与负极材料 碳负极?
  14. 给有从事软件研发想法的在校大学生的一丝建议
  15. 炸!亚马逊将解散与印度亿万富翁的合资企业;eBay推迟公布2021年Q2财报;TikTok在英国进行测试电商功能…|洞悉跨境
  16. 数据结构PTA 基础实验7-2.1 魔法优惠券
  17. OCR API身份证查验的原理
  18. 合成大西瓜html源码,合成大西瓜
  19. pdf解密方法,pdf权限限制如何解除?
  20. 一 HTML概述,网站首页案例及其知识点

热门文章

  1. for each in for in for of
  2. [LeetCode] 100. Same Tree Java
  3. Android 开发之 ---- 底层驱动开发(一)
  4. 使用HTML5构建iOS原生APP(2)
  5. ECSHOP首页调用指定分类下的商品
  6. jQuery Form Plugin (二) :使用AJAX提交Form表单
  7. Swift 新建 APP 黑屏问题
  8. iOS duplicate symbols for architecture x86_64 问题全面解析
  9. 第4章 类与对象 枚举类
  10. SQL Server里面如何检查没有释放的游标