存储过程和存储函数
指存储在数据库中供所有用户程序调用的子程序叫存储过程、存储函数。
存储过程和存储函数的区别?
存储函数:可以通过return 语句返回函数值。
存储过程:不能
除此之外我们可以认为他们是完全一样的。
存储过程
创建存储过程
用create procedure命令简历存储过程。
语法:
create [or replace] procedure 过程名(参数列表)
as
PLSQL子程序体;
打印hello word
--打印hello world create or replace procedure sayhelloworld as --说明部分 begin dbms_output.put_line('hello world'); end; /编译后:
调用存储过程方法:
1、exec 过程名
2、begin
过程名;
过程名;
end;
/
测试调用存储过程
--连接数据库
C:\WINDOWS\system32>sqlplus scott/tiger@192.168.56.101:1521/orcl
SQL>--调用方式一
SQL> set serveroutput on
SQL> exec sayhelloworld;
hello world
PL/SQL 过程已成功完成。
SQL> --调用方式二:
SQL> begin
2 sayhelloworld();
3 sayhelloworld();
4 end;
5 /
hello world
hello world
PL/SQL 过程已成功完成。
|
--给指定员工薪水涨100,并且打印涨前和涨后的薪水 create or replace procedure raiseSalary(eno in number) --in为输入参数 as --说明部分 psal emp.sal%type; begin --得到涨前的薪水 select sal into psal from emp where empno=eno; update emp set sal=sal+100 where empno=eno; --要不要commit? --为保证在同一事务中,commit由谁调用谁提交 dbms_output.put_line('涨前:'||psal||' 涨后:'||(psal+100)); end; /测试:
存储函数
函数(function)为一命名的存储程序,可带参数,并返回一计算值。函数和过程的结构类似,但必须有一个return子句,用于返回函数值。函数说明要指定函数名、结果值的类型,以及参数类型等。
存储函数语法:
create[or replace] functiion 函数名(参数列表)
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; /测试
过程和函数中的in 和out
一般来讲,过程和函数的区别在于函数可以有一个返回值;而过程没有返回值。
但过程和函数都可以通过out指定一个或多个输出参数,我们可以利用out参数,在过程和函数中实现返回多个值。
什么时候用存储过程/存储函数?
原则(不是必须的):
如果只有一个返回值,用存储函数;否则,就用存储过程。
存储过程
create or replace procedure queryEmpInfo(eno in number, pname out varchar2, psal out number, pjob out varchar2) as begin select ename,sal,empjob into pname,psal,pjob from emp where empno=eno; end;
相关推荐
在Java编程中,调用Oracle数据库的存储过程和函数是常见的任务,这通常涉及到JDBC(Java Database Connectivity)API的使用。以下将详细介绍这个过程,包括必要的步骤、使用的类和方法,以及可能遇到的问题和解决...
oracle笔记存储函数和存储过程,有具体的代码案例!存储函数和存储过程的知识笔记!
### Oracle存储过程、函数与DBLink详解 #### 一、Oracle存储过程简介 在Oracle数据库中,存储过程是一种预编译好的SQL代码集合,它可以接受输入参数、返回单个值或多个值,并能够执行复杂的数据库操作。存储过程...
在Oracle数据库中,存储过程和函数是重要的编程元素,用于执行复杂的数据库操作和业务逻辑。本篇文章将深入探讨这两个概念,并结合经典的SCOTT库中的EMP表进行实例操作。 **一、Oracle存储过程** 存储过程是一组预...
### Oracle存储过程、函数和包的关键知识点 #### 1. 存储过程和函数的认识 - **定义**:存储过程和函数是特定类型的PL/SQL块,它们被存储在数据库中,作为命名的对象存在。 - **命名存储**:与普通的PL/SQL块不同,...
### Oracle函数调用存储过程详解 #### 背景与目的 在开发Oracle应用程序时,经常需要使用到存储过程和函数。这两种类型的数据库对象各有优势,可以满足不同的业务需求。有时候,为了更好地组织代码和提高复用性,...
### Oracle存储过程、游标、函数的详解 #### 一、概述 在Oracle数据库中,存储过程、游标和函数是非常重要的组成部分,它们为数据库管理提供了强大的编程能力。通过学习这些概念,我们可以更加灵活地管理和操作...
Oracle存储过程和函数是数据库管理中的重要组成部分,它们允许开发者创建复杂的业务逻辑和数据处理流程。在这个"Oracle存储过程函数生成DEMO"中,我们主要关注如何在Oracle数据库环境中设计、编写、测试以及调用存储...
讲解了oracle的编程存储过程、函数和包
在Oracle数据库开发中,存储过程和函数以及PL/SQL语言是至关重要的组成部分。这篇内容将深入解析这些核心概念。 首先,我们来谈谈“存储过程”。存储过程是一组预编译的SQL语句,可以在数据库中保存并重复调用,以...
本资源"oracle函数大全及存储过程语法.rar"显然是一个关于Oracle函数和存储过程的详细指南,涵盖了各种常用和高级的函数以及存储过程的编写和使用方法。 一、Oracle函数 Oracle提供了丰富的内置函数,包括数值函数...
Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的编程接口,其中存储过程、函数、包和游标是数据库开发中常用的重要元素。以下是对这些概念的详细解释和它们在实际应用中的作用。 ### 存储过程 ...
ORACLE 存储过程的异步调用 本文讨论了 ORACLE 存储过程的异步调用方法,旨在解决客户端长时间等待存储过程执行的问题。主要思路是使用 DBMS_JOB 包将主处理存储过程作为任务提交到任务队列中,并通过 DBMS_PIPE 包...
Oracle数据库作为企业级的主流数据库系统,提供了丰富的存储过程和函数功能,以实现复杂的数据处理逻辑。而Hibernate作为一种流行的Java持久化框架,它允许开发者通过ORM(对象关系映射)方式与数据库进行交互。本篇...
### Delphi调用Oracle的存储过程 在软件开发过程中,Delphi作为一种强大的开发工具,能够高效地与多种数据库系统进行交互。本篇文章将详细介绍如何在Delphi中调用Oracle数据库中的存储过程,并通过一个具体的例子来...
本文实例讲述了Python使用cx_Oracle调用Oracle存储过程的方法。分享给大家供大家参考,具体如下: 这里主要测试在Python中通过cx_Oracle调用PL/SQL。 首先,在数据库端创建简单的存储过程。 create or replace ...
本包用于记录存储过程里面的日志,将日志信息写入日志表(mylog)。可以记录日志时间、过程名称、过程里面记录日志的行数、参数值。如果在异常处理部分记录日志,还可以记录异常代码、异常原因、异常产生的行数。 本人...
- **复合存储过程**:包含PL/SQL块,包括控制结构(如循环、条件判断)、变量声明和函数调用等。 - **带参数的存储过程**:允许传入和传出参数,实现数据交互。 - **匿名块**:没有名字的PL/SQL代码块,通常用于...
Oracle数据库是世界上最广泛使用的数据库系统之一,其强大的功能和灵活性主要体现在它的SQL扩展以及丰富的函数和存储过程上。本文将详细介绍Oracle中的函数和存储过程的语法,帮助你深入理解和运用这些核心概念。 ...
根据提供的文件内容,本文将详细解释Oracle数据库中的存储过程、函数和包的创建与使用方法。这三者都是Oracle数据库中PL/SQL编程的重要组成部分,它们可以提高代码的复用性和可维护性,并且能够有效地封装数据库逻辑...