Delimiter //
/**
	procédure stoké qui permet de vérifier si un champ requis 
	est bien renseigne (not empty et not null)
*/
/**	
	In tableName : le nom de la table
	In checkedFieldName : le nom du champ à vérifier
	In batchNumFieldName : le nom du champ pour le numéro de lot
	In batchnum : numero de lot
	In flagCountFieldName : le nom du champ totalisant les flags
	In flagMsgsFieldName : le nom du champ avec les messages de flag
    In lastStatusFieldName
    In lastStatus
*/

Drop Procedure if exists LOADER_CHECK_NULL//

Create Procedure LOADER_CHECK_NULL (
	In tableName varchar(70)
	, In checkedFieldName varchar(70)
	, In batchNumFieldName varchar(70)
	, In batchnum int
    , In flagCountFieldName varchar(70)
	, In flagMsgsFieldName varchar(70)
	, In lastStatusFieldName varchar(70)
	, In lastStatus varchar(150)
)
Begin
	main: begin

        call LOADER_BUILD_CHECK_BASE_QUERY (tableName, checkedFieldName,
                    batchNumFieldName, batchnum, 
                    flagCountFieldName, flagMsgsFieldName, 'Champ vide', 
                    lastStatusFieldName, lastStatus,
                    @query
        );

		set @query = Concat(@query, ' And Coalesce(`', checkedFieldName,'`, '''')='''' ');

		PREPARE stmt FROM @query;
		execute stmt			
			;
		Deallocate prepare stmt;
	end ;
End //
Delimiter ;