首页 > 解决方案 > 为什么我收到错误消息 PLS-0382:表达式类型错误

问题描述

我有点困惑,我不知道我的功能有什么问题。

FUNCTION GET_USERS_WITHOUT_ADMINS(busyUserId IN NUMBER)
   RETURN SYS_REFCURSOR IS 
    rc  SYS_REFCURSOR;
    /*getUsersWithoutAdmins*/
BEGIN
IF (busyUserId) THEN
OPEN rc FOR
    SELECT u.UserID,
      CONCAT(CONCAT(u.Surname, ' '),u.Lastname) AS  UserName,      
      u.Mobile,
      u.Email,
      u.Type,
      u.Status, 
      COUNT(u.UserID) as Count, 
      ur.Roles
    FROM users u 
    INNER JOIN user_roles ur 
    ON u.User_roleID = ur.id
    WHERE u.User_roleID NOT IN (1) 
    AND u.Surname IS NOT NULL 
    AND u.Lastname IS NOT NULL
    GROUP BY u.UserID,u.Mobile, u.Email,u.Type, u.Status,  ur.Roles,u.Surname,u.Lastname;
ELSE 
OPEN rc FOR
    SELECT u.UserID,
       CONCAT(CONCAT(u.Surname, ' '),u.Lastname) AS  UserName,
       u.Mobile,
       u.Email,
       u.Type,
       u.Status, 
       COUNT(u.UserID) as Count, 
       ur.Roles  
    FROM users u 
    INNER JOIN user_roles ur 
    ON u.User_roleID = ur.id 
    WHERE u.Surname IS NOT NULL 
    AND u.Lastname IS NOT NULL 
    GROUP BY u.UserID,u.Mobile, u.Email,u.Type, u.Status,  ur.Roles,u.Surname,u.Lastname;
END IF;
RETURN rc;
END GET_USERS_WITHOUT_ADMINS;

我认为错误来自bussyUserID,我尝试从更改IFCASE

CASE WHEN bussyUserID THEN 

.....

但不知何故,我再次收到相同的错误消息。有谁知道错误来自哪里?我在哪里犯错了?

标签: oraclefunctionplsql

解决方案


推荐阅读