Oracle function里面是可以允许有DML语句的,但是不能在查询的时候使用。
我们常用的function如:
select max(a) from table ;
这种调用方式是不能执行带有DML的FUNCTION的。
但是如果不用在SQL里面是可以有的
比如 dbms_output.put_line(func(...));
如果函数里面采用自治事务,是可以有DML 的。
简单转载一下什么是“自治事务”:
自治事务是可以在其他事务中调用的独立事务。
自治事务可以使事务离开调用事务的上下文执行SQL操作、提交或回滚其他操作并返回到调用事务的上下文然后继续调用事务。
自治事务调用后,事务完全与调用它的主事务独立。
不会看到任何主事务尚未提交的改变、不会共享主事务的锁或资源。自治事务的改变在自治事务提交后可以被其他事务可见。
自治事务可以调用其他自治事务,嵌套的层数没有限制。
相关推荐
Oracle培訓Oracle Procedure﹑Function、Trigger等
Oracle基础学习三:过程PROCEDURE 和函数FUNCTION 的创建及调用
Oracle数据库中的Procedure(存储过程)和Function(函数)是两种重要的PL/SQL编程元素,它们在数据处理和逻辑实现上有着显著的区别。 1. **标识符与返回值**: - 函数(FUNCTION)的标识符是FUNCTION,其设计目的...
Oracle数据库中的“包”(Package)和“过程”(Procedure)是高级数据库编程的重要概念,它们在企业级应用开发中广泛使用。理解并熟练掌握这些概念对于任何Oracle数据库开发者来说都至关重要。 首先,我们来解释...
过程与函数类似,也是封装的代码块,但区别在于过程不返回值,而是用于执行一系列操作。它们可以有输入参数,但没有返回值。过程通常用于执行那些不需要返回结果的数据库操作,如数据清理或数据验证。过程的声明和...
3. **Procedure**:与函数类似,Oracle过程也是PL/SQL代码块,但它们不返回值,主要用于执行一系列操作。过程可以有输入和输出参数,可以用于封装复杂的业务逻辑。在大型项目中,过程常用于处理事务、数据验证和流程...
oracle procedure trigger function cursor
使用MyBatis框架配置Oracle和MySql中存储过程与函数的调用。 分别描述了两种方式的实现:基于XML方式和注解方式。 其中Oracle所使用版本为Oracle11g_XE版,MySQL为5.7版本
并为package定义对应的属性(全局变量)和方法(function,procedure). package的全局变量在oracle编程过程中有很多有趣并非常实用的作用.比如,我们可以利用这个特性定义带参数的视图,以增加特定情况下(无法通过普通...
PL/SQL Developer是一款由Allround Automations公司设计的专门针对Oracle数据库进行开发的集成环境,它为数据库管理员和开发人员提供了高效、便捷的工具。这款软件支持编写、调试、执行和管理PL/SQL代码,是Oracle...
1. 参数类型匹配:确保Java中的参数类型与Oracle存储过程或函数中的参数类型一致,否则可能导致转换异常。 2. 注意游标处理:有些存储过程可能返回游标,需要特别处理。 3. 事务管理:根据业务需求,可能需要手动...
3. Function与Procedure的区别: - Function必须有返回值,常用于需要返回单一计算结果的场合;Procedure无返回值,通常用于执行一系列操作。 - SQL语句中只能调用Function,因为Procedure不能直接在查询中使用。 ...
4. 解释 FUNCTION, PROCEDURE 和 PACKAGE 的区别 答案:function 和 procedure 是 PL/SQL 代码的集合,通常为了完成一个任务。procedure 不需要返回任何值而 function 将返回一个值,在另一方面,Package 是为了完成...
Oracle对象包括触发器(Trigger)、存储过程(Stored Procedure)以及其他多种数据库组件,它们对于实现业务逻辑、数据验证以及性能优化等方面起着至关重要的作用。这篇文档将深入探讨如何在Oracle环境中创建和管理...
2. FUNCTION、PROCEDURE 和 PACKAGE 的区别是什么? 答:FUNCTION 和 PROCEDURE 是 PL/SQL 代码的集合,通常用于完成一个任务。PROCEDURE 不需要返回任何值,而 FUNCTION 将返回一个值。在另一方面,PACKAGE 是为了...
首先,了解函数与存储过程的区别。函数是返回一个特定值的程序单元,而存储过程则可以执行一系列操作,但不一定返回值。在Oracle中,两者都可以接受参数,执行计算或操作,并可能影响数据库状态。 调用Oracle函数和...
虽然题目提到的"打包jar.txt"文件可能与Java相关的JAR打包有关,但在Oracle数据库上下文中,"打包"通常指的是PL/SQL对象的组织。然而,在Oracle Application Express(APEX)或Oracle JDeveloper等开发工具中,确实...
在Oracle中,子程序包括过程(Procedure)和函数(Function)。过程是一系列SQL或PL/SQL语句的集合,它们执行特定的任务,但不返回值。你可以将它们视为数据库中的自定义操作。而函数则类似于过程,也包含一系列的...
Oracle P/L SQL实现FTP上传、下载功能,以下是此过程包的头部,包体经常打包处理plb,感兴趣用户可以下载下来。 --Oracle上的FTP功能 Create or Replace Package UTL_FTP AUTHID CURRENT_USER as Type Connection ...
Oracle过程是数据库管理系统中的一种重要组成部分,主要用于存储和执行复杂的业务逻辑或数据库操作。在这个例子中,我们将深入探讨Oracle过程的使用,以及如何通过“架包”(可能指的是Oracle的包,即PL/SQL包)来...