使用另一个过程调用一个过程

问题描述 投票:0回答:1

我正在尝试使用 Oracle 中的另一个过程调用两个过程。 这是我正在使用的查询:

CREATE OR REPLACE PROCEDURE p_reproc_tickets(p_Dta_Processo IN OUT DATE,
                           p_Cod_Loja_Ini     IN OUT NUMBER,
                           p_Status   OUT VARCHAR2,
                           p_Retorno  OUT VARCHAR2) IS
    l_Cod_loja number;
    l_p_Data date;
    l_p_Mes number;     
          
    BEGIN

    l_Cod_loja := p_Cod_Loja_Ini;
    l_p_Data := p_Dta_Processo;
    l_p_Mes := To_Number('1' || To_Char(Trunc(p_Dta_Processo), 'RRMM'));

    p_Qtd_ticket_dia(l_Cod_loja, l_p_Data, l_p_Data);  
               
    P_Qtd_ticket_mes(l_Cod_loja, l_p_Mes); 

EXCEPTION
    WHEN OTHERS THEN
        p_Status  := '0';
        p_Retorno := SQLERRM;
    END;

我只希望过程 p_reproc_tickets 能够执行过程 p_Qtd_ticket_dia 和 p_Qtd_ticket_mes。这就是完整的错误:

Error: PLS-00201: identifier 'P_QTD_TICKET_DIA' must be declared
Line: 17
Text: p_Qtd_ticket_dia(l_Cod_loja, l_p_Data, l_p_Data);

Error: PL/SQL: Statement ignored
Line: 17
Text: p_Qtd_ticket_dia(l_Cod_loja, l_p_Data, l_p_Data);

Error: PLS-00201: identifier 'P_QTD_TICKET_MES' must be declared
Line: 19
Text: p_Qtd_ticket_mes(l_Cod_loja, l_p_mes);

Error: PL/SQL: Statement ignored
Line: 19
Text: p_Qtd_ticket_mes(l_Cod_loja, l_p_mes);
oracle plsql procedure
1个回答
0
投票

感谢所有试图帮助我的人。

过程 p_Qtd_ticket_dia 和 p_Qtd_ticket_mes 仅存在于包内。所以我只是添加了这样的包名称:

CREATE OR REPLACE PROCEDURE p_reproc_tickets(p_Dta_Processo IN OUT DATE,
                           p_Cod_Loja_Ini     IN OUT NUMBER,
                           p_Status   OUT VARCHAR2,
                           p_Retorno  OUT VARCHAR2) IS
    l_Cod_loja number;
    l_p_Data date;
    l_p_Mes number;     
          
    BEGIN

    l_Cod_loja := p_Cod_Loja_Ini;
    l_p_Data := p_Dta_Processo;
    l_p_Mes := To_Number('1' || To_Char(Trunc(p_Dta_Processo), 'RRMM'));

    **etl.pk_vendas.**p_Qtd_ticket_dia(l_Cod_loja, l_p_Data, l_p_Data);  
               
    **etl.pk_vendas.**P_Qtd_ticket_mes(l_Cod_loja, l_p_Mes); 

EXCEPTION
    WHEN OTHERS THEN
        p_Status  := '0';
        p_Retorno := SQLERRM;
    END;
© www.soinside.com 2019 - 2024. All rights reserved.