Archive for March 3rd, 2009

慎用函数内存表

Tuesday, March 3rd, 2009

也许这个名字不太准确,函数内存表也就是通过一个函数运算,返回一个array,这个返回的数组可以作为普通表与其他的
表做join,或者别的操作,比如我们这边就有个函数
Pkg_Privilege_Util.str2varlist,传入一个字符串,就返回一个数组,当inlist的传值超过1000个时,就是用这个函数
 
testuser@testdb>explain plan for
  2  SELECT sah.ACCOUNT_ID
  3    FROM sfa_account_history sah, sfa_opportunity so
  4   WHERE (sah.member_id LIKE :1 AND sah.account_id = so.account_id AND
  5         (sales_id in
  6         (select login_id
  7              from admin_user_role aur, admin_user au
  8             where aur.user_id = au.login_id
  9               and aur.org_id in (SELECT *
 10               FROM THE (SELECT CAST(pkg_privilege_util.str2numlist(’30′, ”, ”, ”, ”) AS
 11               numtabletype) [...]

DBA