2017-10-18 52 views
0

我有一個光標如何打印奇怪的老型光標

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; 

我如何打印光標值?
這不是我的SP,很老了,我不明白,是什麼在光標

pi_bps_batch_seq VARCHAR2 

有人可以幫我嗎?

感謝

+0

你是什麼意思「打印光標值」? 。您可以通過用一個值替換'pi_bps_batch_seq'並運行select語句來查看自己。爲什麼你認爲它是「舊型光標」? –

+0

我想要在存儲過程 – osamuyl

回答

0

CURSOR不是 「怪老頭型光標」。它是帶有參數的CURSORpi_bps_batch_seq VARCHAR2在打開遊標時應該是一個參數。

在您的存儲過程中,您可以按如下方式打開並從CURSOR中獲取數據。

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

當你OPEN光標這樣,在WHERE bps_batch_seq = pi_bps_batch_seq
的RHS將被傳遞的值替換。

編輯:

,但我怎麼能打印光標SP的價值? DBMS.OUTPUT-PUTLINE?

這是一種方法。

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

中打印它,但是如何在SP中打印光標的值? DBMS.OUTPUT-PUTLINE? – osamuyl