Oracle存储过程问题-输入和输出变量是无效标识符

Oracle存储过程问题-输入和输出变量是无效标识符,oracle,stored-procedures,plsql,Oracle,Stored Procedures,Plsql,我试图在Oracle中创建一个存储过程,当我运行命令SQL>start g:\Oracle\totalsales.SQL时,它显示了如下所示的错误 ERROR at line 6: ORA-06550: line 6, column 47: PL/SQL: ORA-00904: "CID": invalid identifier ORA-06550: line 6, column 4: PL/SQL: SQL Statement ignored ORA-06550: line 20, colum

我试图在Oracle中创建一个存储过程,当我运行命令SQL>start g:\Oracle\totalsales.SQL时,它显示了如下所示的错误

ERROR at line 6:
ORA-06550: line 6, column 47:
PL/SQL: ORA-00904: "CID": invalid identifier
ORA-06550: line 6, column 4:
PL/SQL: SQL Statement ignored
ORA-06550: line 20, column 3:
PLS-00201: identifier 'TOT' must be declared
ORA-06550: line 20, column 3:
PL/SQL: Statement ignored
这是我的存储过程代码。请看一看,并向我建议我遗漏的要点

CREATE OF REPLACE PROCEDURE TotalSales (CID IN NUMBER, TOT OUT NUMBER)
IS
    DECLARE
        P Sales.Price%TYPE;
        T NUMBER(10,2) := 0;

        CURSOR CUR_SALES IS
            SELECT Price FROM Sales WHERE EmployeeID = CID;

    BEGIN
        OPEN CUR_SALES;
        LOOP
            FETCH CUR_SALES INTO P;
            IF CUR_SALES%ROWCOUNT = 0 THEN
                RAISE_APPLICATION_ERROR(-20020, 'No data found.');
            END IF;
            EXIT WHEN CUR_SALES%NOTFOUND;
            T := T + P;
        END LOOP;
        CLOSE CUR_SALES;

        TOT := T;

    EXCEPTION
        WHEN OTHERS THEN
        RAISE_APPLICATION_ERROR(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);

END TotalSales;
/
改变

CREATE OF REPLACE

:


并删除声明。IS隐式标记DECLARE块的开始。如果你想保留它,你需要用一个额外的结尾来关闭它,而且它还需要跟随开始。

Jens Krogsboell-浪费了我早上所有的时间看代码,每次读到as或…如此愚蠢。非常感谢你,我的朋友。让我试试这个。Jens Krogsboell-是的,声明不应该存在,事实上,强迫我尝试各种可能来修复变量错误:我知道-我们倾向于看到我们期望的:
CREATE OR REPLACE