2017-10-18 2 views
0

J'ai un curseurComment imprimer étrange vieux curseur de type

CURSOR c_trd(pi_bps_batch_seq VARCHAR2) IS  
    SELECT  
     bps_batch_seq  
     , hetid  
     , op_code  
     , seg_data  
     , xmit_dt  
     , xmit_batch_file  
     , blotter_code  
     , fn_bos(contra_party_acct,hcact,minor_clr_broker) BOS_O  
     , bos  
     , ats_ind  
     ,CASE tob_ind  
     WHEN NULL THEN tob_ind  
     WHEN 'M930' THEN 'MH'  
     END  
    FROM intact_msrb_vw A   
    WHERE bps_batch_seq = pi_bps_batch_seq     AND  
     xmit_dt  IS NULL  
    FOR UPDATE OF xmit_dt,xmit_batch_file,bos  
    ;  

    lv_next_seq  tran_queue_bps_batch.bps_batch_seq%TYPE; 

Comment puis-je imprimer la valeur du curseur?
Il est pas mon SP, très vieux, et je ne comprends pas, ce qui est

pi_bps_batch_seq VARCHAR2 

dans le curseur.

Quelqu'un peut-il m'aider?

Merci

+0

. Vous pouvez simplement lancer l'instruction select en remplaçant 'pi_bps_batch_seq' par une valeur et voir par vous-même. Et pourquoi penses-tu qu'il s'agit d'un "curseur de type ancien"? –

+0

Je veux l'imprimer dans la procédure stockée – osamuyl

Répondre

0

Le CURSOR n'est pas "vieux curseur de type étrange". C'est un CURSOR avec un paramètre. pi_bps_batch_seq VARCHAR2 doit être un argument lors de l'ouverture du curseur.

Dans votre procédure stockée, vous pouvez ouvrir et extraire à partir du CURSOR comme suit.

OPEN c_trd(<value_for_pi_bps_batch_seq>); 
LOOP 
FETCH c_trd INTO .... 

lorsque vous OPEN le curseur comme celui-ci, l'ERS dans WHERE bps_batch_seq = pi_bps_batch_seq
sera remplacée par la valeur que vous passez.

EDIT:

mais comment puis-je imprimer la valeur du curseur dans SP? DBMS.OUTPUT-PUTLINE?

Voici une façon. Qu'entendez-vous par "valeur du curseur d'impression"?

for cur IN c_trd(<value_for_pi_bps_batch_seq>) 
LOOP 
    DBMS_OUTPUT.PUT_LINE(cur.bps_batch_seq , cur.hetid,....); 
END LOOP; 
+0

mais comment puis-je imprimer la valeur du curseur dans SP? DBMS.OUTPUT-PUTLINE? – osamuyl