کوئری زیر اطلاعات مربوط به بیمه شدگان بیمار خاص دارای تاریخ اعتبار بین 13990701 و 14000101 را استخراج کرده و آماده تغییر می کند.

create table sharifi.bku_changeAccountValidationV2_13990807 as
select * from 
(
with SpetialPatient_Accounts AS
(
  SELECT *
  FROM OMID.TICPACCOUNT
  WHERE PRODUCT_ID IN (SELECT ID FROM OMID.TICPPRODUCT WHERE ParentID = 100)
    AND DTO IS NULL
    AND STATUS = 'D'
    AND isactive='Y'
    AND MEMBEROWNER_ID IN (SELECT ID FROM OMID.TICPMEMBER WHERE DTO IS NULL)
    AND FAMILYOWNER_ID IN (SELECT ID FROM OMID.TICPFAMILY WHERE DTO IS NULL)
)

SELECT  a.membernn,
        f.responsiblenn,
        f.cellphonenumber,
        sa.ID AS SpetialPatient_AccountID,
        sa.PRODUCT_ID AS SpetialPatient_ProductID,
        sa.VALIDFROM as SpetialPatient_ValidFrom,
        sa.VALIDTO as SpetialPatient_ValidTo,
        a.ID AS Iranian_AccountID,
        a.VALIDFROM AS Iranian_ValidFrom,
        a.VALIDTO AS Iranian_ValidTo,
        CASE  WHEN sa.VALIDTO < TO_DATE('14000131', 'YYYYMMDD', 'NLS_CALENDAR = PERSIAN') THEN 1
              ELSE 0
        END SpetialPatient_ConditionType
FROM  SpetialPatient_Accounts sa,
      OMID.TICPACCOUNT a,ticpfamily f
WHERE a.PRODUCT_ID = 6 
    AND sa.MEMBEROWNER_ID = a.MEMBEROWNER_ID
    AND a.familyowner_id=f.id
    AND a.isactive='Y'
    AND a.DTO IS NULL
    AND a.STATUS IN ('D')
    and trunc(a.validto) >=to_date('13990701', 'yyyymmdd', 'nls_calendar=persian')
    and trunc(a.validto) <to_date('14000101', 'yyyymmdd', 'nls_calendar=persian')
);

بعد از استخراج اطلاعات، کوئری زیر را جهت افزایش اعتبار صندوق بیمه پایه و خاص استفاده می کنیم.

declare 
    v_result number;
begin
    for v_cur in (
        select membernn,iranian_accountid,spetialpatient_accountid,spetialpatient_conditiontype 
        from sharifi.bku_changeAccountValidationV2_13990807
        --10211  Rows
    )loop
        v_result:=pkgacountmanagement.fncchangeaccountvalidation(v_cur.iranian_accountid
                                                                    ,TO_DATE('14000131', 'YYYYMMDD', 'NLS_CALENDAR = PERSIAN')
                                                                    ,'افزایش اعتبار پیرو نامه سازمان مورخ 13990719 جهت پیشگیری از شیوع کرونا');
        if(v_cur.spetialpatient_conditiontype=1) then 
            v_result:=pkgacountmanagement.fncchangeaccountvalidation(v_cur.spetialpatient_accountid
                                                                    ,TO_DATE('14000131', 'YYYYMMDD', 'NLS_CALENDAR = PERSIAN')
                                                                    ,'افزایش اعتبار پیرو نامه سازمان مورخ 13990719 جهت پیشگیری از شیوع کرونا');
        end if;
    end loop;
end;