存储过程

  1.存储过程简介

    下面先来简单介绍一下oracle的存储过程的语法,如下:

    

 create or replace procedure Tony_Process
(
num in number,
sum out number
)
as
begin
null;
end;

存储过程简单语法

    下面简单介绍一下使用存储过程的优点:

    (1)使用方便。创建存储是将命名对象直接放入到数据库中,因为代码不保存在本地,用户可以在任何一个客户机上使用或调用存储过程。

    (2)安全性。存储过程是由数据库提供的安全保证,用户要想使用存储过程必须先经过存储过程的所有者授权用户才能调用或者修改存储过程。

    (3)传递性。可以给存储过程设置带参或者多参,亦或者没有返回值类型。存储过程的返回值必须通过参数带回(out输出类型)。

    存储过程与存储函数的区别:

    存储函数可以使用 Return返回一个函数,存储过程不可以。

  2.定义并使用变量
     PL/SQL有四种类型:标量类型,复合类型,引用类型 (reference),LOB(Large Obejct)类型

    一、标量类型
  最常用的就是标量类型,是指只能存放单个数值的变量,包括数字类型、字符类型、日期类型和布尔类型,每种类型又包含相应的子类型。如“:=”把“=”取代,使用方法如下:v_rate integer :1;

      二、复合变量:
  用于存放多个值的变量称为复合变量,包括PL/SQL记录,PL/SQL表,嵌套表和VARRAY四种类型

   三、引用变量(reference)
  类似于C++中的指针或者JAVA中引用的概念,用于存放数值指针的变量,使用此变量,可以使得应用程序共享相同对象,降低占用空间。此类有两种类型:游标(REF CURSOR)和对象类型(REF OBJECT)

     四、LOB类型
  LOB类型是指用于存储大批量数据的变量,包括内部的3种(CLOB,BLOB,NCLOB)和外部LOB(BFILE)。
  CLOB,NCLOB用于存储大量的字符数据。
  BLOB用于存储大批量二进制数据(如图象)。

  

  3.给用户设置权限

    1.1 用户只能修改的权限,语法如下:

      grant execute on 存储过程名称 to 用户名;

    1.2用户只能查询的权限:

      grant select on 存储过程名称 to 用户名;

  4.引用存储过程的方式

      (1)execute方法后跟存储过程名,execute也可以简写为exec。

      (2)begin  end;块中写存储过程名称进行调用。

  存储函数

  1.简单介绍存储函数

  存储函数,也是一种命名的存储程序,可传入参数,并进行一系列的操作。存储函数与存储过程结构类似,与存储过程不同的是,函数必须要跟一个return语句,用于返回函数值。

  2.语法

   

 create or replace function Tony_Function
(
num in number ,
sum out number
)
return number
as
begin
null;
return 0;
end;

存储函数基本语法

  存储过程与存储函数的int(输入参数)和out(输出参数)有什么区别?

  (1)存储过程和存储函数都可以有out参数;

  (2)存储过程和存储函数都可以有多个out参数;

  (3)存储过程可以使用out参数来实现返回值;

  (4)存储函数使用return来实现返回值;

  ps:如果只有一个返回值使用存储函数,有多个返回值则使用存储函数。

  在应用程序下调用存储过程或函数。下面是具体步骤。

  1.1首先,在项目中引用

  

