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

1、存储过程和存储函数

描述:指存储在数据库中供所有用户程序调用的子程序叫做存储过程、存储函数

区别:存储函数可以通过return子句返回一个函数的值

(1)存储过程

语法:create [or replace] PROCEDURE 过程名(参数列表)

AS

PLSQL子程序体;

存储过程的调用方式:

a)exec/execute 过程名();

b)begin

过程名();

过程名();

end;

/

带参数的存储过程:

举例:为指定的员工涨100块钱工资,并且打印涨前以及涨后的工资。

在sql developer中创建带参数的存储过程:

create or replace PROCEDURE raisesalary(eno in number)
as
  --定义一个变量保存涨前的薪水
  psal emp.sal%type;
begin
  --得到员工涨前的薪水
  select sal into psal from emp where empno=eno;

  --给该员工涨100
  update emp set sal=sal+100 where empno=eno;

  --注意:一般不在存储过程或者存储函数中,commit和rollback。

  --打印
  DBMS_OUTPUT.PUT_LINE(‘涨前:‘||psal||‘涨后:‘||(psal+100));
end;
/

使用sql developer调试调用plsql程序:

如果缺少权限,可以使用数据库超管赋予当前用户权限:

(2)存储函数

语法:

create [or replace] FUNCTION 函数名(参数列表)

return  函数值类型

AS

PLSQL子程序体;

举例:查询某员工的年收入

create or replace FUNCTION queryempincome(eno in number)
return number
as
  --定义一个变量保存员工的薪水和奖金
  psal emp.sal%type;
  pcomm emp.comm%type;
begin
  --得到员工的月薪和奖金
  select sal,comm into psal,pcomm from emp where empno=eno;

  --直接返回年收入
  return psal*12+nvl(pcomm,0);
end;
/

2、使用存储过程和使用存储函数的一条简单非必要原则:如果只有一个返回值,使用存储函数;如果有多个返回值,则使用存储过程;

都可以有多个out参数!

create or replace PROCEDURE queryempinform(eno in number,
                                           pename out varchar2,
                                           psal out number,
                                           pjob out varchar2)
as
begin
  --得到员工的姓名、月薪、职位
  select ename,sal,job into pename,psal,pjob from emp where empno=eno;
end;

  问题思考:

a)如果查询某人的所有字段信息(并且字段比较多)?

b)如何返回多条符合条件的结果集,out参数可以返回结果集吗?

原文地址:https://www.cnblogs.com/ZeroMZ/p/9189706.html

时间: 2024-10-10 04:04:39

编程开发之--Oracle数据库--存储过程和存储函数(1)的相关文章

编程开发之--Oracle数据库--存储过程使用动态参数绑定(3)

1.动态参数绑定,可以实现动态的执行不同的sql --创建包 create or replace PACKAGE MYPACKAGE AS type empcursor is ref cursor; procedure queryEmpList(dno in number,empList out empcursor); END MYPACKAGE; --创建包体 create or replace PACKAGE BODY MYPACKAGE AS procedure queryEmpList(

Oracle系列:(33)JDBC访问Oracle的存储过程和存储函数

1.存储过程 1.1.准备SQL -- 定义存储过程 create or replace procedure get_rax(salary in number,rax out number) as     --需要交税的钱     bal number; begin     bal := salary - 3500;     if bal<=1500 then        rax := bal * 0.03 - 0;     elsif bal<=4500 then        rax :

Oracle系列:(29)存储过程和存储函数

1.存储过程[procedure] 什么是存储过程? 事先运用oracle语法写好的一段具有业务功能的程序片段,长期保存在oracle服务器中,供oracle客户端(例如,sqlplus)和程序语言远程访问,类似于Java中的函数. 为什么要用存储过程? (1)PLSQL每次执行都要整体运行一遍,才有结果 (2)PLSQL不能将其封装起来,长期保存在oracle服务器中 (3)PLSQL不能被其它应用程序调用,例如:Java 存储过程与PLSQL是什么关系? 存储过程是PLSQL的一个方面的应用

让你提前认识软件开发(28):数据库存储过程中的重要表信息的保存及相关建议

第2部分 数据库SQL语言 数据库存储过程中的重要表信息的保存及相关建议 1. 存储过程中的重要表信息的保存 在很多存储过程中,会涉及到对表数据的更新.插入或删除等,为了防止修改之后的表数据出现问题,同时方便追踪问题,一般会为一些重要的表建立一个对应的debug表.这个debug表中的字段要包括原表的所有字段,同时要增加操作时间.操作码和操作描述等字段信息. 例如,在某项目中,包括了如下一个重要的表tb_XXX: create table tb_XXX (      AAA           

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

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

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

作者: kent鹏 转载请注明出处: http://www.cnblogs.com/xieyupeng/p/7476717.html 1.游标(光标)Cursor 在写java程序中有集合的概念,那么在pl/sql中也会用到多条记录,这时候我们就要用到游标,游标可以存储查询返回的多条数据. 语法: CURSOR  游标名  [ (参数名  数据类型,参数名 数据类型,...)]  IS  SELECT   语句; 例如:cursor c1 is select ename from emp; 游标

oracle存储过程和存储函数&amp;触发器

oracle存储过程和存储函数 指存储在数据库中供所有用户程序调用的子程序叫存储过程,存储函数 存储过程和存储函数的相同点:完成特定功能的程序 存储过程和存储函数的区别:是否用return语句返回值 =========================创建和使用存储过程============================= 用create procedure命令建立存储过程和存储函数 语法: create [or replace] procedure 过程名(参数列表) as PLSQL子程序

oracle学习笔记之存储过程与存储函数

存储过程与存储函数说明:存储函数有返回值!存储过程没有返回值! 指存储在数据库中供所有用户程序调用的子程序叫存储过程.存储函数. 什么时候用存储过程/存储函数 原则:如果只有一个返回值,用存储函数:否则,就用存储过程. 1.创建存储过程 用CREATE PROCEDURE命令建立存储过程.语法如下: create [or replace] PROCEDURE 过程名[(参数列表)] AS     变量声明 PLSQL子程序体: 1)存储过程入门: create or replace proced

MySQL数据库之存储过程与存储函数

1 引言 2 存储过程与存储函数 3 创建与修改存储过程和函数 4 控制语句 5 查看存储过程和函数 6 删除存储过程和函数 7 总结 1 引言 存储过程和存储函数类似于面向对象程序设计语言中的方法,可以简化代码,提高代码的重用性.本文主要介绍如何创建存储过程和存储函数,以及存储过程与函数的使用.修改.删除等操作. 2 存储过程与存储函数 MySQL中提供存储过程与存储函数机制,我们姑且将存储过程和存储函数合称为存储程序.与一般的SQL语句需要先编译然后立即执行不同,存储程序是一组为了完成特定功