[英]Error: subquery Returns more than one row
嗨,我一直在嘗試通過CallableStatement調用過程來選擇多個行。 當我嘗試將結果集填充到組合框中時,代碼將返回錯誤,如下所示。
Java錯誤:
java.sql.SQLException: Subquery returns more than 1 row
存儲過程:
CREATE DEFINER=`user_name`@`%` PROCEDURE `GET_USER_PROFILE`(
IN p_user_id VARCHAR(150),
IN p_role VARCHAR(150),
OUT p_user_data VARCHAR(200),
OUT p_city VARCHAR(150),
OUT p_state VARCHAR(150),
OUT p_country VARCHAR(150),
OUT q_Msg VARCHAR(150))
BEGIN
DECLARE available INT DEFAULT 0;
SET p_city = (SELECT CITY FROM countries GROUP BY CITY);
SET p_state = (SELECT STATE FROM countries GROUP BY STATE);
SET p_country = (SELECT COUNTRY FROM countries GROUP BY COUNTRY);
SELECT COUNT(EMAIL) INTO available FROM STAFF_PROFILE WHERE EMAIL = p_user_id AND ROLE = p_role;
IF(available=1) THEN
SET p_user_data = (SELECT * FROM STAFF_PROFILE WHERE EMAIL = p_user_id AND ROLE = p_role );
else
SET q_Msg = 'USER_LOGGED_FIRST';
END IF;
END
@DaveHowes和@Ilya是正確的,問題出在您的SQL語句中。
可以說,在您的國家/地區表中包含以下內容:
city state country 'New York' 'New York' 'USA' 'Los Angeles' 'California' 'USA' 'Chicago' 'Illinois' 'USA' 'Ottawa' '' 'Canada'
現在,如果我們從您的示例中獲取您的子查詢:
SELECT city FROM countries GROUP BY city
會返回:
city 'New York' 'Los Angeles' 'Chicago' 'Ottawa'
您嘗試將多個結果分配給varchar,因此會出現異常“子查詢返回多於1行”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.