首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我得到: Error(8,1):PL/ SQL :忽略SQL语句,Error(8,52):PL/SQL: ORA-00936:缺少表达式中的表达式

我得到: Error(8,1):PL/ SQL :忽略SQL语句,Error(8,52):PL/SQL: ORA-00936:缺少表达式中的表达式
EN

Stack Overflow用户
提问于 2020-11-12 16:20:49
回答 2查看 62关注 0票数 0
代码语言:javascript
复制
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:缺失表达式

EN

回答 2

Stack Overflow用户

发布于 2020-11-12 16:34:58

您的代码有几个问题:

  • 在甲骨文中没有getdates()函数;如果您想要当前日期/时间,请使用sysdate (并且不需要select )。

这个过程有两个输入参数,但是插入需要3个参数;所以您需要在查询中增加一个输入参数;我假设您需要room_num in room.room_num%type

我还建议枚举insert的目标列。我对列名作了假设,并使用了与列名不同的参数名称。

所以:

代码语言:javascript
复制
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;
票数 0
EN

Stack Overflow用户

发布于 2020-11-12 16:44:29

在代码值和insert..select中有一点混合。其次,您尝试在没有参数->的情况下调用函数,这意味着getdate()根本没有成功编译。另一件事--为什么要传递RES_ID作为参数?这是预订表的PK列还是其他什么的。

并且-您调用ROOM_TYPE和ROOM_NUM -没有这样的输入参数。

我的建议是传递预订日期和预订日期,/this是应该返回的函数,我假设/而不是RES_ID,但它取决于数据模型。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64807679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档