sql >> Database >  >> RDS >> Mysql

Fout bij het declareren van integer-variabele in de MySQL-opgeslagen functie

Er waren enkele syntaxisfouten -

Een daarvan is - alle declaraties moeten aan het begin van de BEGIN...END-clausule staan .

DELIMITER $

DROP FUNCTION IF EXISTS get_string_class$
CREATE FUNCTION get_string_class(mystring VARCHAR(15))

RETURNS VARCHAR(15)
READS SQL DATA
BEGIN

DECLARE i INT;
DECLARE segment VARCHAR(15);
DECLARE String_Class VARCHAR(15);
DECLARE mystringlength INT;

SET i = 2;
SET mystringlength = LENGTH(mystring);
SET String_Class = NULL;

WHILE i <= mystringlength DO

   SET segment = LEFT(mystring, i);

   SET String_Class = (SELECT String_Class FROM string_class_list WHERE String_Begins = segment);

   IF (SELECT FOUND_ROWS()) = 1 THEN
      RETURN String_Class;
   END IF;

   SET i = i + 1;

END WHILE;

RETURN String_Class;

END$
DELIMITER ;


  1. Database-ontwerpconcepten met SQL Server Management Studio (SSMS) deel 1

  2. Een Oracle-database migreren van AWS EC2 naar AWS RDS, deel 3

  3. 5 banen waarvoor Microsoft-toegang is vereist

  4. Oracle verwijdert rijen uit meerdere tabellen