toad创建存储过程执行失败
Creating stored procedure in toad failed to execute
我正在 Toad 中创建更新存储过程。当我执行查询时,它 returns 给我一个这样的错误。
1/51 PLS-00103: Encountered the symbol "(" when expecting one of the following:
:= . ) , @ % default character
这是我的代码:
我尝试将 AS
更改为 IN
但仍然出现相同的错误
Create Or Replace Procedure SP_EMPLOYEE_UPDATE(P_EMPLOYEEID VARCHAR2(20 CHAR),
P_EMPLOYEENAME VARCHAR2(100 CHAR),
P_STATUS VARCHAR2(50 CHAR),
P_SUPERIORID VARCHAR2(20 CHAR),
P_MANAGERSUPERIORID VARCHAR2(20 CHAR),
P_BFG VARCHAR2(10 CHAR),
P_DATEHIRED Date,
P_DESIGNATION VARCHAR2(100 CHAR),
P_JOBGRADE NUmber,
P_EMAILADDRESS VARCHAR2(100 CHAR),
P_PRODUCTLINE VARCHAR2(80 BYTE),
P_STATION VARCHAR2(80 BYTE),
P_MACHINE VARCHAR2(80 BYTE),
P_OPERATIONGROUP VARCHAR2(80 BYTE),
P_ISACTIVE VARCHAR2(1 BYTE))
AS
Begin
Update REFEMPLOYEES set REFEMPLOYEES.EMPLOYEENAME = P_EMPLOYEENAME , REFEMPLOYEES.STATUS= P_STATUS,REFEMPLOYEES.SUPERIORID = P_SUPERIORID,REFEMPLOYEES.MANAGERSUPERIORID= P_MANAGERSUPERIORID,REFEMPLOYEES.BFG = P_BFG,
REFEMPLOYEES.DATEHIRED = P_DATEHIRED,REFEMPLOYEES.DESIGNATION = P_DESIGNATION,REFEMPLOYEES.JOBGRADE = P_JOBGRADE,REFEMPLOYEES.EMAILADDRESS = P_EMAILADDRESS,REFEMPLOYEES.PRODUCTLINE = P_PRODUCTLINE,REFEMPLOYEES.STATION = P_STATION,
REFEMPLOYEES.MACHINE = P_MACHINE,REFEMPLOYEES.OPERATIONGROUP = P_OPERATIONGROUP,REFEMPLOYEES.ISACTIVE = P_ISACTIVE
Where REFEMPLOYEES.EMPLOYEEID = P_EMPLOYEEID;
End
您的代码应该如下所示:
CREATE OR REPLACE PROCEDURE SP_EMPLOYEE_UPDATE (
P_EMPLOYEEID VARCHAR2,
P_EMPLOYEENAME VARCHAR2,
P_STATUS VARCHAR2,
P_SUPERIORID VARCHAR2,
P_MANAGERSUPERIORID VARCHAR2,
P_BFG VARCHAR2,
P_DATEHIRED DATE,
P_DESIGNATION VARCHAR2,
P_JOBGRADE NUMBER,
P_EMAILADDRESS VARCHAR2,
P_PRODUCTLINE VARCHAR2,
P_STATION VARCHAR2,
P_MACHINE VARCHAR2,
P_OPERATIONGROUP VARCHAR2,
P_ISACTIVE VARCHAR2
) AS
BEGIN
UPDATE REFEMPLOYEES
SET
REFEMPLOYEES.EMPLOYEENAME = P_EMPLOYEENAME,
REFEMPLOYEES.STATUS = P_STATUS,
REFEMPLOYEES.SUPERIORID = P_SUPERIORID,
REFEMPLOYEES.MANAGERSUPERIORID = P_MANAGERSUPERIORID,
REFEMPLOYEES.BFG = P_BFG,
REFEMPLOYEES.DATEHIRED = P_DATEHIRED,
REFEMPLOYEES.DESIGNATION = P_DESIGNATION,
REFEMPLOYEES.JOBGRADE = P_JOBGRADE,
REFEMPLOYEES.EMAILADDRESS = P_EMAILADDRESS,
REFEMPLOYEES.PRODUCTLINE = P_PRODUCTLINE,
REFEMPLOYEES.STATION = P_STATION,
REFEMPLOYEES.MACHINE = P_MACHINE,
REFEMPLOYEES.OPERATIONGROUP = P_OPERATIONGROUP,
REFEMPLOYEES.ISACTIVE = P_ISACTIVE
WHERE
REFEMPLOYEES.EMPLOYEEID = P_EMPLOYEEID;
END SP_EMPLOYEE_UPDATE;
/
干杯!!
我正在 Toad 中创建更新存储过程。当我执行查询时,它 returns 给我一个这样的错误。
1/51 PLS-00103: Encountered the symbol "(" when expecting one of the following:
:= . ) , @ % default character
这是我的代码:
我尝试将 AS
更改为 IN
但仍然出现相同的错误
Create Or Replace Procedure SP_EMPLOYEE_UPDATE(P_EMPLOYEEID VARCHAR2(20 CHAR),
P_EMPLOYEENAME VARCHAR2(100 CHAR),
P_STATUS VARCHAR2(50 CHAR),
P_SUPERIORID VARCHAR2(20 CHAR),
P_MANAGERSUPERIORID VARCHAR2(20 CHAR),
P_BFG VARCHAR2(10 CHAR),
P_DATEHIRED Date,
P_DESIGNATION VARCHAR2(100 CHAR),
P_JOBGRADE NUmber,
P_EMAILADDRESS VARCHAR2(100 CHAR),
P_PRODUCTLINE VARCHAR2(80 BYTE),
P_STATION VARCHAR2(80 BYTE),
P_MACHINE VARCHAR2(80 BYTE),
P_OPERATIONGROUP VARCHAR2(80 BYTE),
P_ISACTIVE VARCHAR2(1 BYTE))
AS
Begin
Update REFEMPLOYEES set REFEMPLOYEES.EMPLOYEENAME = P_EMPLOYEENAME , REFEMPLOYEES.STATUS= P_STATUS,REFEMPLOYEES.SUPERIORID = P_SUPERIORID,REFEMPLOYEES.MANAGERSUPERIORID= P_MANAGERSUPERIORID,REFEMPLOYEES.BFG = P_BFG,
REFEMPLOYEES.DATEHIRED = P_DATEHIRED,REFEMPLOYEES.DESIGNATION = P_DESIGNATION,REFEMPLOYEES.JOBGRADE = P_JOBGRADE,REFEMPLOYEES.EMAILADDRESS = P_EMAILADDRESS,REFEMPLOYEES.PRODUCTLINE = P_PRODUCTLINE,REFEMPLOYEES.STATION = P_STATION,
REFEMPLOYEES.MACHINE = P_MACHINE,REFEMPLOYEES.OPERATIONGROUP = P_OPERATIONGROUP,REFEMPLOYEES.ISACTIVE = P_ISACTIVE
Where REFEMPLOYEES.EMPLOYEEID = P_EMPLOYEEID;
End
您的代码应该如下所示:
CREATE OR REPLACE PROCEDURE SP_EMPLOYEE_UPDATE (
P_EMPLOYEEID VARCHAR2,
P_EMPLOYEENAME VARCHAR2,
P_STATUS VARCHAR2,
P_SUPERIORID VARCHAR2,
P_MANAGERSUPERIORID VARCHAR2,
P_BFG VARCHAR2,
P_DATEHIRED DATE,
P_DESIGNATION VARCHAR2,
P_JOBGRADE NUMBER,
P_EMAILADDRESS VARCHAR2,
P_PRODUCTLINE VARCHAR2,
P_STATION VARCHAR2,
P_MACHINE VARCHAR2,
P_OPERATIONGROUP VARCHAR2,
P_ISACTIVE VARCHAR2
) AS
BEGIN
UPDATE REFEMPLOYEES
SET
REFEMPLOYEES.EMPLOYEENAME = P_EMPLOYEENAME,
REFEMPLOYEES.STATUS = P_STATUS,
REFEMPLOYEES.SUPERIORID = P_SUPERIORID,
REFEMPLOYEES.MANAGERSUPERIORID = P_MANAGERSUPERIORID,
REFEMPLOYEES.BFG = P_BFG,
REFEMPLOYEES.DATEHIRED = P_DATEHIRED,
REFEMPLOYEES.DESIGNATION = P_DESIGNATION,
REFEMPLOYEES.JOBGRADE = P_JOBGRADE,
REFEMPLOYEES.EMAILADDRESS = P_EMAILADDRESS,
REFEMPLOYEES.PRODUCTLINE = P_PRODUCTLINE,
REFEMPLOYEES.STATION = P_STATION,
REFEMPLOYEES.MACHINE = P_MACHINE,
REFEMPLOYEES.OPERATIONGROUP = P_OPERATIONGROUP,
REFEMPLOYEES.ISACTIVE = P_ISACTIVE
WHERE
REFEMPLOYEES.EMPLOYEEID = P_EMPLOYEEID;
END SP_EMPLOYEE_UPDATE;
/
干杯!!