`
Vksnail
  • 浏览: 43502 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Oracle中的函数、存储过程、包

阅读更多
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数据库中的存储过程、函数和包的创建与使用方法。这三者都是Oracle数据库中PL/SQL编程的重要组成部分,它们可以提高代码的复用性和可维护性,并且能够有效地封装数据库逻辑...

    oracle oracle函数 存储过程

    在学习和使用Oracle函数和存储过程时,建议从以下几个方面入手: 1. 熟悉基本的SQL语法和操作,这是使用函数和存储过程的前提。 2. 精读Oracle帮助文档,理解每个函数的用法和存储过程的结构。 3. 练习编写简单的...

    oracle函数调用存储过程

    ### Oracle函数调用存储过程详解 #### 背景与目的 在开发Oracle应用程序时,经常需要使用到存储过程和函数。这两种类型的数据库对象各有优势,可以满足不同的业务需求。有时候,为了更好地组织代码和提高复用性,...

    ORACLE存储过程,函数,包,游标

    Oracle数据库是世界上最流行的数据库管理系统之一,它提供了丰富的编程接口,其中存储过程、函数、包和游标是数据库开发中常用的重要元素。以下是对这些概念的详细解释和它们在实际应用中的作用。 ### 存储过程 ...

    Oracle存储过程和函数(最详细包含emp 表实例操作,边看边操作)

    **二、Oracle函数** 函数与存储过程相似,但函数必须返回一个值,而存储过程可以不返回。函数可以被用作查询的一部分,提升SQL语句的灵活性。 1. **创建函数**:使用`CREATE FUNCTION`语句定义函数,例如: ```...

    java调用oracle存储过程或者函数

    调用Oracle函数的过程与调用存储过程类似,但创建CallableStatement时的SQL语句略有不同。由于函数会返回一个值,所以格式通常是`{? = call function_name(?, ?, ...)}`。在执行后,通过`CallableStatement....

    如何调用oracle的函数、存储过程

    调用Oracle函数和存储过程通常涉及以下步骤: 1. **创建函数和存储过程**: 使用SQL的CREATE FUNCTION或CREATE PROCEDURE语句来定义它们。例如: ```sql CREATE OR REPLACE FUNCTION my_function(param1 IN ...

    Oracle存储过程、函数和包

    总结来说,存储过程和函数在Oracle数据库中是非常强大的工具,它们不仅可以帮助开发者提高代码的复用性和维护性,还可以通过数据库级别的安全性控制来增强系统的安全性。同时,通过包的概念,可以更好地组织和管理一...

    oracle存储过程函数和程序包.ppt

    Oracle 存储过程函数和程序包是 Oracle 数据库中的一种核心组件,用于实现复杂的业务逻辑和数据处理。以下是 Oracle 存储过程函数和程序包的知识点总结: 一、游标的概念和类型 游标是指向上下文区的句柄或指针,...

    oracle学习之函数存储过程

    ### Oracle学习之函数与...通过以上详细介绍,我们可以看到Oracle中的函数和存储过程是非常强大且实用的功能。正确地使用它们能够极大地提升数据库应用程序的性能和灵活性。希望本文能帮助您更好地理解和运用这些概念。

    oracle 存储过程 函数 dblink

    ### Oracle存储过程、函数与DBLink详解 #### 一、Oracle存储过程简介 在Oracle数据库中,存储过程是一种预编译好的SQL代码集合,它可以接受输入参数、返回单个值或多个值,并能够执行复杂的数据库操作。存储过程...

    ibatis调用oracle的函数,存储过程的方法

    在Ibatis中调用Oracle函数和存储过程,你需要以下步骤: 1. **配置映射文件(Mapper XML)**: - 创建一个XML映射文件,定义SQL语句。对于函数,使用`&lt;select&gt;`标签;对于存储过程,使用`&lt;procedure&gt;`标签。 - 在...

    Oracle中实现Split函数功能

    Oracle 中实现 Split 函数功能 Oracle 中实现 Split 函数功能是指在 Oracle 数据库中实现类似于 C# 等编程语言中的 Split 函数,用于拆分字符的功能。下面是实现 Oracle 中 Split 函数功能的详细介绍。 首先,...

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

    在Oracle数据库中,存储过程、游标和函数是非常重要的组成部分,它们为数据库管理提供了强大的编程能力。通过学习这些概念,我们可以更加灵活地管理和操作数据库数据。 ##### 1.1 存储过程 存储过程是一组预先编译...

    oracle函数大全及存储过程语法.rar

    本资源"oracle函数大全及存储过程语法.rar"显然是一个关于Oracle函数和存储过程的详细指南,涵盖了各种常用和高级的函数以及存储过程的编写和使用方法。 一、Oracle函数 Oracle提供了丰富的内置函数,包括数值函数...

    oracle笔记存储函数和存储过程

    oracle笔记存储函数和存储过程,有具体的代码案例!存储函数和存储过程的知识笔记!

    oracle函数大全及存储过程语法

    本资料包主要涵盖了Oracle中的函数大全、存储过程的语法以及Oracle分区的相关知识,这些都是数据库管理员和开发人员日常工作中不可或缺的部分。下面将对这些主题进行深入的探讨。 **一、Oracle函数大全** Oracle...

    oracle函数大全与存储过程语法-中文.rar

    本资源包“oracle函数大全与存储过程语法-中文.rar”涵盖了从Oracle 9i到10G版本的函数和存储过程的详细信息,旨在帮助用户深入理解和应用这些关键概念。 1. **Oracle函数大全**: - 函数是预定义的代码块,接受一...

Global site tag (gtag.js) - Google Analytics