带有缓存的Oracle流水线功能

时间:2017-03-04 12:29:51

标签: oracle plsql pipelined-function

如何在查询中使用oracle pipelined函数来第一次获取数据。

示例:

create or replace function best_employees return my_type pipelined;

select * from employees a 
join table(best_employees) b 
on a.employee_id = b.employee_id;

此查询多次调用best_employees函数。它必须只是第一次打电话。 我怎样才能做到这一点。感谢。

1 个答案:

答案 0 :(得分:0)

虽然您可以将结果存储在类型public function doLogin(){ $db = new databaseClass(); //e.g. a tablegateway $encryptionClass = new encryptionClass(); //some class which generates ciphers $user = new UserModel($db); if($user->findUser($_POST['username'])){ $loginSuccess = $user->validateLogin($_POST['password']); //do stuff } } 的包集合中,并编写函数以返回该函数,如果它包含值而不是重新执行查询,则更简单,更可靠的方法是使用result_cache在其查询中提示。

my_type

(还有result_cache option for functions但它不能用于流水线功能。)