Hash128()

Produit un hash 128 bits à partir d’une ou plusieurs expressions.

Présentation

Pour rapprocher deux extractions de maintenance, tu peux calculer une empreinte sur les champs qui caractérisent une ligne, plutôt que comparer visuellement chaque colonne. Hash128() renvoie la même empreinte pour la même combinaison de valeurs. Soigne l'ordre des arguments et la normalisation des champs avant le calcul. Une empreinte facilite les contrôles, mais n'est pas une preuve mathématique absolue d'identité : une collision reste théoriquement possible.

Syntaxe

Hash128(expr {, expression})

Exemple pratique

Comparer des états d’équipements entre deux extractions

Cas SOSBI · contrôles de synchronisation. Une empreinte représente un état technique composé de plusieurs attributs.

Script de chargement

EtatEquipements:
LOAD
    EquipementID,
    Statut,
    Zone,
    Hash128(Upper(Trim(EquipementID)), Upper(Trim(Statut)), Upper(Trim(Zone))) AS EmpreinteEtat
INLINE [
EquipementID, Statut, Zone
EQ-11, ACTIF, ZONE-A
eq-11, actif, zone-a
EQ-11, ARRET, ZONE-A
];

Données de départ

États reçus
EquipementIDStatutZone
EQ-11ACTIFZONE-A
eq-11actifzone-a
EQ-11ARRETZONE-A

Résultat

Les lignes 1 et 2 ont la même empreinte ; la ligne 3 produit une empreinte différente.

La normalisation est volontaire : sans elle, les différences de casse pourraient produire des empreintes différentes. Une empreinte n’exclut pas totalement les collisions.