2015-10-30 206 views
0

如何從另一個存儲過程調用存儲過程? 下面是我的代碼,其中我想從另一個調用存儲過程的存儲過程,但編譯給出錯誤從另一個存儲過程調用存儲過程oracle

CREATE OR REPLACE PROCEDURE USP_BookMovieTickets 
(
    p_SIId number, 
    p_NoOfTickets number, 
    p_TicketPrice number, 
    p_TicketTaxes number, 
    p_TicketTotal number, 
    p_EmailID varchar2 
) 
AS 
    v_tid_   NUMBER(10); 
    v_uid_   NUMBER(10); 
    v_ord_   VARCHAR2(8); 
    v_cnt   NUMBER(10); 
    v_insertticket NUMBER(10); 
    BEGIN 

    execute USP_INSERTTICKETINFO(p_SIId, p_NoOfTickets, p_TicketPrice, p_TicketTaxes, p_TicketTotal); 

    --EXECUTE IMMEDIATE USP_InsertTicketInfo; p_SIId, p_NoOfTickets, p_TicketPrice, p_TicketTaxes, p_TicketTotal 

    SELECT MAX(tid) INTO v_tid_ FROM bm_ticketinfo; 

    SELECT COUNT(*) INTO v_cnt FROM bm_userdetails WHERE emailid = p_emailid; 

    IF (v_cnt > 1) THEN 

     SELECT UId INTO v_uid_ 
     FROM bm_userdetails WHERE emailid = p_emailid; 

    ELSE 

     execute USP_InsertUserDetails(' ', p_EmailID, ' ', ' ') 

     --EXECUTE IMMEDIATE USP_InsertUserDetails; '',p_EmailID,'','' 

     SELECT MAX(UId) INTO v_uid_ FROM bm_userdetails; 

    END IF; 

    execute USP_InsertUserDetails(v_UId_, v_UId_, NULL, 17, 1,13, p_TicketTotal) 

    --EXECUTE IMMEDIATE v_Ord_; = USP_InsertBookingHistory v_UId_,v_TId_,NULL,17,1,13,p_TicketTotal 
    END; 
/

錯誤:

Error(16,9): PLS-00103: Encountered the symbol "USP_INSERTTICKETINFO" 
when expecting one of the following:  := . (@ % ; immediate The 
symbol ":=" was substituted for "USP_INSERTTICKETINFO" to continue. 

回答

1

相反

EXECUTE USP_INSERTTICKETINFO(p_SIId, p_NoOfTickets, p_TicketPrice,p_TicketTaxes,p_TicketTotal); 

只需使用

USP_INSERTTICKETINFO(p_SIId, p_NoOfTickets, p_TicketPrice,p_TicketTaxes,p_TicketTotal); 
+0

感謝兄弟工作:) – displayname

相關問題