CREATE FUNCTION CHERCHER
(ID VARCHAR(36), USERS VARCHAR(250), PERMS VARCHAR(250))
RETURNS INTEGER
BEGIN ATOMIC
DECLARE ALLUSERS VARCHAR(250);
DECLARE ALLPERMS VARCHAR(250);
DECLARE FIRST INTEGER;
DECLARE CURID VARCHAR(36);
DECLARE NEWID VARCHAR(36);
DECLARE GR INTEGER;
DECLARE PE VARCHAR(250);
DECLARE US VARCHAR(250);
DECLARE v_sqlstatus INTEGER DEFAULT 0;
DECLARE CC CURSOR FOR
SELECT GRANT, PERMISSION, USER
FROM ACLS
WHERE ACLS.ID = CURID
ORDER BY POS;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET v_sqlstatus = 1;
SET ALLUSERS = '%' || USERS || '%';
SET ALLPERMS = '%' || PERMS || '%';
SET FIRST = 1;
SET CURID = ID;
WHILE CURID IS NOT NULL DO
OPEN CC;
REPEAT
FETCH FROM CC INTO GR, PE, US;
IF ALLUSERS LIKE ('%' || US || '%') AND ALLPERMS LIKE ('%' || PE || '%') THEN
CLOSE CC;
RETURN GR;
END IF;
UNTIL (v_sqlstatus = 1) END REPEAT;
END WHILE;
CLOSE CC;
SELECT parentid INTO newid FROM hierarchy WHERE hierarchy.id = curid;
IF FIRST = 1 AND NEWID IS NULL THEN
SELECT versionableid INTO newid FROM versions WHERE versions.id = curid;
END IF;
SET FIRST = 0;
SET CURID = NEWID;
RETURN 0;
END
An unexpected token "DECLARE CC CURSOR FOR
SELECT GRA" was found following "
". Expected tokens may include: "<space>".. SQLCODE=-104, SQLSTATE=42601, DRIVER=4.8.86
Partager