在A中的begin和end之间直接写
begin
...
B;
...
end;

解决方案 »

  1.   

    jsnicle(js_nicle)兩個存儲過程A,B都是相互獨立的,在A中是否要對B定義,我按照你那樣做拉,可是不對,出現錯誤。
    請樓上的人繼續幫忙!
      

  2.   

    jsnicle(js_nicle) 说的对!你说不行看看有什么错误提示?a,b不在一个方案下?你的权限够吗?
      

  3.   

    A,B是在一个方案下。
    如果是在A中调用B,出现的错误是说,B没有定义。A中调用B,再A中直接写存储过程名:       BEGINB;END;
    不可实现,是否需要一个调用函数。
      

  4.   

    以下是两个用户scott和test各建一个过程,pro_Bd调用pro_A,
    执行过程如下,希望对你有帮助
    SQL> connect sys/oracle as sysdba
    Connected.
    SQL> create user test identified by test;User created.SQL> alter user test default tablespace users;User altered.SQL> grant connect,resource,create any procedure to test;Grant succeeded.SQL> connect scott/tiger;
    Connected.
    SQL> create or replace procedure pro_A
      2  as
      3  begin
      4  null;
      5  end;
      6  /Procedure created.SQL> grant execute procedure to test;
    grant execute procedure to test
          *
    ERROR at line 1:
    ORA-00990: missing or invalid privilege
    SQL> edi
    Wrote file afiedt.buf  1* grant execute pro_A to test
    SQL> /
    grant execute pro_A to test
          *
    ERROR at line 1:
    ORA-00990: missing or invalid privilege
    SQL> edi
    Wrote file afiedt.buf  1* grant execute on  pro_A to test
    SQL> /Grant succeeded.SQL> connect test/test
    Connected.
    SQL> create or replace procedure pro_B
      2  as
      3  begin
      4  scott.pro_A;
      5  end;
      6  /Procedure created.SQL> begin
      2  pro_B;
      3  end;
      4  /PL/SQL procedure successfully completed.
      

  5.   

    同一用户下的两个存储过程调用SQL> connect scott/tiger
    Connected.
    SQL> create or replace procedure pro_A
      2  as 
      3  begin
      4  null;
      5  end;
      6  /Procedure created.SQL> create or replace procedure pro_B
      2  as 
      3  begin
      4  pro_A;
      5  end;
      6  /Procedure created.SQL> begin
      2  pro_B;
      3  end;
      4  /PL/SQL procedure successfully completed.SQL>
      

  6.   

    回复人: cissy8272(藍天白雲) ( )
    把你的两个存储过程贴出来看看
      

  7.   

    CREATE OR REPLACE PROCEDURE "RIS_CUSTOMER_INSERT2" (
                             InPar      IN       VARCHAR2
                           ,ErrSt       OUT      VARCHAR2
                          ,RetSt        OUT       VARCHAR2 )asbegin      .
          .
          .--調用時傳進的字符串
    vardiaoyong:=concat(concat(vartwo,'$'),'0');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),CUR_REC.DELINO);
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),maxoiban);
    vardiaoyong:=concat(concat(vardiaoyong,'$'),CUR_REC."STORE");
    vardiaoyong:=concat(concat(vardiaoyong,'$'),CUR_REC.OKANA);
    vardiaoyong:=concat(concat(vardiaoyong,'$'),CUR_REC.ONAME);
    vardiaoyong:=concat(concat(vardiaoyong,'$'),CUR_REC.OTELNO);
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),CUR_REC.OZIPCD);
    vardiaoyong:=concat(concat(vardiaoyong,'$'),CUR_REC.OADDRESS1);
    vardiaoyong:=concat(concat(vardiaoyong,'$'),CUR_REC.OADDRESS2);
    vardiaoyong:=concat(concat(vardiaoyong,'$'),CUR_REC.OADDRESS3);
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'0');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),to_date(CUR_REC.SALESDATE));
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'0');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'0');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'0');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'0');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'0');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'');
    vardiaoyong:=concat(concat(vardiaoyong,'$'),CUR_REC.IKANA);
    vardiaoyong:=concat(concat(vardiaoyong,'$'),CUR_REC.INAME);
    vardiaoyong:=concat(concat(vardiaoyong,'$'),CUR_REC.ITELNO);
    vardiaoyong:=concat(concat(vardiaoyong,'$'),sysdate);
    vardiaoyong:=concat(concat(vardiaoyong,'$'),varstUID);
    vardiaoyong:=concat(concat(vardiaoyong,'$'),sysdate);
    vardiaoyong:=concat(concat(vardiaoyong,'$'),varstUID);
    vardiaoyong:=concat(concat(vardiaoyong,'$'),'1');----------------------------------------------以上是要从这里传到RIS_CUSTOMER_INFO_UPDATE--調用其他存儲過程RIS_CUSTOMER_INFO_UPDATE;            .
                .
                .         
    end RIS_CUSTOMER_INSERT2;
            
      

  8.   

    RIS_CUSTOMER_INFO_UPDATE  的过程不在 RIS_CUSTOMER_INSERT2 中存在。出错信息:
    ‘RIS_CUSTOMER_INFO_UPDATE’の呼出しで、引数の数または型が正しくありません。我的系统是日文所以错误也是日文的,翻译过来就是:参数沒有形式。
      

  9.   

    被调用的存储过程(我没理解错的话是RIS_CUSTOMER_INFO_UPDATE)的参数是怎么定义的,你传入的参数又是怎么写的?