sql >> Database teknologi >  >> RDS >> Oracle

Ulovlig brug af LONG datatype Oracle

Du kan konvertere din LONG RAW-værdi til en BLOB i en PL/SQL-blok og derefter base64-kode 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;
/

anbefaler selvfølgelig på det kraftigste, at du konverterer LANGE RAW-kolonner til binære LOB (BLOB) kolonner ; stadig at gemme data som LANG eller LANG rå virker ret forældet nu.



  1. Loop in trigger med kommaseparerede værdier mysql

  2. Genindlæs MySQL-data inde i en DIV ved hjælp af Ajax

  3. SQL Server:Pivot med brugerdefinerede kolonnenavne

  4. Kan en UDSAT begrænsning defineres ved hjælp af en Hibernate-annotering?