sql >> Database >  >> RDS >> Oracle

Illegaal gebruik van LONG datatype Oracle

U kunt uw LONG RAW-waarde converteren naar een BLOB in een PL/SQL-blok en dat vervolgens met base64 coderen:

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;
/

beveelt u natuurlijk ten zeerste aan om LONG RAW-kolommen te converteren naar binaire LOB (BLOB) kolommen ; nog steeds gegevens opslaan als LANG of LANG onbewerkt lijkt nu nogal verouderd.



  1. MySQL-query om key:value toe te voegen aan JSON-tekenreeks

  2. SQL Bulkimport vanuit CSV

  3. MariaDB JSON_MERGE() uitgelegd

  4. mysql Trigger-probleem in verkeerd schema