【问题标题】:Oracle PL/SQL: PLS-00306: wrong number or types of arguments in call to 'EMP_PROJECT'Oracle PL/SQL:PLS-00306:调用“EMP_PROJECT”时参数的数量或类型错误
【发布时间】:2013-10-28 02:07:55
【问题描述】:

创建以客户 ID 作为参数并显示的 PLSQL 过程
他/她的预订。对于每个预订展示房间号、酒店、开始日期和持续时间

create or replace procedure emp_project(CustID NUMBER)
is 
cursor ecur
is
select r.RoomNo, r.HotelName, StartDate, Duration
from Room r, Booking b
where r.RoomNo=b.RoomNo
and r.RoomNo = b.CustID;
begin
for erec in ecur loop
dbms_output.put_line(erec. RoomNo ||' '||erec. HotelName ||' '|| erec. Duration);
end loop;
end;
/

有人可以解释一下我的参数有什么问题吗? 运行时出现此错误:

SQL> exec emp_project
BEGIN emp_project; END;

     *ERROR at line 1:
    ORA-06550: line 1, column 7:
    PLS-00306: wrong number or types of arguments in call to 'EMP_PROJECT'
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored

【问题讨论】:

  • 如果有帮助,这里是我的表格:textdump.net/raw/3315textdump.net/raw/3316
  • 在我看来你实际上并没有提供参数。
  • 我正在尝试读取 CustID 作为输入,是 emp_project(CustID NUMBER) 的错误方法吗?
  • 您的过程需要一个参数(这显然没有错),但您对它的调用(exec emp_project... 等)似乎没有提供参数。 PL/SQL 不是我的菜,所以我不提供答案 - 只是观察。
  • exec emp_project(1) 成功了!你是对的,我期待一个提示或什么,我很傻。

标签: oracle plsql sqlplus


【解决方案1】:

您的过程需要一个参数(这显然没有错),但您对它的调用(exec emp_project... 等)似乎没有提供参数。

试试这个:

exec emp_project(1);     // or any appropriate value instead of 1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-24
    • 1970-01-01
    • 1970-01-01
    • 2015-09-09
    • 1970-01-01
    • 2018-03-22
    • 2014-10-01
    • 1970-01-01
    相关资源
    最近更新 更多