错误报告:索引处缺少 IN 或 OUT 参数: : 1. 我该如何解决?
Posted
技术标签:
【中文标题】错误报告:索引处缺少 IN 或 OUT 参数: : 1. 我该如何解决?【英文标题】:Error report: Missing IN or OUT parameter at index: : 1. How can I fix that? 【发布时间】:2013-11-15 03:15:07 【问题描述】:set serveroutput on;
Declare
cursor emp_cursor is select orderline.orderid, sum(product.productstandardprice * orderline.orderedquantity) AS price from orderline, Product WHERE orderline.Productid = Product.Productid group by orderline.orderid;
emp_row emp_cursor%rowtype;
Begin
open emp_cursor;
if (price < 2,000)
then price := 2,000 * 0.15:
else if (price >= 2,000)
then price := 2,000 * 0.20;
loop
fetch emp_cursor into emp_row;
exit when emp_cursor%notfound;
dbms_output.put_line(emp_row.orderid || ' ' || emp_row.price);
end loop;
close emp_cursor;
End;
【问题讨论】:
0.15之后应该是分号 价格确实存在。它是在 Declare 下的语句中作为别名创建的。在我开始放置 if 语句之前,我检查了程序以确保它可以工作并且它确实有效。只有在放入 if 语句后,我才开始遇到问题。 【参考方案1】:-
0.15 之后有一个冒号。那应该是一个分号。
数字文字不应嵌入逗号。
您的
IF
语句出现在您从游标中获取任何内容之前。或许您希望该语句位于 EXIT
语句之后的循环内?
您的IF
语句引用了一个不存在的变量price
。或许你想参考emp_row.price
?
IF
语句的语法是IF ... THEN ... ELSIF ... END IF
。您缺少 END IF
并且您想要将 else if
合并为一个 elsif
或拥有两个单独的 IF
语句和两个单独的 END IF
语句。
可能还有我没有看到的其他语法错误。发布 DDL 以创建表、发布 DML 以填充数据以及预期结果总是有帮助的。这使我们能够在我们的系统上进行测试,并更有可能捕获所有错误。
【讨论】:
【参考方案2】:If-else 语句以END IF;
结尾
尝试将其放入并运行。
【讨论】:
【参考方案3】:希望这会有所帮助...
Declare
cursor emp_cursor is select orderline.orderid, sum(product.productstandardprice * orderline.orderedquantity) AS price from orderline, Product WHERE orderline.Productid = Product.Productid group by orderline.orderid;
emp_row emp_cursor%rowtype;
Begin
open emp_cursor;
loop
fetch emp_cursor into emp_row;
exit when emp_cursor%notfound;
if emp_row.price < 2000 then
emp_row.price := 2000 * 0.15;
elsif emp_row.price >= 2000 then
emp_row.price := 2000 * 0.20;
end if;
dbms_output.put_line(emp_row.orderid || ' ' || emp_row.price);
end loop;
close emp_cursor;
End;
【讨论】:
以上是关于错误报告:索引处缺少 IN 或 OUT 参数: : 1. 我该如何解决?的主要内容,如果未能解决你的问题,请参考以下文章
线程“主”java.sql.SQLException 中的异常:索引处缺少 IN 或 OUT 参数:: 25 这个错误是啥意思
java.sql.SQLException:索引处缺少 IN 或 OUT 参数:: 1
以下错误是啥意思:java.sql.sqlexception 在索引处缺少输入或输出参数