Advertisements

Tuesday, June 11, 2013

Populating type table

El siguiente script de PL SQL muestra un ejemplo de como llenar una colección de tipo tabla, en la cual se definen puros tipos de datos simples.
01DECLARE
02 
03  V_LIST AP_OTM_IF_TBL_T := AP_OTM_IF_TBL_T();
04  V_LINE1 AP_OTM_IF_T :=    AP_OTM_IF_T(1,1,'n',SYSDATE,SYSDATE,'N','N','N',1,'N','N',1,SYSDATE,'N','N',1,1,'N','N',1,SYSDATE,1,1,SYSDATE,'N',1,1);
05 
06  V_RES CHAR(20) :='N';
07BEGIN
08  V_LIST.extend();
09  V_LIST(V_LIST.count()) := V_LINE1;
10  DBMS_OUTPUT.PUT_LINE('COUNT = ' || V_LIST.count());
11  SOA_AP_INVOICES_IF_INPUT.SEND_VOUCHER(V_LIST,V_RES);
12    
13DBMS_OUTPUT.PUT_LINE('V_RESULT = ' || V_RES);
14 
15END;

Este es otro ejemplo de como poblar un objeto de tipo tabla usando BULK COLLECT INTO.
01set serveroutput on;
02 
03DECLARE
04  V_DATE_FORMAT varchar2(50) := 'DD-MON-YYYY';
05  v_date varchar2(50) := '11-DEC-2013';
06  v_eexp_list SWC_FA_EEXP_IFACE_TBL_T := SWC_FA_EEXP_IFACE_TBL_T();
07BEGIN
08 
09select
10SWC_FA_EEXP_IFACE_T (ADMIN_REVIEWED,   
11  APPROVER_TEMPLATE_PHASE,  
12  APP_ID,        
13  BRIEF_DESC, 
14  CHANGED_BY, 
15  COST_CENTER,  
16  DATE_CHANGED,          
17  DATE_CREATED,          
18  DIVISION,   
19  DIV_NAME,  
20  DIV_ID,        
21  LONG_DESC,
22  ORIGINATING_LOCATION, 
23  PRIME_ACCOUNT,  
24  PRIOR_REQUEST,   
25  PRIOR_REQUEST_AMT,        
26  PROJECT,  
27  REQUEST_ID,        
28  REQUEST_STATUS,   
29  REVISED_TOTAL_AMT,        
30  SENT_TO_ONBASE,          
31  SITE_CITY_OTHER,  
32  SITE_ID,        
33  SITE_NUM_OTHER,  
34  SITE_STATE_OTHER,   
35  SUB_ACCOUNT,   
36  SUPPORT_MAILED,   
37  TOTAL_COST_AMT ,        
38  DATE_APPROVED)
39BULK COLLECT INTO v_eexp_list from swc_fa_eexp_v where TO_CHAR(date_created,V_DATE_FORMAT) = v_date and request_status IN ('A', 'D');
40  dbms_output.put_line('COUNT: ' || v_eexp_list.count());
41 
42END;