Oracle PL/SQL编程之包(packages)

1、简介

包用于在逻辑上组合过程和函数,它由包规范和包体组成。

我们可以使用create package来创建包,代码如下:

ok,包创建完成,通过包的代码发现包的功能就是申明包中包含的过程和方法,红框申明包中包含一个参数为name和newSal的过程名为update_sal的函数。

绿框申明包中包含一个参数为name的,返回值为number的函数名为annual_income的函数。

同时也发现包中没有没有实现函数和过程的代码,so  就引出包体的概念   ---package body

package body

在建完包之后,就要按照包中的规则,创建一个包体,去实现包中的函数和过程,创建包体可以用create package body 命令,现在就来实现上面的包,代码如下:

 ok,包体创建成功,实现了sp_package包

下面开始使用包中定义的函数和过程

 当调用包中的过程或函数时,在过程和函数前需要加上包名,如果要访问其他方案的包,在权限足够的情况下,在加上方案名,才能正常的访问方案中的过程和函数,调用方式如下:

(1)、调用函数

ok,调用函数成功

(2)、调用过程

ok,调用过程成功

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏刘望舒

Java虚拟机(一)结构原理与运行时数据区域

前言 本来计划要写Android内存优化的,觉得有必要在此之前介绍一下Java虚拟机的相关知识,Java虚拟机也并不是三言两语能够介绍完的,因此开了Java虚...

1948
来自专栏Python爬虫实战

Python指南:文件处理

哪种文件格式最适合用于存储整个数据集——二进制、文本还是XML?这严重依赖于具体的上下文。

1391
来自专栏Golang语言社区

Go性能优化小结

做过C/C++的同学可能知道,小对象在堆上频繁地申请释放,会造成内存碎片(有的叫空洞),导致分配大的对象时无法申请到连续的内存空间,一般建议是采用内存池。Go ...

2783
来自专栏chenssy

【死磕Java并发】—–Java内存模型之happens-before

在上篇博客(【死磕Java并发】—–深入分析volatile的实现原理)LZ提到过由于存在线程本地内存和主内存的原因,再加上重排序,会导致多线程环境下存在可见性...

3399
来自专栏安恒网络空间安全讲武堂

堆学习入门

借助hitcon training的题目对三种堆的利用方法进行了一个系统的学习,刚入坑的堆小白们可以一起学习一下。题目链接:https://github.com...

1302
来自专栏容器云生态

关于vim的简单设置以及使用技巧

vim快速指南: vim 使用技巧: 1、认识.命令 最理想的编辑模式:一次按键移动,一次编辑操作 .命令可以重复上一次的修改操作 在普通模式下: j...

2479
来自专栏Java编程技术

一个有关定时生产与消费的问题

按照上面的逻辑看的话,每个队列里面最多有一个元素。其实不然,因为在多线程模型中每个线程占用cpu执行的时间是按照时间片来划分的,每个线程执行完自己的时间片后会被...

821
来自专栏大内老A

ASP.NET Core的配置(4):多样性的配置来源[上篇]

较之传统通过App.config和Web.config这两个XML文件承载的配置系统,ASP.NET Core采用的这个全新的配置模型的最大一个优势就是针对多种...

2066
来自专栏余林丰

虚拟机类加载机制(2)——类加载器

《深入理解Java虚拟机》一书中将类的加载过程放到了类加载器前面一节,但在这里我想先讲“类加载器”。在上一篇类加载时机中我们用大量篇幅来讲解了类加载过程中的5个...

2156
来自专栏安恒网络空间安全讲武堂

二进制学习系列-栈溢出之libc_init

这是一道ctf wiki上面的一道中级ROP,思路很明确,但是还是有些小坑,比如说write函数上面,还有pwntools函数上面等等…

3513

扫码关注云+社区

领取腾讯云代金券