PLSQL Language Reference-PL/SQL子程序-PL/SQL函数结果缓存(二)

本文介绍了如何开发带有函数结果缓存的应用,并列举了结果缓存函数的适用场景及限制条件。强调了函数体可能执行的情况及结果缓存函数需满足的条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开发带有函数结果缓存的应用

开发使用结果缓存函数的应用时,不要对于给定的参数值的集合,假定函数体执行的次数。

在一些情况下,结果缓存函数的函数体需要执行:

数据库实例的会话第1次使用这些参数调用该函数。

当对于这些参数的缓存结果无效时

当对于这些参数的缓存结果过期。如果系统需要内存,则可能会抛弃最老的缓存值。

当函数绕过缓存(有多种情况)

结果缓存函数的限制

函数为了成为结果缓存函数,必须满足下面的条件:

不是被定义在拥有调用者权限的模块中或匿名块中。

不是管道式的表函数

不引用数据字典表、临时表、序列和不确定的SQL函数。

没用OUT, IN OUT模式的参数

没有下列类型的IN模式参数。BLOBCLOBNCLOBREF CURSOR、集合、对象、记录

返回值类型不能为BLOBCLOBNCLOBREF CURSOR、对象、包含不支持返回类型的记录或集合。

建议结果缓存函数也满足下面的要求:

没有副作用

不依赖于特定会话的设置

不依赖于特定会话的应用上下文

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/17013648/viewspace-1132833/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/17013648/viewspace-1132833/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值