1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| CREATE PROCEDURE [dbo].ps_tap_import_GLA
-- importe les données du fichier du grand livre analytique dans la table après différents contrôles
-- n'est lancée que s'il y a un fichier à intégrer
@cheminFichier varchar(100),
@nomFichier varchar(100)
AS
declare @query varchar(2000)
declare @result int
begin
-- On créé la table Temporaire de destination
if exists (select uid from tempdb.dbo.sysobjects where name = '##GL_ANALYTIQUE')
drop table ##GL_ANALYTIQUE
CREATE TABLE ##GL_ANALYTIQUE (
num_mvt varchar(255) NULL,
num_ecriture varchar (255) NULL ,
compte_ana_12 varchar (255) NULL ,
compte_gene varchar (255) NULL ,
code_uc_aff varchar (255) NULL ,
code_uc_emet varchar (255) NULL ,
debit varchar (255) NULL ,
credit varchar (255) NULL ,
quantite varchar (255) NULL ,
code_journal varchar (255) NULL ,
complement_uc varchar (255) NULL ,
ref_externe varchar (255) NULL ,
exercice_comptable varchar (255) NULL ,
mois_comptable varchar (255) NULL ,
code_periode varchar (255) NULL ,
date_enregistrement varchar (255) NULL ,
lib_ecr varchar(255) NULL
)
set @nomFichier=@cheminFichier+@nomFichier
-- On insère les données du fichier dans la table temporaire
set @query='bulk insert dbo.##GL_ANALYTIQUE from ''' + @nomFichier + ''''
set @query=@query+' with ('
set @query=@query+'fieldterminator=''\t'','
set @query=@query+'firstrow=2,'
set @query=@query+'keepnulls)'
print @query
execute (@query)
-- On ajoute un champ flag à la table temporaire
print 'ajout flag à la table'
ALTER TABLE dbo.##GL_ANALYTIQUE ADD flag1 varchar(1) NULL
-- On contrôle les lignes
print 'contrôle des lignes'
-- longueur de champs
-- si l'update suivant est enlevé, la table est modifiée, tout va bien
-- sinon, la table n'est pas modifié, et la colonne flag1 n'existe pas !!!!
update dbo.##GL_ANALYTIQUE
set flag1='1'
where len(num_mvt) > 9
or len(compte_gene) > 8
or len(code_journal) > 3
or len(complement_uc) > 5
or len(ref_externe) > 15
or len(code_periode) > 1
or len(lib_ecr)>30
or len(num_ecriture)>9
end
GO |
Partager