sql >> Database >  >> RDS >> Oracle

Hoe een array van bytes op te slaan in Oracle?

In Oracle is het RAW-gegevenstype geschikt voor het opslaan van binaire waarden.

Het probleem met het gebruik van karaktergegevenstypes voor het opslaan van binaire gegevens is dat de waarden onderhevig zijn aan tekensetvertaling .

Als de client-tekenset niet overeenkomt met de database-tekenset, zijn de waarden onderhevig aan vertaling. (Dat wil zeggen, een binaire waarde in de ene codering vertegenwoordigt een bepaald teken, maar dat teken kan worden weergegeven door een andere binaire waarde in een andere tekenset.

Met het karakter datatype behoudt Oracle de "character" waarde, niet de gecodeerde binaire waarde.

Als u een karakter (bijv. CHAR of VARCHAR2) datatype wilt gebruiken om binaire waarden op te slaan, dan moet u de binaire waarde echt als platte tekst coderen en de gecodeerde waarde opslaan en ophalen. Twee populaire binair-naar-tekst-coderingen zijn hexadecimaal en base64 (uuencode).

Oracle biedt ingebouwde functies RAWTOHEX en HEXTORAW voor het coderen en decoderen van binair (RAW-gegevenstype) als hexadecimale tekenreeksen (VARCHAR2-gegevenstype).



  1. Wat is de juiste manier om artikelopmerkingen, hits en vind-ik-leuks te tellen in een artikelindex?

  2. SQL Server-fout 206:clash van operandtype

  3. AUTONOMOUS_TRANSACTION

  4. Wizard Entiteitsgegevensmodel crasht met Oracle Connection