funzione uuencode()

La funzione 'uuencode() codifica un valore binario come ASCII utilizzando il formato UNIX UUencode.

La codifica traduce il valore binario in codici di caratteri ASCII nell'intervallo 32 e oltre. Storicamente, la codifica uuen viene utilizzata per codificare i file destinati alla trasmissione via e-mail. La funzione 'uudecode() inverte l'effetto della funzione 'uuencode(), ricreando esattamente il file binario originale.

L'algoritmo della funzione " uuencode() esegue i seguenti compiti:
  1. Divide il valore binario in gruppi di tre byte (24 bit), aggiungendo zeri alla fine del valore binario, se necessario, per creare un gruppo finale di tre byte.
  2. Suddivide i 24 bit in quattro gruppi di sei bit ciascuno. In questo modo si creano quattro numeri decimali nell'intervallo 0-63.
  3. Aggiunge 32 decimali a ciascun numero per creare caratteri ASCII nell'intervallo 32 (spazio) - 95 (trattino basso).
Il passo 1 è illustrato dalla seguente tabella che mostra come ogni carattere di un valore di ingresso, hat, viene elaborato in byte.
Tabella 1. Compiti dell'algoritmo della funzione uuencode(), Parte I
Tipo di valore Carattere di ingresso Carattere di ingresso Carattere di ingresso
Ingresso originale ASCII h a t
ASCII decimale 104 97 116
ASCII binario (8 bit) 01101000 01100001 01110100

Le fasi 2 e 3 sono illustrate nella tabella seguente. La trasformazione dei tre valori binari ASCII a 8 bit della tabella precedente in quattro valori binari a 6 bit è mostrata nella prima riga della tabella seguente.

Tabella 2. Compiti dell'algoritmo della funzione uuencode(), Parte II
Tipo di valore Valore di input Valore di input Valore di input Valore di input
binario a 6 bit 011010 000110 000101 110100
Equivalente decimale 26 6 5 52
Decimale + 32 58 38 280 84
Uuencoding : & % T

Sintassi

La funzione " uuencode ha la seguente sintassi:
varchar = uuencode(varchar input);
nvarchar = uuencode(nvarchar input);

Il valore " input specifica il valore binario da codificare.

Risultati

La funzione restituisce una stringa codificata.

Per le funzioni " uuencode() e " uudecode(), le informazioni di intestazione iniziale e finale sono importanti. Se si rimuovono le informazioni di intestazione dall'uscita della funzione 'uuencode() e si passa la stringa codificata alla funzione 'uudecode(), la funzione 'uudecode() restituisceERROR: 0 : Invalid UUData.

Esempio

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

(1 row)