2012-11-19 24 views
0

正在編寫過程。當我運行該程序時出現錯誤。在這裏我附上了程序。在pl/sql中使用pl/sql中的過程檢索特定列值

code 

PROCEDURE get_CDR_rs_phone (CDR_recordset OUT SYS_REFCURSOR)AS 
BEGIN 
    OPEN CDR_recordset FOR 
    SELECT zkv.CISCOCUIC_TBL.FLD_callingPartyNumber FROM zkv.CISCOCUIC_TBL; 

END get_CDR_rs_phone; 
/

getting error when i run this proc 
+0

什麼是你所得到的錯誤? – user75ponic

+0

該程序是否在包裝中? – user75ponic

+0

@ Poippan不是它的包裝 – vps

回答

1

創建過程作爲

CREATE OR REPLACE PROCEDURE get_cdr_rs_phone (
    cdr_recordset OUT sys_refcursor 
) 
AS 
BEGIN 
    OPEN cdr_recordset FOR 
     SELECT zkv.ciscocuic_tbl.fld_callingpartynumber 
      FROM zkv.ciscocuic_tbl; 
END get_cdr_rs_phone; 
/

並執行你的程序

variable r refcursor; 

DECLARE 

BEGIN 

    get_cdr_rs_phone (:r); 
END; 
/

print r 

更新1

如果你的程序是做只有一個選擇,你可以做到這一點使用功能它返回sys_refcursor並且該函數可以從sql語句中執行。

創建功能

CREATE OR REPLACE FUNCTION get_cdr_rs_phone_func 
    RETURN sys_refcursor 
AS 
    out_cursor sys_refcursor; 
BEGIN 
    OPEN out_cursor FOR 
      SELECT zkv.ciscocuic_tbl.fld_callingpartynumber 
       FROM zkv.ciscocuic_tbl; 
    END get_cdr_rs_phone; 

    RETURN out_cursor; 
EXCEPTION 
    WHEN NO_DATA_FOUND 
    THEN 
     --raise error 

    WHEN OTHERS 
    THEN 
     --raise error 

END get_cdr_rs_phone_func; 
/

,並調用這個函數作爲

select get_cdr_rs_phone_func from dual; 
+0

@ polppan等待我會檢查出來並回復ü – vps

+0

我得到錯誤,當我創建過程像「8/14 PL/SQL:ORA-00923:未找到FROM關鍵字 7/9 PL/SQL:忽略SQL語句 「 – vps

+0

@vps您是如何創建程序的?編輯您的問題並粘貼代碼。 – user75ponic