Sql 创建存储过程编译错误
我试图在oracle中创建一个存储过程,但每次尝试将其添加到数据库时,都会收到一个错误,即Sql 创建存储过程编译错误,sql,database,oracle,stored-procedures,Sql,Database,Oracle,Stored Procedures,我试图在oracle中创建一个存储过程,但每次尝试将其添加到数据库时,都会收到一个错误,即procedure created with complication errors 我无法执行它(也会出错)。我想我的实际程序出了问题,但我想不出来。以下是我正在尝试创建的过程: CREATE PROCEDURE SPBILL @CLIENT_ID VARCHAR2(6) AS BEGIN SELECT C.CLIENT_NAME, B.ROOM_ID, R.ROOM_COST, T.TREAT
procedure created with complication errors
我无法执行它(也会出错)。我想我的实际程序出了问题,但我想不出来。以下是我正在尝试创建的过程:
CREATE PROCEDURE SPBILL @CLIENT_ID VARCHAR2(6)
AS
BEGIN
SELECT C.CLIENT_NAME, B.ROOM_ID, R.ROOM_COST, T.TREAT_NAME, T.TREAT_COST, (ROOM_COST*(B_END_DATE-B_START_DATE)+TREAT_COST) AS INVOICE
FROM CLIENTS C, ROOMS R, TREATMENTS T, BOOKING B, PRESCRIPTION P
WHERE C.CLIENT_ID=B.CLIENT_ID
AND R.ROOM_ID=B.ROOM_ID
AND B.CLIENT_ID=P.CLIENT_ID
AND P.TREAT_ID=T.TREAT_ID
AND C.CLIENT_ID=@CLIENT_ID
END;
试试下面这样
CREATE PROCEDURE SPBILL (CLIENT_ID VARCHAR2)
AS
BEGIN
SELECT C.CLIENT_NAME, B.ROOM_ID, R.ROOM_COST, T.TREAT_NAME, T.TREAT_COST, (ROOM_COST*(B_END_DATE-B_START_DATE)+TREAT_COST) AS INVOICE
FROM CLIENTS C, ROOMS R, TREATMENTS T, BOOKING B, PRESCRIPTION P
WHERE C.CLIENT_ID=B.CLIENT_ID
AND R.ROOM_ID=B.ROOM_ID
AND B.CLIENT_ID=P.CLIENT_ID
AND P.TREAT_ID=T.TREAT_ID
AND C.CLIENT_ID= CLIENT_ID
END;
这一定很愚蠢,但我认为这就是您声明变量
@CLIENT\u ID
您是否尝试过这样声明变量DELCARE@CLIENT\u ID VARCHAR2(6)
查看此链接是否检查select语句是否运行正常?@DevelopmentIsMyPassion是的,它确实运行数据库中的客户端id类型是什么?@user311230如果删除最后一个And子句is和C.Client\u id=Client\u id,然后尝试创建进程,会发生什么again@user3112130同时尝试删除客户端ID VARCHAR2(6)再创建一个过程你甚至可以用一个select语句创建一个简单的过程吗?您确定您的查询没有引发任何错误吗?@DevelopmentIsMyPassion参数不应具有
(6)
,这仅适用于变量声明。