fonction uuencode()

La fonction 'uuencode() encode une valeur binaire en ASCII en utilisant le format UNIX UUencode.

Le codage traduit la valeur binaire en codes de caractères ASCII dans la plage 32 et plus. Historiquement, l'uuencodage est utilisé pour coder les fichiers destinés à être transmis par courrier électronique. La fonction " uudecode() inverse l'effet de la fonction " uuencode(), en recréant exactement le fichier binaire d'origine.

L'algorithme de la fonction " uuencode() effectue les tâches suivantes :
  1. Divise la valeur binaire en groupes de trois octets (24 bits), en ajoutant des zéros à la fin de la valeur binaire, si nécessaire, pour créer un groupe final de trois octets.
  2. Divise les 24 bits en quatre groupes de six bits chacun. Cela crée quatre nombres décimaux compris entre 0 et 63.
  3. Ajoute la décimale 32 à chaque nombre pour créer des caractères ASCII dans la plage 32 (espace) - 95 (trait de soulignement).
L'étape 1 est illustrée par le tableau suivant qui montre comment chaque caractère d'une valeur d'entrée, hat, est traité en octets.
Tableau 1. Tâches de l'algorithme de la fonction uuencode(), partie I
Type de valeur Caractère d'entrée Caractère d'entrée Caractère d'entrée
Entrée ASCII originale h a t
ASCII décimal 104 97 116
ASCII binaire (8 bits) 01101000 01100001 01110100

Les étapes 2 et 3 sont illustrées par le tableau suivant. La transformation des trois valeurs binaires ASCII de 8 bits du tableau précédent en quatre valeurs binaires de 6 bits est illustrée dans la première ligne du tableau suivant.

Tableau 2. Tâches de l'algorithme de la fonction uuencode(), partie II
Type de valeur Valeur d'entrée Valeur d'entrée Valeur d'entrée Valeur d'entrée
binaire à 6 bits 011010 000110 000101 110100
Équivalent décimal 26 6 5 52
Décimale + 32 58 38 37 84
Uuencodage : & % T

Syntaxe

La fonction " uuencode a la syntaxe suivante :
varchar = uuencode(varchar input);
nvarchar = uuencode(nvarchar input);

La valeur " input spécifie la valeur binaire à encoder.

Retours

La fonction renvoie une chaîne de caractères codée.

Pour les fonctions " uuencode() et " uudecode(), les informations d'en-tête de début et de fin sont importantes. Si vous supprimez les informations d'en-tête de la sortie de la fonction " uuencode() et que vous transmettez la chaîne codée à la fonction " uudecode(), la fonction " uudecode() renvoie les informations suivantesERROR: 0 : Invalid UUData.

Exemple

select uuencode ('hat');
      UUENCODE
--------------------
 begin
#:&%T
'
end

(1 row)