oracle - 从另一个存储过程oracle调用存储过程

标签 oracle stored-procedures plsql compiler-errors pls-00103

我们如何从另一个存储过程中调用存储过程?
下面是我尝试从另一个存储过程调用存储过程的代码,但是编译时出现错误

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.

最佳答案

代替

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);

关于oracle - 从另一个存储过程oracle调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33430518/

相关文章:

r - 将 R 连接到 Oracle 数据库/服务器(ROracle、RODBC...)

mysql - 使用动态选择mysql存储过程的列

sql - 如何在 PL SQL 中创建日期开始和结束日期

sql-server - 输出使用动态 PL/SQL 执行的 SELECT 的结果

plsql - pl sql 中 while 循环出错

php - 拉出 Oracle CLOB 与 VARCHAR2 不同吗?

sql - 在 Oracle 中为 varchar2 字段创建序列

oracle - oracle 11g中生成样本数据

java - 如何在java中调用带有结果集、输入、输出参数的SQL Server存储过程?

php - 调用存储过程两次返回相同的结果,为什么?