SET SERVEROUTPUT ON;
Create or replace procedure add_services (RES_ID IN Reservation.Res_ID %TYPE, ROOM_ID IN ROOM.ROOM_ID%TYPE)
IS
BEGIN
Insert into Reservation values(RES_ID, ROOM_TYPE, select getdates(), ROOM_NUM);
Commit;
End;忽略
错误(8,1):PL/ SQL : SQL语句。错误(8,52):PL/SQL: ORA-00936:缺失表达式
发布于 2020-11-12 16:34:58
您的代码有几个问题:
getdates()函数;如果您想要当前日期/时间,请使用sysdate (并且不需要select )。这个过程有两个输入参数,但是插入需要3个参数;所以您需要在查询中增加一个输入参数;我假设您需要room_num in room.room_num%type。
我还建议枚举insert的目标列。我对列名作了假设,并使用了与列名不同的参数名称。
所以:
create or replace procedure add_services (
p_res_id in reservation.res_id%type,
p_room_type in room.room_type%type,
p_room_num in room.room_num%type
)
is
begin
insert into reservation(res_id, room_type, room_date, room_num)
values(p_res_id, p_room_type, sysdate, p_room_num);
commit;
end;发布于 2020-11-12 16:44:29
在代码值和insert..select中有一点混合。其次,您尝试在没有参数->的情况下调用函数,这意味着getdate()根本没有成功编译。另一件事--为什么要传递RES_ID作为参数?这是预订表的PK列还是其他什么的。
并且-您调用ROOM_TYPE和ROOM_NUM -没有这样的输入参数。
我的建议是传递预订日期和预订日期,/this是应该返回的函数,我假设/而不是RES_ID,但它取决于数据模型。
https://stackoverflow.com/questions/64807679
复制相似问题