sync
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
USE [HCITools]
|
||||
GO
|
||||
|
||||
IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Purge_Synchro_Label]') AND type in (N'P', N'PC'))
|
||||
DROP PROCEDURE [dbo].[Purge_Synchro_Label]
|
||||
GO
|
||||
|
||||
USE [HCITools]
|
||||
GO
|
||||
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
|
||||
CREATE PROCEDURE [dbo].[Purge_Synchro_Label]
|
||||
@in_debug int = null,
|
||||
@in_NbMonths int = 3
|
||||
AS
|
||||
/*=============================================================================
|
||||
|
||||
Explication du traitement realise par la SP
|
||||
-------------------------------------------
|
||||
Cette SP sert à supprimer les labels de plus de X jours
|
||||
|
||||
Contexte d'utilisation
|
||||
----------------------
|
||||
Cette SP est appelée par le job D93100 - Purge Synchro Label
|
||||
|
||||
Parametres
|
||||
----------
|
||||
@in_debug : non utilisé
|
||||
@in_NbMonths : nombre de mois glissant à conserver (3 par défaut)
|
||||
|
||||
|
||||
Creation : 28.10.16 / FLA
|
||||
|
||||
Modifications :
|
||||
|
||||
=============================================================================*/
|
||||
|
||||
set nocount on;
|
||||
|
||||
|
||||
/*------------------- Declaration des variables --------------------*/
|
||||
declare @MaxDate bigint,
|
||||
@Directory varchar (255),
|
||||
@Path varchar(500),
|
||||
@FullPath varchar(500)
|
||||
|
||||
/*------------ Affectation des parametres aux variables ------------*/
|
||||
|
||||
SET @MaxDate = CAST(CONVERT(nvarchar(30), DateAdd(mm,-@in_NbMonths,getdate()), 112)+'000000000' as bigint)
|
||||
SELECT @Path = HCIP_value FROM HCITools.dbo.HCI_PARAMS WHERE HCIP_key = 'LBLPATH'
|
||||
|
||||
/*-------------------------- Traitement ---------------------------*/
|
||||
BEGIN TRY
|
||||
|
||||
/* séléction de l'ensemble des répertoires commençant par 20, de format numérique et d'une taille de 17 */
|
||||
declare c_Directories cursor local forward_only static for
|
||||
SELECT DirectoryName FROM [dbo].[aps_Directory_Get_Directories] (@Path,'20*')
|
||||
where ISNUMERIC(DirectoryName) = 1
|
||||
AND LEN(DirectoryName) = 17
|
||||
|
||||
open c_Directories
|
||||
;
|
||||
FETCH NEXT FROM c_Directories
|
||||
into @Directory
|
||||
|
||||
/* Parcour des répertoires */
|
||||
while @@fetch_status = 0
|
||||
begin
|
||||
|
||||
/* Si le répertoire est un répertoire de plus de 3 mois alors on le supprime */
|
||||
IF CAST(@Directory as bigint) < @MaxDate
|
||||
BEGIN
|
||||
SET @FullPath = @Path + @Directory
|
||||
exec dbo.aps_Directory_Delete @path = @FullPath, @recursive=1
|
||||
END
|
||||
|
||||
FETCH NEXT FROM c_Directories
|
||||
into @Directory
|
||||
end
|
||||
|
||||
close c_Directories
|
||||
deallocate c_Directories
|
||||
|
||||
/*---------------------- Traitement des erreurs ----------------------*/
|
||||
END TRY
|
||||
BEGIN CATCH
|
||||
|
||||
/* Traitement des erreurs (avec RaiseError) */
|
||||
EXEC dbo.get_Error_Info @in_RaiseError = 1
|
||||
|
||||
END CATCH
|
||||
|
||||
|
||||
|
||||
GO
|
||||
|
||||
|
||||
Reference in New Issue
Block a user