开发者

Help with MySQL incorrect number of arguments function error

开发者 https://www.devze.com 2023-02-06 07:01 出处:网络
I am getting an error in MySQL that is driving me crazy and I just can\'t figure out what\'s wrong. I makes the following call:

I am getting an error in MySQL that is driving me crazy and I just can't figure out what's wrong. I makes the following call:

开发者_C百科CALL ProfileUpdateProgress(107)

MySQL returns the error: "Incorrect number of arguments for FUNCTION ccms.fnGetProfileAlbumsPhotoCount; expected 2, got 1"

Now, as you can see in the code below, the call being made to that function is: fnGetProfileAlbumsPhotoCount(_profileId, profileUserId)

That's two arguments isn't it?? Why is it erroring?? I'm going mad!!

Database procs:

DELIMITER $$

DROP PROCEDURE IF EXISTS `ProfileUpdateProgress` $$
CREATE DEFINER=`root`@`%` PROCEDURE `ProfileUpdateProgress`(
        IN _profileId integer
    )
BEGIN

    SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;

    CALL ProfileUpdateProfileProgress(_profileId);

END $$

DELIMITER ;

which in turn calls:

DELIMITER $$

DROP PROCEDURE IF EXISTS `ProfileUpdateProfileProgress` $$
CREATE DEFINER=`root`@`%` PROCEDURE `ProfileUpdateProfileProgress`(IN _profileId int)
BEGIN

    -- Declarations here

    SELECT profileEyes, profileSex, profileHair, profileBustBand, profileBustCup, profileBirthCountry, profileProfession , profileAbout,
            profileBiography, fnGetProfilePhoto(_profileId, null) AS profilePhoto, fnGetProfileAlbumsPhotoCount(_profileId, profileUserId) AS albumPhotoCount,
            userAllowMultipleProfiles, profileIsPrimary, fnUserGetChildrenProfileCount(userId) AS ownerProfileCount
    INTO  _profileEyes, _profileSex, _profileHair, _profileBustBand, _profileBustCup, _profileBirthCountry, _profileProfession,
           _profileAbout, _profileBiography, _profilePhoto, _albumPhotoCount, _userAllowMultipleProfiles, _profileIsPrimary,
           _ownerProfileCount
    FROM profile
    INNER JOIN user
      ON profileUserId = userId
    WHERE profileId = _profileId;


    -- Other irrelevant code here


END $$

DELIMITER ;

and the function being called that errors looks like:

DELIMITER $$

DROP FUNCTION IF EXISTS `fnGetProfileAlbumsPhotoCount` $$
CREATE DEFINER=`root`@`%` FUNCTION `fnGetProfileAlbumsPhotoCount`(
  _profileId int,
  _userId int
) RETURNS int(11)
BEGIN

  DECLARE outProfileAlbumsPhotoCount int DEFAULT 0;

  -- Irrelvant Code

  RETURN outProfileAlbumsPhotoCount;

END $$

DELIMITER ;


Ah finally solved it. Another function called fnUserGetChildrenProfileCount in the select columns was the culprit as it too had a call to the fnGetProfileAlbumsPhotoCount() function and THAT call only had one argument, i.e. missing the second one.

0

精彩评论

暂无评论...
验证码 换一张
取 消