Je lance avec succès une requête en sélectionnant les noms de colonnes d'une table dans le schéma d'information, cependant si j'exécute la même requête dans la procédure stockée pour l'utiliser avec un curseur, alors le schéma d'information est inconnu. Quelqu'un peut-il me dire la raison et aussi m'aider à résoudre le problème? grâce Voici la requêteinformation_schema inconnu dans une procédure
SELECT column_name
FROM information_schema.columns
WHERE table_schema = 'database_name'
AND table_name='Table_name';
Et voici la procédure.
DELIMITER $$
CREATE PROCEDURE build_column_names_str (INOUT column_list varchar(4000))
BEGIN
DECLARE v_finished INTEGER DEFAULT 0;
DECLARE v_column varchar(100) DEFAULT "";
-- declare cursor for column names
DEClARE column_cursor CURSOR FOR
SELECT column_name
FROM information_schema.columns
WHERE table_schema = 'database_name'
AND table_name='Table_name';
-- declare NOT FOUND handler
DECLARE CONTINUE HANDLER
FOR NOT FOUND SET v_finished = 1;
OPEN column_cursor;
get_column: LOOP
FETCH column_cursor INTO v_column;
IF v_finished = 1 THEN
LEAVE get_column;
END IF;
-- build column name list
SET column_list = CONCAT(v_column,",",column_list);
END LOOP get_column;
CLOSE column_cursor;
END$$
DELIMITER ;
SET @column_list = "";
CALL build_column_names_str(@column_list);
SELECT @column_list;
Merci
je courais la requête sur la table INFORMATION_SCHEMA. Cela semble être l'erreur. Merci –