oracle存储过程和存储函数的更多相关文章

  1. oracle存储过程和存储函数&触发器

    oracle存储过程和存储函数 指存储在数据库中供所有用户程序调用的子程序叫存储过程,存储函数 存储过程和存储函数的相同点:完成特定功能的程序 存储过程和存储函数的区别:是否用return语句返回值 ...

  2. Oracle 存储过程以及存储函数

    以下的一些例子是基于scott用户下的emp表的数据,一和二使用的均为in,out参数,最后一个综合练习使用了 in out参数 一.存储过程 1.创建无参的存储过程示例  ------ hello ...

  3. oracle存储过程与存储函数的区别和联系

    相同点:1.创建语法结构相似,都可以携带多个传入参数和传出参数.      2.都是一次编译,多次执行. 不同点:1.存储过程定义关键字用procedure,函数定义用function. 2.存储过程 ...

  4. Oracle03——游标、异常、存储过程、存储函数、触发器和Java代码访问Oracle对象

    作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7476717.html 1.游标(光标)Cursor 在写java程序中有集合的概念,那么 ...

  5. 编程开发之--Oracle数据库--存储过程和存储函数(2)

    上一小结我们简单介绍了存储过程和存储函数,对存储过程和存储函数有了一个基本的了解,接下来介绍在java程序中如何调用我们创建的存储过程和存储函数 1.在应用程序中调用我们的存储过程 创建一个简单的Ja ...

  6. 存储过程,存储函数(Oracle)

    存储过程和存储函数 指存储在数据库中供所有用户程序调用的子程序叫存储过程.存储函数. 存储过程和存储函数的区别? 存储函数:可以通过return 语句返回函数值. 存储过程:不能 除此之外我们可以认为 ...

  7. 编程开发之--Oracle数据库--存储过程和存储函数(1)

    1.存储过程和存储函数 描述:指存储在数据库中供所有用户程序调用的子程序叫做存储过程.存储函数 区别:存储函数可以通过return子句返回一个函数的值 (1)存储过程 语法:create [or re ...

  8. Oracle存储过程和自定义函数

    新博客文章链接,欢迎大家评论探讨 概述 存储过程和存储函数是指存储在数据库中供所有用户程序调用的子程序叫存储过程.存储函数. 异同点: 存储过程和存储函数的相同点:完成特定功能的程序. 存储过程和存储 ...

  9. Oracle存储过程和自定义函数笔记

    学习地址:https://www.imooc.com/learn/370 存储过程和存储函数定义:指存储在数据库中供所有用户程序调用的子程序叫做存储过程 .存储函数. 相同点:完成特定功能的程序.区别 ...

随机推荐

  1. python实现观察者模式

    python实现观察者模式 前言 有时,我们希望在一个对象的状态改变时更新另外一组对象.在MVC模式中有这样一个非 常常见的例子,假设在两个视图(例如,一个饼图和一个电子表格)中使用同一个模型的数据, ...

  2. RabbitMQ从安装到使用

    一.在Linux中安装RabbitMQ 通过Docker安装: 获取镜像(选用management是带有管理界面的) docker pull rabbitmq:-management 查看下载好的镜像 ...

  3. 9- 基于6U VPX的 XC7VX690T+C6678的双FMC接口雷达通信处理板 C6678板卡

    基于6U VPX的 XC7VX690T+C6678的双FMC接口雷达通信处理板   一.板卡概述 高性能VPX信号处理板基于标准6U VPX架构,提供两个标准FMC插槽,适用于电子对抗或雷达信号等领域 ...

  4. php 简单删除提示

    下面是别的网友整理的,大同小异.一般通过弹出确认按钮来判断是否继续进入下面的删除页面. 第一种: <a href="javascript:if(confirm('确认删除吗?'))wi ...

  5. Qualcomm_Mobile_OpenCL.pdf 翻译-4-Adreno OpenCL的程序开发

    这章将简要讨论一些开发Adreno OpenCL应用程序的基本要求,下面将会介绍如何调试和统计程序性能. 4.1  安卓平台上开发OpenCL程序 目前,Adreno GPU主要是在安卓操作系统和在部 ...

  6. windows2008R2下安装sqlserver2008R2时,点setup.exe应用程序无法打开错误代码0xc0150004

    windows2008R2下安装sqlserver2008R2时,点setup.exe应用程序无法打开错误代码0xc0150004 问题截图: 网上查的答案都是需要安装.net framework 3 ...

  7. VC内联汇编和GCC内联汇编的语法区别

    VC: #include <stdio.h> main(){ int a = 1; int b = 2; int c; __asm{ mov eax,a mov ebx,b mov ecx ...

  8. 补充:bytes类型以及字符编码转换

    内容转自小猿圈链接:https://book.apeland.cn/details/41/ 定义 bytes类型是指一堆字节的集合,在python中以b开头的字符串都是bytes类型 b'\xe5\x ...

  9. CodeForces-687A(DFS,染色)

    链接: https://vjudge.net/problem/CodeForces-687A 题意: Recently, Pari and Arya did some research about N ...

  10. Eigen 矩阵库学习笔记

    最近为了在C++中使用矩阵运算,简单学习了一下Eigen矩阵库.Eigen比Armadillo相对底层一点,但是只需要添加头文库即可使用,不使用额外的编译和安装过程. 基本定义 Matrix3f是3* ...