[英]I keep getting error ORA-01422, ORA-06512
I keep getting error ORA-01422: exact fetch returns more than requested number of rows. 我不断收到错误ORA-01422:确切的提取返回的数据超过了请求的行数。 ORA-06512: at "CM420A07.ZIP_CODE_SALES_WINNER", line 6. I cannot figure out exactly what is going wrong. ORA-06512:在“ CM420A07.ZIP_CODE_SALES_WINNER”的第6行。我无法弄清楚到底出了什么问题。
CREATE OR REPLACE FUNCTION ZIP_CODE_SALES_WINNER
RETURN VARCHAR
IS
zipWinner VARCHAR2(5);
BEGIN
SELECT C.zip_code INTO zipWinner
FROM SALE S JOIN CUSTOMER C
ON S.cust_ID = C.cust_ID
GROUP BY C.zip_code
HAVING COUNT(*) = (
SELECT MAX(COUNT(*))
FROM SALE S JOIN CUSTOMER C
ON S.cust_ID = C.cust_ID
GROUP BY C.zip_code);
RETURN zipWinner;
END;
/
SELECT ZIP_CODE_SALES_WINNER FROM DUAL;
Your query returns more than one value. 您的查询返回多个值。
If you do not care which zipcode will be selected if there is more than one just add rownum=1 to the query to get exactly one row: 如果您不关心如果有多个邮政编码,将选择哪个邮政编码,只需在查询中添加rownum = 1即可获得一行:
SELECT zip_code INTO zipWinner FROM (
SELECT C.zip_code
FROM SALE S JOIN CUSTOMER C
ON S.cust_ID = C.cust_ID
GROUP BY C.zip_code
HAVING COUNT(*) = (
SELECT MAX(COUNT(*))
FROM SALE S JOIN CUSTOMER C
ON S.cust_ID = C.cust_ID
GROUP BY C.zip_code))
WHERE rownum =1;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.