uuencode() (Funktion)
Die Funktion ' uuencode() kodiert einen Binärwert als ASCII, indem sie das UNIX UUencode-Format verwendet.
Die Codierung setzt den Binärwert in ASCII-Zeichencodes im Bereich ab 32 und darüber um. In der Vergangenheit wurde die Codierung mit 'uuencode' zum Codieren von Dateien verwendet, die für die E-Mail-Übertragung bestimmt waren. Die Funktion uudecode() kehrt die Auswirkung der Funktion uuencode() um, indem die ursprüngliche Binärdatei exakt erneut erstellt wird.
- Teilt den Binärwert in Gruppen von drei Byte (24 Bit) auf, wobei bei Bedarf am Ende des Binärwerts Nullen hinzugefügt werden, um eine letzte Gruppe von drei Byte zu erstellen.
- Teilt die 24 Bit in vier Gruppen mit jeweils sechs Bit auf. Dadurch werden vier Dezimalzahlen im Bereich 0-63 erstellt.
- Fügt die Dezimalzahl 32 zu jeder Zahl hinzu, um ASCII-Zeichen im Bereich 32 (Leerzeichen) - 95 (Unterstrich) zu erstellen.
| Werttyp | Eingabezeichen | Eingabezeichen | Eingabezeichen |
|---|---|---|---|
| Ursprüngliche ASCII-Eingabe | h | a | t |
| Dezimale ASCII-Zahl | 104 | 97 | 116 |
| Binäre ASCII-Zahl (8 Bit) | 01101000 | 01100001 | 01110100 |
Die Schritte 2 und 3 sind in der folgenden Tabelle dargestellt. Die in der vorangegangenen Tabelle gezeigte Umsetzung der drei binären ASCII-Werte mit 8 Bit in vier Binärwerte mit 6 Bit wird in der ersten Zeile der folgenden Tabelle gezeigt.
| Werttyp | Wert eingeben | Wert eingeben | Wert eingeben | Wert eingeben |
|---|---|---|---|---|
| Binärwert mit 6 Bit | 011010 | 000110 | 000101 | 110100 |
| Dezimales Äquivalent | 26 | 6 | 5 | 52 |
| Dezimalzahl + 32 | 58 | 38 | 273 | 84 |
| Codierung mit 'uuencode' | : | & | % | T |
Syntax
varchar = uuencode(varchar input);
nvarchar = uuencode(nvarchar input);
Der Wert " input gibt den zu kodierenden Binärwert an.
Rückgabe
Die Funktion gibt eine codierte Zeichenfolge zurück.
Für die Funktionen uuencode() und uudecode() sind die Informationen zum Start- und Endheader wichtig. Wenn Sie die Header-Informationen aus der Ausgabe der Funktion ' uuencode() entfernen und die kodierte Zeichenkette an die Funktion ' uudecode() übergeben, gibt die Funktion ' uudecode() zurückERROR: 0 : Invalid UUData.
Beispiel
select uuencode ('hat');
UUENCODE
--------------------
begin
#:&%T
'
end
(1 row)