DELIMITER $$

USE `spidd`$$

DROP PROCEDURE IF EXISTS `Import_cat`$$

CREATE PROCEDURE `Import_cat`(var_line NVARCHAR(200))
BEGIN
	
	DECLARE var_cat_id BIGINT;
	DECLARE var_gcat_cd CHAR(5);
	DECLARE var_cat_lb VARCHAR(32);
	DECLARE var_cat_cd VARCHAR(5);
	DECLARE var_cat_dt_deb DATETIME;
	DECLARE var_cat_dt_fin DATETIME;
	DECLARE var_cat_fg CHAR(1);
	DECLARE var_dem_id BIGINT;
	
	BEGIN 
		SET var_cat_id = (RTRIM(SUBSTRING(var_line, 1, 15))  );
		SET var_gcat_cd = RTRIM(SUBSTRING(var_line, 16, 5));
		SET var_cat_lb = RTRIM(SUBSTRING(var_line, 21, 32)) ;
		SET var_cat_cd = RTRIM(SUBSTRING(var_line, 53, 5));
		SET var_cat_dt_deb = STR_TO_DATE(NULLIF(RTRIM(SUBSTRING(var_line, 58, 10)), ''),'%d/%m/%Y');
		SET var_cat_dt_fin = STR_TO_DATE(NULLIF(RTRIM(SUBSTRING(var_line, 68, 10)), ''),'%d/%m/%Y');
		SET var_cat_fg = RTRIM(SUBSTRING(var_line, 78, 1));
		SET var_dem_id = (NULLIF(RTRIM(SUBSTRING(var_line, 79, 15)), '')  );
		UPDATE CAT SET GCAT_CD = var_gcat_cd,
								CAT_LB = var_cat_lb,
								CAT_CD = var_cat_cd, 
								CAT_DT_DEB = var_cat_dt_deb, 
								CAT_DT_FIN = var_cat_dt_fin, 
								CAT_FG = var_cat_fg,
								DEM_ID = var_dem_id,
								BL_MAJ = 1
							WHERE CAT_ID = var_cat_id;
		
		IF ROW_COUNT() = 0 THEN
		
			INSERT INTO CAT (CAT_ID, GCAT_CD, CAT_LB, CAT_CD, CAT_DT_DEB, CAT_DT_FIN, CAT_FG, DEM_ID)
					VALUES (var_cat_id, var_gcat_cd, var_cat_lb, var_cat_cd, var_cat_dt_deb, var_cat_dt_fin, var_cat_fg, var_dem_id);
		END IF;
		
		UPDATE CAT_SPORT SET CAT_LB = var_cat_lb,
								CAT_CD = var_cat_cd, 
								CAT_DT_DEB = var_cat_dt_deb, 
								CAT_DT_FIN = var_cat_dt_fin, 
								CAT_FG = var_cat_fg,
								BL_MAJ = 1
							WHERE CAT_SPORT_ID = var_cat_id;
		
		IF ROW_COUNT() = 0 THEN
		
				INSERT INTO CAT_SPORT (CAT_SPORT_ID, CAT_LB, CAT_CD, CAT_DT_DEB, CAT_DT_FIN, CAT_FG)
					VALUES (var_cat_id, var_cat_lb, var_cat_cd, var_cat_dt_deb, var_cat_dt_fin, var_cat_fg);
		END IF;
	END; 	
END$$

DELETE FROM GRILLE_RENCONTRE$$

DELIMITER ;