Oracle
 sql >> база данни >  >> RDS >> Oracle

Незаконно използване на тип данни LONG Oracle

Можете да конвертирате вашата LONG RAW стойност в BLOB в PL/SQL блок и след това да кодирате base64, че:

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

Разбира се, настоятелно препоръчва да конвертирате ДЪЛГИ RAW колони към двоични LOB (BLOB) колони ; все още съхраняването на данни като LONG или LONG необработени изглежда доста остаряло сега.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съхранена процедура и курсор на Oracle

  2. Динамичен израз "LIKE" в SQL (Oracle)

  3. SQL е твърде дълъг за String

  4. Еквивалент на COLLATE без значение на главните и главните букви в Oracle

  5. SQL Попълване с отделни данни и последователност