Oracle 如何调用过程

Oracle 如何调用过程,oracle,plsql,oracle11g,Oracle,Plsql,Oracle11g,编辑: CREATE OR REPLACE PROCEDURE GET_SINGLE_CUSTOMERINFO( P_ID IN NUMBER, P_AGE OUT NUMBER,

编辑:

CREATE OR REPLACE PROCEDURE GET_SINGLE_CUSTOMERINFO(
                                                    P_ID               IN     NUMBER,
                                                    P_AGE                 OUT NUMBER,
                                                    P_OCCUPATION          OUT VARCHAR2,
                                                    P_LASTSTATEMENT       OUT VARCHAR2
                                                   ) AS
BEGIN
    SELECT AGE,
           OCCUPATION,
           LASTSTATEMENT
      INTO P_AGE,
           P_OCCUPATION,
           P_LASTSTATEMENT
      FROM crossallcustomers
     WHERE crossallcustomers.id = P_ID;
END;
第1行错误:ORA-06550:第1行第7列:PLS-00306:错误号码 或调用“GET_SINGLE_CUSTOMERINFO”ORA-06550时的参数类型: 第1行第7列:PL/SQL:语句被忽略*


通过只传递两个参数,您正在调用一个具有四个参数且没有默认值的过程

以下是如何调用过程的示例:

SET SERVEROUTPUT ON;
SQL> VARIABLE P_ID NUMBER;
SQL> EXEC GET_SINGLE_CUSTOMERINFO(123,:P_ID);
或者,使用变量:

declare
    V_AGE              NUMBER;    
    V_OCCUPATION       VARCHAR2(10);
    V_LASTSTATEMENT    VARCHAR2(10);
begin
    GET_SINGLE_CUSTOMERINFO (
                                P_ID               => 1              ,
                                P_AGE              => V_AGE          ,
                                P_OCCUPATION       => V_OCCUPATION   ,
                                P_LASTSTATEMENT    => V_LASTSTATEMENT
                            );
end;

有什么问题吗?你尝试过什么?PLS-00306:调用过程中参数的数量或类型错误当我调用过程时,很难在没有看到的情况下说出代码的错误。请发布您的代码。创建或替换过程GET_SINGLE_CUSTOMERINFO(P_ID IN NUMBER,P_AGE OUT NUMBER,P_OCCUPATION OUT VARCHAR2,P_LASTSTATEMENT OUT VARCHAR2)作为开始选择年龄,职业,LASTSTATEMENT进入P_年龄,P_OCCUPATION,来自crossallcustomers的P_LASTSTATEMENT,其中crossallcustomers.id=P_id;结束;如果您在过程调用中遇到问题,我们需要查看您用于调用过程的代码,而不仅仅是过程本身。如果答案适合您,请接受它。这是一种既可以将问题标记为已结束,又可以表示感谢的方式。您可以告诉我oracle 11g的书籍或网站名称,以便更多的实践和良好的知识往往被低估,但IMHO是一个很好的起点。即使对于@Aleksej,了解它的人也很少低估Oracle文档:)。事实上,Oracle DB文档是最好的产品文档示例之一。唉,人们不知道在哪里可以找到它们,也不知道如何使用它们。@APC事实上,正如我所说的“查看Oracle文档”,下面的评论(如果我理解得很好的话)是对不同内容的请求
SQL> variable V_AGE           number;
SQL> variable V_OCCUPATION    varchar2(10);
SQL> variable V_LASTSTATEMENT varchar2(10);
SQL> exec GET_SINGLE_CUSTOMERINFO (P_ID => 1, P_AGE => :V_AGE, P_OCCUPATION => :V_OCCUPATION , P_LASTSTATEMENT => :V_LASTSTATEMENT );

PL/SQL procedure successfully completed.