存储过程

  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. css3 伪类以及伪元素的特效

    菱形          

  2. 如何计算java程序运行花了多长时间。加时间戳。

    long start = System.currentTimeMillis(); // 记录起始时间 try { Thread.sleep(5000); // 线程睡眠5秒,让运行时间不那么小 } c ...

  3. hostid - 显示当前主机的数字化标识

    SYNOPSIS(总览) hostid [-v] DESCRIPTION(描述) 显示当前主机的数字化标识(以十六进制的形式表示). --help 显示帮助信息后退出 --version 输出版本信息 ...

  4. SpringBoot打包成jar运行脚本

    #!/bin/bash #这里可替换为你自己的执行程序,其他代码无需更改 APP_NAME=csadmin.jar #使用说明,用来提示输入参数 usage(){ echo "Usage: ...

  5. IDeajCommunity 配置smart tomcat插件

    ntelliJ IDEA社区版没有自带tomcat. 装插件--smart tomcat. IntelliJ IDEA>>Preferences>>Plugins>> ...

  6. idea 添加静态注释和live Templates

    静态注释 /** * @Description * @Author wzz * @Date ${DATE} ${TIME} */ Live Templates 1.新建一个自己的添加组如图:Mygro ...

  7. Berlekamp-Massey algorithm

    https://www.cnblogs.com/zzqsblog/p/6877339.html https://blog.csdn.net/qq_39972971/article/details/80 ...

  8. Kendo UI使用教程:Bower Packages

    [Kendo UI最新试用版下载] Kendo UI目前最新提供Kendo UI for jQuery.Kendo UI for Angular.Kendo UI Support for React和 ...

  9. SQL中INEXISTS和IN 的区别和联系

    SET NOCOUNT ON , SET NOCOUNT OFF当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数).当 SET NOCOUNT 为 ...

  10. requests中text,content,json之间的区别

    response.text : 返回一个字符串\n",content : 返回二进制\n",json() : 返回对象"