Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Nielegalne użycie typu danych LONG Oracle

Możesz przekonwertować wartość LONG RAW na BLOB w bloku PL/SQL, a następnie zakodować to w 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;
/

Oczywiście zdecydowanie zaleca przekonwertowanie kolumn LONG RAW do binarnych kolumn LOB (BLOB) ; nadal przechowywanie danych jako LONG lub LONG raw wydaje się teraz raczej przestarzałe.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Losowy ciąg SQL z listy

  2. Oracle - Jak wymusić reguły dotyczące relacji w zależności od rekordów atrybutów (prosty przykład)

  3. ORA-00933:Polecenie SQL nie zostało poprawnie zakończone podczas usuwania dwóch tabel jednocześnie

  4. Jak mogę określić wartość ciągu typu danych Oracle na podstawie jego kodu?

  5. jak rozwiązać Otrzymałeś minus jeden z odczytanego połączenia w Oracle 11g jdbc 7/14 jdk 1.7?