2013-12-10 27 views
0

我的包中有兩個光標。第一光標沒有輸入參數,所以我已經成功地打開一看是這樣的:用輸入變量打開光標以選擇語句

OPEN c1 for 
     SELECT foracid, 
     acct_name, 
     addr_1, 
     addr_2, 
     sol_desc, 
     city_code, 
     gam.FUTURE_UN_CLR_BAL_AMT 
     FROM tbaadm.gam, 
     tbaadm.sol 
     WHERE gam.sol_id = sol.sol_id 
     AND schm_type  IN ('CAA','ODA','LAA') 
     AND schm_code NOT IN ('CTSTF'); 
    CLOSE c1; 

但我的第二個遊標有一個輸入參數,我不能這樣做:

OPEN c2 (vMyName varchar2) for select ..... 

因爲這個錯誤:

Found Varhcar2 Expecting :) and -or... 

我可以真的打開這個光標這樣或我該怎麼辦?

+0

人也就是在德國或東西:( – ErrorNotFoundException

+0

噢,抱歉,我的錯......但我不認爲這是幫助你特定的問題反正。 ..: -/ – Armunin

回答

1

您只需做到以下幾點:

create or replace procedure proc (c2 OUT SYS_REFCURSOR) AS 

vMyName varchar2(100); 

begin 
    vMyName := 'Some Value'; 

    open c2 for 
    select col1, col2, col3 
    from tab1 
    where val = vMyName; 
end; 
+1

參數'c2'應該是一個OUT變量。'c2 OUT SYS_REFCURSOR'。 – Dba

+0

謝謝,我解決了這個問題。 – Armunin