加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

oracle – PL / SQL如何选择进入表类型的局部变量

发布时间:2021-05-17 11:53:56 所属栏目:站长百科 来源:网络整理
导读:PROCEDURE "ARCHIVE_CASE_LIST"( a_case_id_list IN INLISTNUMBERS)IS l_customers INLISTNUMBERS; INLISTNUMBERS是Oracle数字表; 如何准备预先计算的客户列表并将它们存储在l_customers中,这样我就不需要在其他更新/选择语句中使用那个长选择语句? insert

PROCEDURE "ARCHIVE_CASE_LIST"
(
    a_case_id_list IN INLISTNUMBERS
)
IS
  l_customers INLISTNUMBERS;

INLISTNUMBERS是Oracle数字表;

如何准备预先计算的客户列表并将它们存储在l_customers中,这样我就不需要在其他更新/选择语句中使用那个长选择语句?

insert into table(l_customers) <-- fail
    select distinct case1.customer_id into l_customers from case case1
      where case1.case_id in (select column_value from table(a_case_id_list)) and
        not exists (select 0 from case case2 where case2.customer_id = case1.customer_id and
          case2.lifecycle_code not in (code_id('LIFECYCLE','A'),code_id('LIFECYCLE','D')));

  update customer set customer.lifecycle_code = code_id('LIFECYCLE','A')
    where customer.customer_id in (select column_value from table(l_customers));

  open l_persons for 
    select person_id from person where person.customer_id in
      (select column_value from table(l_customers));
使用带有BULK COLLECT的SELECT语句:
select distinct case1.customer_id bulk collect into l_customers
from case case1
  where case1.case_id in (select column_value from table(a_case_id_list)) and
    not exists (select 0 from case case2 where case2.customer_id = case1.customer_id and
      case2.lifecycle_code not in (code_id('LIFECYCLE','D')));

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读