`
lfc_jack
  • 浏览: 139046 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

Oracle存储过程和存储函数创建方法(详解)

 
阅读更多
select * from emp;
-----------------存储过程------------------------
--定义
   create[or replace] procedure 存储过程名称(参数名 [in]/out 数据类型) 
   is/as
   begin
--逻辑表达式 
end [存储过程名称];
--定义存储过程计算年薪,并答应输出
  create or replace procedure proc_salyears(v_no in number)
   is
   sal_years number(9,2);
   begin
 --计算年薪
select sal*12+nvl(comm,0) into sal_years from emp where empno=v_no;
--输出
dbms_output.put_line(sal_years);
   end;
--调用存储过程
 方式1:
call proc_salyears(7788);
方式2:
begin
       proc_salyears(7369);
     end;  
--out参数的存储过程
--计算年薪并返回  
  create or replace procedure proc_salyears(v_no in number,sal_years out number)
   is
   begin
 --计算年薪
select sal*12+nvl(comm,0) into sal_years from emp where empno=v_no;
   end;
--调用存储过程
declare
   v_sal number(9,2);
  begin
     proc_salyears(7876,v_sal);
     dbms_output.put_line(v_sal);
  end;
-----------------存储函数------------
--定义
create or replace function 存储函数名(参数名 in/out 数据类型)
    return 数据类型
    is|as
    begin
        return 具体的数据;
    end [存储函数名称];
--定义存储函数名计算年薪
create or replace function fun_salyears(f_no number)
    return number
    is
  sal_years number(9,2);
    begin
    select sal*12+nvl(comm,0) into sal_years from emp where empno=f_no;
        return sal_years;
    end ;
--使用存储函数
declare
  sal_yeats number(9,2);
  begin
    sal_yeats := fun_salyears(7876);
    dbms_output.put_line(sal_yeats);
  end;
 
--可简写
begin
    dbms_output.put_line(fun_salyears(7369));
  end;
--------存储过程和存储函数的区别--------

[b]存储过程多用于项目之间的数据共享,存储函数多被存储过程调用.
存储函数可以再sql语句中调用,存储过程不能.

存储过程没有返回值。存储函数有返回值[/b]



分享到:
评论

相关推荐

    Oracle存储过程、游标、函数的详解

    Oracle存储过程、游标、函数的详解

    oracle存储过程_函数_语法_大全_详解

    oracle存储过程_函数_语法_大全_详解

    oracle存储过程

    oracle存储过程 oracle存储过程详解, 数据库存储结构, ORACLE存储过程sample, Oracle 常用函数, ......

    Oracle存储过程和自定义函数详解

    PL/SQL中的过程和函数(通常称为子程序)是PL/SQL块的一种特殊的类型,这种类型的子程序可以以编译的形式存放在数据库中,并为后续的程序块调用。 相同点: 完成特定功能的程序 不同点:是否用return语句返回值。 ...

    oracle存储过程总结-函数-语法-大全-详解.docx

    学习永无止境:oracle存储过程总结_函数_语法_大全_详解

    oracle 存储过程、函数和触发器用法实例详解

    一、存储过程和存储函数 指存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数。 创建存储过程 用CREATE PROCEDURE命令建立存储过程。 语法: create [or replace] procedure 过程名(参数列表) as ...

    Mybatis调用Oracle存储过程的方法图文详解

    主要介绍了Mybatis调用Oracle存储过程的方法介绍,需要的朋友可以参考下

    Oracle存储过程-1

    Oracle 数据类型及存储方式 概述 通过实例,全面而深入的分析oralce的基本数据类型及它们的存储方式。以ORACLE 10G为基础,介绍oralce 10g引入的新的数据类型。让你对oracle数据类型有一个全新的认识。揭示一些不...

    oracle存储过程-函数-语法-大全-详解.pdf

    Oracle 存储过程总结 1、创建存储过程 2、变量赋值 3、判断语句 4、For 循环 5、While 循环 6、数组 7.游标的使用

    oracle调试存储过程的过程详解

    oracle如果存储过程比较复杂,我们要定位到错误就比较困难,那么可以存储过程的调试功能 先按简单的存储过程做个例子,就是上次做的存储过程(proc_test) 1、先在数据库的procedures文件找到我们之前创建存储过程 ...

    Oracle中命名块之存储过程的详解及使用方法

    如:存储过程、存储函数、包、触发器等、  存储过程:无返回值;  存储函数:有返回值;  包:可容纳多个过程或函数的一个容器(较好管理这些过程和函数,类似于java中的包);  触发器:在合适的实际被自动执行。...

    Oracle中instr和substr存储过程详解

    instr和substr存储过程,分析内部大对象的内容 instr函数 instr函数用于从指定的位置开始,从大型对象中查找第N个与模式匹配的字符串。 用于查找内部大对象中的字符串的instr函数语法如下: dbms_lob.instr( lob_...

    Oracle_PLSQL_编程语法详解

    第一章 PL/SQL程序设计简介 第二章 PL/SQL块结构和组成元素 第三章 PL/SQL流程控制语句 第四章 游标的使用 ...第六章 存储过程和函数 第七章 包的创建和应用 第八章 触发器 第九章 ORACLE提供的常用包

    Oracle常用对象大全及实例详解.pdf

    本文介绍了Oracle 中的表、索引、视图、同义词、函数、存储过程、触发器及包等。测试通过的基础上,采用语法结合实例的方式,对这些常用对象使用方法、命令、步骤及注意事项进行了说明和讲解,读者按照本文学习,...

    Oracle的out参数实例详解

    1、一般来讲,存储过程和存储函数的区别在于存储函数可以有一个返回值;而存储过程没有返回值。 2、过程和函数都可以通过out指定一个或多个输出行。我们可以利用out参数,在过程和函数中实现返回多个值。 3、存储...

Global site tag (gtag.js) - Google Analytics