`
dacoolbaby
  • 浏览: 1258946 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Oracle FUNCTION与PROCEDURE的最大区别

阅读更多

Oracle function里面是可以允许有DML语句的,但是不能在查询的时候使用。

我们常用的function如:

select max(a) from table ;

 

这种调用方式是不能执行带有DML的FUNCTION的。

 

但是如果不用在SQL里面是可以有的
比如 dbms_output.put_line(func(...));

如果函数里面采用自治事务,是可以有DML 的。

 

简单转载一下什么是“自治事务”:

自治事务是可以在其他事务中调用的独立事务。

自治事务可以使事务离开调用事务的上下文执行SQL操作、提交或回滚其他操作并返回到调用事务的上下文然后继续调用事务。
自治事务调用后,事务完全与调用它的主事务独立。

不会看到任何主事务尚未提交的改变、不会共享主事务的锁或资源。自治事务的改变在自治事务提交后可以被其他事务可见。
自治事务可以调用其他自治事务,嵌套的层数没有限制。

分享到:
评论

相关推荐

    Oracle培訓Procedure﹑Function等简介

    Oracle培訓Oracle Procedure﹑Function、Trigger等

    Oracle基础学习三过程PROCEDURE 和函数FUNCTION 的创建及用

    Oracle基础学习三:过程PROCEDURE 和函数FUNCTION 的创建及调用

    oracle中 procedure(存储过程)和function(函数)本质区别

    Oracle数据库中的Procedure(存储过程)和Function(函数)是两种重要的PL/SQL编程元素,它们在数据处理和逻辑实现上有着显著的区别。 1. **标识符与返回值**: - 函数(FUNCTION)的标识符是FUNCTION,其设计目的...

    oracle 包 procedure

    Oracle数据库中的“包”(Package)和“过程”(Procedure)是高级数据库编程的重要概念,它们在企业级应用开发中广泛使用。理解并熟练掌握这些概念对于任何Oracle数据库开发者来说都至关重要。 首先,我们来解释...

    Oracle_function_package_procedure.rar_oracle_pl sql function_pl/

    过程与函数类似,也是封装的代码块,但区别在于过程不返回值,而是用于执行一系列操作。它们可以有输入参数,但没有返回值。过程通常用于执行那些不需要返回结果的数据库操作,如数据清理或数据验证。过程的声明和...

    大型项目Oracle sql,function,procedures,package,cursor,job

    3. **Procedure**:与函数类似,Oracle过程也是PL/SQL代码块,但它们不返回值,主要用于执行一系列操作。过程可以有输入和输出参数,可以用于封装复杂的业务逻辑。在大型项目中,过程常用于处理事务、数据验证和流程...

    oracle编程基础

    oracle procedure trigger function cursor

    MyBatis调用Procedure+Function.pptx

    使用MyBatis框架配置Oracle和MySql中存储过程与函数的调用。 分别描述了两种方式的实现:基于XML方式和注解方式。 其中Oracle所使用版本为Oracle11g_XE版,MySQL为5.7版本

    Oracle中的package对象

    并为package定义对应的属性(全局变量)和方法(function,procedure). package的全局变量在oracle编程过程中有很多有趣并非常实用的作用.比如,我们可以利用这个特性定义带参数的视图,以增加特定情况下(无法通过普通...

    plsqldevelop

    PL/SQL Developer是一款由Allround Automations公司设计的专门针对Oracle数据库进行开发的集成环境,它为数据库管理员和开发人员提供了高效、便捷的工具。这款软件支持编写、调试、执行和管理PL/SQL代码,是Oracle...

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

    1. 参数类型匹配:确保Java中的参数类型与Oracle存储过程或函数中的参数类型一致,否则可能导致转换异常。 2. 注意游标处理:有些存储过程可能返回游标,需要特别处理。 3. 事务管理:根据业务需求,可能需要手动...

    oracle面试题集锦

    3. Function与Procedure的区别: - Function必须有返回值,常用于需要返回单一计算结果的场合;Procedure无返回值,通常用于执行一系列操作。 - SQL语句中只能调用Function,因为Procedure不能直接在查询中使用。 ...

    Oracle数据库面试题及答案

    4. 解释 FUNCTION, PROCEDURE 和 PACKAGE 的区别 答案:function 和 procedure 是 PL/SQL 代码的集合,通常为了完成一个任务。procedure 不需要返回任何值而 function 将返回一个值,在另一方面,Package 是为了完成...

    oracle对象创建实例

    Oracle对象包括触发器(Trigger)、存储过程(Stored Procedure)以及其他多种数据库组件,它们对于实现业务逻辑、数据验证以及性能优化等方面起着至关重要的作用。这篇文档将深入探讨如何在Oracle环境中创建和管理...

    oracle常见面试题及答案

    2. FUNCTION、PROCEDURE 和 PACKAGE 的区别是什么? 答:FUNCTION 和 PROCEDURE 是 PL/SQL 代码的集合,通常用于完成一个任务。PROCEDURE 不需要返回任何值,而 FUNCTION 将返回一个值。在另一方面,PACKAGE 是为了...

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

    首先,了解函数与存储过程的区别。函数是返回一个特定值的程序单元,而存储过程则可以执行一系列操作,但不一定返回值。在Oracle中,两者都可以接受参数,执行计算或操作,并可能影响数据库状态。 调用Oracle函数和...

    怎么用oracle打包

    虽然题目提到的"打包jar.txt"文件可能与Java相关的JAR打包有关,但在Oracle数据库上下文中,"打包"通常指的是PL/SQL对象的组织。然而,在Oracle Application Express(APEX)或Oracle JDeveloper等开发工具中,确实...

    Oracle学习第七章

    在Oracle中,子程序包括过程(Procedure)和函数(Function)。过程是一系列SQL或PL/SQL语句的集合,它们执行特定的任务,但不返回值。你可以将它们视为数据库中的自定义操作。而函数则类似于过程,也包含一系列的...

    Oracle P/L SQL实现FTP上传、下载功能

    Oracle P/L SQL实现FTP上传、下载功能,以下是此过程包的头部,包体经常打包处理plb,感兴趣用户可以下载下来。 --Oracle上的FTP功能 Create or Replace Package UTL_FTP AUTHID CURRENT_USER as Type Connection ...

    一个简单的oracle过程被使用的例子,包含架包

    Oracle过程是数据库管理系统中的一种重要组成部分,主要用于存储和执行复杂的业务逻辑或数据库操作。在这个例子中,我们将深入探讨Oracle过程的使用,以及如何通过“架包”(可能指的是Oracle的包,即PL/SQL包)来...

Global site tag (gtag.js) - Google Analytics