sql >> Databasteknik >  >> RDS >> Oracle

Olaglig användning av LONG datatyp Oracle

Du kan konvertera ditt LONG RAW-värde till en BLOB i ett PL/SQL-block och sedan base64-koda det:

CREATE OR REPLACE FUNCTION to_base64 (
   vcodem     IN FOEMP.COD_EMPR%TYPE,
   vcodempl   IN FOEMP.COD_EMPL%TYPE)
   RETURN VARCHAR2
IS
  l_blob BLOB;
  l_long_raw LONG RAW;
BEGIN
  SELECT fot_empl INTO l_long_raw
    FROM foemp
   WHERE COD_EMPL = vcodempl AND COD_EMPR = vcodem;
  l_blob := TO_BLOB(l_long_raw);
  RETURN UTL_RAW.cast_to_varchar2 (UTL_ENCODE.base64_encode (l_blob));
END;
/

Naturligtvis rekommenderar du starkt att du konverterar LONG RAW-kolumner till binära LOB (BLOB) kolumner ; att fortfarande lagra data som LONG eller LONG raw verkar ganska föråldrat nu.



  1. hur man får storleken på en post i mysql

  2. SQL-problem:Att använda CONTAINS() fungerar inte, men LIKE fungerar bra

  3. Postgresql ILIKE kontra TSEARCH

  4. Trimma mer transaktionsloggfett