Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Wie speichere ich ein Array von Bytes in Oracle?

In Oracle eignet sich der RAW-Datentyp zum Speichern von Binärwerten.

Das Problem bei der Verwendung von Zeichendatentypen zum Speichern von Binärdaten besteht darin, dass die Werte einer Zeichensatzübersetzung unterliegen .

Wenn der Zeichensatz des Clients nicht mit dem Zeichensatz der Datenbank übereinstimmt, werden die Werte übersetzt. (Das heißt, ein Binärwert in einer Codierung stellt ein bestimmtes Zeichen dar, aber dieses Zeichen kann durch einen anderen Binärwert in einem anderen Zeichensatz dargestellt werden.

Beim Zeichendatentyp behält Oracle den "Zeichen"-Wert bei, nicht den codierten Binärwert.

Wenn Sie einen Zeichendatentyp (z. B. CHAR oder VARCHAR2) zum Speichern von Binärwerten verwenden möchten, müssen Sie den Binärwert wirklich als Klartext codieren und den codierten Wert speichern und abrufen. Zwei beliebte Binär-zu-Text-Kodierungen sind hexadezimal und base64 (uuencode).

Oracle bietet die integrierten Funktionen RAWTOHEX und HEXTORAW zum Codieren und Decodieren von Binärzeichen (RAW-Datentyp) als hexadezimale Zeichenfolgen (VARCHAR2-Datentyp).