1.函数
①系统函数
②自定义函数
③使用函数
④编写过程
⑤过程的调用
例子:一个数的两倍
CREATE OR REPLACE FUNCTION f_get_double
(
p1 NUMBER
)
RETURN NUMBER
IS
v1 NUMBER;
BEGIN
v1:=p1*2;
RETURN v1;
END;
调用:SELECT scott.f_get_double(100) FROM dual;
SELECT ename,sal,f_get_double(sal) AS sal2 FROM emp;
2.存储过程
例子:删除指定编号的员工信息,如果员工所在部门的人数少于三个就不能删除。
CREATE OR REPLACE PROCEDURE sp_del
(
v_empno emp.empno%TYPE
)
AS
v_count NUMBER;
BEGIN
DELETE FROM emp WHERE empno=v_empno;
SELECT COUNT(*) INTO v_count FROM emp
WHERE deptno=(
SELECT deptno FROM emp WHERE empno=deptno
);
IF(v_count<3)THEN
ROLLBACK;
raise_application_error(-20045,'部门人数太少!');
END IF;
dbms_output.put_line('删除了'||SQL%ROWCOUNT||'行');
COMMIT;
END;
3.函数与存储过程的区别:
①函数必须有返回值
②函数不能修改数据
③都有in out (in out)三个参数
4.常见函数举例
①Ltrim与Rtrim
SELECT RTrim('afesafdafeg','eg') FROM dual; --这里就是把右边的eg截断
SELECT LTrim('afesafdafeg','af') FROM dual; --这里就是把左边的af截断
②LPad与RPad
SELECT LPad('abcdefgtyi', 12, 'YY') FROM dual; --在列的左边粘贴字符,12表示 在'abcdefgtyi'出现的索引值,不够就补YY
上面的结果为:YYabcdefgtyi
SELECT RPad('abcdefgyui', 12, 'YY') FROM dual; --同上
结果为:abcdefgyuiYY
5.包的使用(可以看成是JAVA里的接口)
--先写包里定义函数,不写它的实现
CREATE OR REPLACE PACKAGE my_fun IS
FUNCTION f_get_double(a NUMBER) RETURN NUMBER;
END;
--包体
CREATE OR REPLACE PACKAGE BODY my_fun IS
FUNCTION f_get_double(a NUMBER) RETURN NUMBER
AS
BEGIN
RETURN a*2;
END;
END;
6.什么时候函数与存储过程
①不修改数据,只完成计算。用函数
②业务要涉及多个步骤或者多张表时,用存储过程
③而项目中函数和过程多,就用包来管理
分享到:
相关推荐
根据提供的文件内容,本文将详细解释Oracle数据库中的存储过程、函数和包的创建与使用方法。这三者都是Oracle数据库中PL/SQL编程的重要组成部分,它们可以提高代码的复用性和可维护性,并且能够有效地封装数据库逻辑...
在学习和使用Oracle函数和存储过程时,建议从以下几个方面入手: 1. 熟悉基本的SQL语法和操作,这是使用函数和存储过程的前提。 2. 精读Oracle帮助文档,理解每个函数的用法和存储过程的结构。 3. 练习编写简单的...
### Oracle函数调用存储过程详解 #### 背景与目的 在开发Oracle应用程序时,经常需要使用到存储过程和函数。这两种类型的数据库对象各有优势,可以满足不同的业务需求。有时候,为了更好地组织代码和提高复用性,...
Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的编程接口,其中存储过程、函数、包和游标是数据库开发中常用的重要元素。以下是对这些概念的详细解释和它们在实际应用中的作用。 ### 存储过程 ...
**二、Oracle函数** 函数与存储过程相似,但函数必须返回一个值,而存储过程可以不返回。函数可以被用作查询的一部分,提升SQL语句的灵活性。 1. **创建函数**:使用`CREATE FUNCTION`语句定义函数,例如: ```...
调用Oracle函数的过程与调用存储过程类似,但创建CallableStatement时的SQL语句略有不同。由于函数会返回一个值,所以格式通常是`{? = call function_name(?, ?, ...)}`。在执行后,通过`CallableStatement....
调用Oracle函数和存储过程通常涉及以下步骤: 1. **创建函数和存储过程**: 使用SQL的CREATE FUNCTION或CREATE PROCEDURE语句来定义它们。例如: ```sql CREATE OR REPLACE FUNCTION my_function(param1 IN ...
总结来说,存储过程和函数在Oracle数据库中是非常强大的工具,它们不仅可以帮助开发者提高代码的复用性和维护性,还可以通过数据库级别的安全性控制来增强系统的安全性。同时,通过包的概念,可以更好地组织和管理一...
Oracle 存储过程函数和程序包是 Oracle 数据库中的一种核心组件,用于实现复杂的业务逻辑和数据处理。以下是 Oracle 存储过程函数和程序包的知识点总结: 一、游标的概念和类型 游标是指向上下文区的句柄或指针,...
### Oracle学习之函数与...通过以上详细介绍,我们可以看到Oracle中的函数和存储过程是非常强大且实用的功能。正确地使用它们能够极大地提升数据库应用程序的性能和灵活性。希望本文能帮助您更好地理解和运用这些概念。
### Oracle存储过程、函数与DBLink详解 #### 一、Oracle存储过程简介 在Oracle数据库中,存储过程是一种预编译好的SQL代码集合,它可以接受输入参数、返回单个值或多个值,并能够执行复杂的数据库操作。存储过程...
在Ibatis中调用Oracle函数和存储过程,你需要以下步骤: 1. **配置映射文件(Mapper XML)**: - 创建一个XML映射文件,定义SQL语句。对于函数,使用`<select>`标签;对于存储过程,使用`<procedure>`标签。 - 在...
Oracle 中实现 Split 函数功能 Oracle 中实现 Split 函数功能是指在 Oracle 数据库中实现类似于 C# 等编程语言中的 Split 函数,用于拆分字符的功能。下面是实现 Oracle 中 Split 函数功能的详细介绍。 首先,...
在Oracle数据库中,存储过程、游标和函数是非常重要的组成部分,它们为数据库管理提供了强大的编程能力。通过学习这些概念,我们可以更加灵活地管理和操作数据库数据。 ##### 1.1 存储过程 存储过程是一组预先编译...
本资源"oracle函数大全及存储过程语法.rar"显然是一个关于Oracle函数和存储过程的详细指南,涵盖了各种常用和高级的函数以及存储过程的编写和使用方法。 一、Oracle函数 Oracle提供了丰富的内置函数,包括数值函数...
oracle笔记存储函数和存储过程,有具体的代码案例!存储函数和存储过程的知识笔记!
本资料包主要涵盖了Oracle中的函数大全、存储过程的语法以及Oracle分区的相关知识,这些都是数据库管理员和开发人员日常工作中不可或缺的部分。下面将对这些主题进行深入的探讨。 **一、Oracle函数大全** Oracle...
本资源包“oracle函数大全与存储过程语法-中文.rar”涵盖了从Oracle 9i到10G版本的函数和存储过程的详细信息,旨在帮助用户深入理解和应用这些关键概念。 1. **Oracle函数大全**: - 函数是预定义的代码块,接受一...