ORACLE的程序包1-程序包的基础

程序包简析

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;
    /

时间: 2024-08-06 16:06:30

ORACLE的程序包1-程序包的基础的相关文章

运行jar应用程序引用其他jar包的四种方法(转)

(1)在Eclipse中操作 上面的截图中eclipse的版本是: (2)下面的内容是相关原理,及手工完成此目标的操作细节: 大家都知道一个java应用项目可以打包成一个jar,当然你必须指定一个拥有main函数的main class作为你这个jar包的程序入口. 具体的方法是修改jar包内目录META-INF下的MANIFEST.MF文件. 比如有个叫做test.jar的jar包,里面有一个拥有main函数的main class:test.someClassName 我们就只要在MANIFES

java程序打包成jar包

方法一:通过jar命令 jar命令的用法: 下面是jar命令的帮助说明: 用法:jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files ... 选项包括:    -c  创建新的归档文件    -t  列出归档目录    -x  解压缩已归档的指定(或所有)文件    -u  更新现有的归档文件    -v  在标准输出中生成详细输出    -f  指定归档文件名    -m  包含指定清单文件中的清

android 获取手机的所有程序和widget的包名和启动类名

获取 widget可以 AppWidgetManager 来获取 List<AppWidgetProviderInfo> widget=AppWidgetManager.getInstance(Context(上下文)).getInstalledProviders(); 得到所有AppWidgetProviderInfo for (int i = 0; i < widget.size(); i++) {        AppWidgetProviderInfo info=widget.g

linux程序包管理和rpm包

Linux程序包管理的实现.rpm包管理器 rpm命令实现程序管理 安装:-ivh,--nodeps,--replacepkgs 卸载:-e,--nodeps 升级:-Uvh,-Fvh,--nodeps,--oldpackage 查询:,-q,-qa,-qf,-qi,-qd,-qc,-q --changlog,-q --provide,-q --requires j校验:-V 导入GPG密钥:--import,-K,--nodigest,--nosignature 数据库重建:--inittab

【Java】Java程序打包成jar包在Linux上运行

当需要把在Windows上开发的Java程序用在Linux上运行时,就需要吧该Java程序打包成jar包上传到Linux上去运行. 1.Java程序用MyEclipse打包成可运行的jar包 (1)在MyEclipse中选中需要打包的项目,点击右键,选择:Export... 如下图所示: (2)然后在弹出的窗口中选择:Java-->Runnable JAR file,然后点击:Next,如下图所示: (3)然后选择需要打包的程序和保存的地方,然后点击:Finish,如下图所示: 这样Java程序

MapReduce程序依赖的jar包

难得想写个mapreduce程序,发现已经不记得需要添加那些jar包了,网上找了一会也没发现准确的答案.幸好对hadoop体系结构略知一二,迅速试出了写mapreduce程序需要的五个jar包. 不多不少,5个包足矣--贴出来免得其朋友再走弯路 (请忽视包的版本不一致问题,是我从其他项目中东拼西凑过来的) 最后解释一下这五个包的大致功能: 1.commons-cli:主要提供了解析命令行的库 2.commons-logging:常用的日志相关库 3.guava: guava的中文意思其实是石榴嘛

linux系统程序安装(三)源码包安装程序

源码包安装是日常使用过程中最经常的安装方式,比如nagios套件.apche等重要软件都是源码包方式安装,源码包编译安装技术是运维技术中比较重要的部分. 一.源码包安装位置 运维时,最好把要跑的业务包放到/usr/local/src下,方便其他管理员管理代码. 转载一篇博客中的解析:(转载至https://itony.me/769.html) 二.源码安装方法 源码安装分为三个步骤:(1)./configure 定制程序的某些参数.检测系统是否具备程序运行的某些库.配置完成后,会生成mskefi

使用golang的pprof包对程序进行性能分析

程序经常出现OOM错误,然后关键字"go pprof"搜到文章<Go程序性能分析pprof>,该文章第二步说运行程序后会生成profile文件,但是编译运行后发现生成的profile文件大小一直为0,然后关键字"go pprof profile is empty"搜到文章<Golang pprof heap profile is empty>,该文章说在运行程序前添加环境变量GODEBUG="memprofilerate=1&quo

导入spark程序的maven依赖包时,无法导入,报错Unable to import maven project: See logs for details

问题:导入spark程序的maven依赖包时,无法导入,且报错:0:23 Unable to import maven project: See logs for details 2019-08-23 00:34:05,140 [ 747292] WARN - #org.jetbrains.idea.maven - Cannot reconnect. java.lang.RuntimeException: Cannot reconnect. at org.jetbrains.idea.maven

.net core使用HttpClient发送代理请求_程序内抓包_Fiddler抓包

原文:.net core使用HttpClient发送代理请求_程序内抓包_Fiddler抓包 前言:  通过Fiddler抓取浏览器请求数据,相信大家已经都会用了,我们知道Fiddler是通过在本机计算器添加一个默认的代理服务器来实现的抓包数据的,端口号为:8888. 其实当我们打开Fiddler的设置也可以看到: 然后查看本地计算器的网络代理设置: 基于上面的原理,Fiddler就实现了经过本机计算器请求的数据抓包了... 那么,我们通过C#代码,在.net Core中使用HttpClient