Oracle --存储函数和存储过程

oracle提供可以将pl/sql程序块存储在数据库中,并可以在任何地方运行它,这种pl/sql程序块称为存储过程或函数。

存储过程和函数的区别:函数需要向调用者返回数据,而过程不需要返回数据。

1.创建函数

create or replace function getAllSalary(i_cstmId in t_consumption.csptn_id%type)
  return number is
  v_sum number;
begin
  select sum(amount)
    into v_sum
    from t_consumption tcm
   where tcm.cstm_id = i_cstmId;
  return v_sum;
end getAllSalary;

调用函数

在函数或存储过程里面均可调用函数

declare
        v_mount number;
begin
        --SQL语句
         v_mount := getAllSalary(100000001);        
end;

2.创建存储过程

create or replace procedure getAllSalary(i_cstmId in t_consumption.csptn_id%type,
                                                             o_amount number)
is
        v_sum number;
begin
  select sum(amount)
    into v_sum
    from t_consumption tcm
   where tcm.cstm_id = i_cstmId; 
   --给输出赋值
   o_amount = v_sum;   
end getAllSalary;

调用存储过程

declare
        v_mount number;
begin
        --执行SQL语句
        --这里是在存储过程里面调用存储过程
        getAllSalary(i_cstmId => ‘100000001‘, o_amount => v_mount);        
end;

3. 删除函数或存储过程

可以使用drop procedure命令对不需要的存储过程进行删除,语法如下:

drop procedure 存储过程名;

可以使用drop function命令对不需要的函数进行删除,语法如下:

drop function 函数名;

时间: 2024-10-15 01:25:56

Oracle --存储函数和存储过程的相关文章

Java,PL/SQL调用 ORACLE存储函数以及存储过程

1.1.1.?准备工作·?创建表? ? --- 创建测试用表 school? ?? ???CREATE TABLE school(? ?? ?? ?? ?ID number,? ?--学校id? ?? ?? ?? ?NAME VARCHAR2(30)? ? ---学校名? ?? ???);? ?? ???--- 添加数据? ?? ???INSERT into school values(1,'北京大学');? ?? ???INSERT into school values(2,'南京大学');?

Oracle 学习笔记 18 -- 存储函数和存储过程(PL/SQL子程序)

PL/SQL子程序 包括函数和过程.这里的函数指的是用户自己定义的函数,和系统函数是不同的.子程序一般是完成特定功能的PL/SQL程序块,并且具有一定的通用性,可以被不同的应用程序多次调用.Oracle提供可以把PL/SQL程序存储在数据库中,并可以再任何地方来运行它.这样就叫做存储过程或者是函数.过程和函数的唯一区别就是函数总是向调用者返回数据,而过程则不返回数据. 函数 如果用户要经常执行某些操作,并且需要返回特定的数据,那么就可以将这些操作构造成一个函数. 可以使用SQL语句定义函数. 基

oracle中函数和存储过程的区别和联系【转载竹沥半夏】

oracle中函数和存储过程的区别和联系[转载竹沥半夏] 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己总结的关于函数和存储过程的区别. 一.存储过程 1.定义 存储过程是存储在数据库中提供所有用户程序调用的子程序,定义存储过程的关键字为procedure. 2.创建存储过程 create [or replace] procedure 存储过程名 [(参数1 类型,参数2 out 类型……)] as

oracle中函数和存储过程的区别和联系

oracle中函数和存储过程的区别和联系 在oracle中,函数和存储过程是经常使用到的,他们的语法中有很多相似的地方,但也有自己的特点.刚学完函数和存储过程,下面来和大家分享一下自己总结的关于函数和存储过程的区别. 一.存储过程 1.定义 存储过程是存储在数据库中提供所有用户程序调用的子程序,定义存储过程的关键字为procedure. 2.创建存储过程 create [or replace] procedure 存储过程名 [(参数1 类型,参数2 out 类型……)] as 变量名 类型:

PL-SQL 存储函数和存储过程

 ORACLE 提供能够把PL/SQL 程序存储在数据库中,并能够在不论什么地方来执行它.这样就叫存储过程或函数. 过程和函数统称为PL/SQL子程序.他们是被命名的PL/SQL块,均存储在数据库中,并通过输入.输出參数或输入/输出參数与其调用者交换信息. 过程和函数的唯一差别是函数总向调用者返回数据,而过程则不返回数据. ①创建函数 1. 建立内嵌函数 语法例如以下: CREATE[OR REPLACE] FUNCTION function_name [ (argment [ { IN|

PL/SQL学习笔记_03_存储函数与存储过程

ORACLE 提供可以把 PL/SQL 程序存储在数据库中,并可以在任何地方来运行它.这样就叫存储过程或函数. 存储函数:有返回值,创建完成后,通过select function() from dual;执行 存储过程:由于没有返回值,创建完成后,不能使用select语句,只能使用pl/sql块执行 一.存储函数 1.存储函数语法格式 CREATE [OR REPLACE] FUNCTION function_name [ (argment [ { IN | IN OUT } ] Type, a

mysql重点、视图、事务、备份还原【mysqldump】、mysql编程【触发器、存储函数、存储过程】、存储引擎

1.删除数据需要注意的问题[删除记录delete] 删除数据本身没有太多说的,还是删除表的时候有truncate用法 delete from是逐条删除记录[加不加条件全删,效率低,在删除表方面] truncate是重建表[删除表时效率高] 2.修改数据[update] [一下重点性能] 3.视图(view)[是一张虚拟的表:使客户端在虚拟的表中进行操作] 视图就是一条查询语句的结果[因为查询之后的结果本身就会形成一张表给客户端][视图使用到mysql的内置机制] create view 视图名

ORACLE 存储函数

前奏: 必要的概念: ORACLE 提供能够把 PL/SQL 程序存储在数据库中.并能够在不论什么地方来运行它.这样就叫存储过 程或函数. 过程和函数统称为 PL/SQL 子程序.他们是被命名的 PL/SQL 块,均存储在数据库中,并 通过输入.输出參数或输入/输出參数与其调用者交换信息.过程和函数的唯一差别是函数总向调 用者返回数据.而过程则不返回数据. 1:创建函数 CREATE [OR REPLACE] FUNCTION function_name [ (argment [ { IN |

Linux九阴真经之九阴白骨爪残卷8(存储函数、存储过程、触发器)

存储函数 说明: 参数可以有多个,也可以没有参数,必须有且只有一个返回值. 1.系统函数 参考官方文档:https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html 2.自定义函数(user-defined function:UDF) 自定义函数保存在mysql.proc表中 查看UDF列表 SHOW FUNCTIOIN STATUS; 查看UDF定义 SHOW CREATE FUNCTION function_name 删除U