通过with子句,我们可以把很多原本需要存储过程来实现的复杂逻辑用一句SQL来进行表达,
在12C中,with的功能又有所增强,在with里可以直接定义一个函数。
比如
甚至可以支持自治事务函数,在函数中进行DML操作
而在11G中,则直接报错ORA-00905
需要注意的是:在function定义的end后面不能跟函数名称
这种语法在查询DG备库查询中可以派上用场,在一个STANDBY备库中,我们不能在只读数据库中创建函数,但通过with子句,我们把函数定义在select语句中,就完美规避了这一问题。

介绍了Oracle 12C中with子句的功能增强,包括直接定义函数的能力,并举例说明如何利用这一特性在只读的备库环境中执行DML操作。
2183

被折叠的 条评论
为什么被折叠?



