here is my main question here
I have a problem converting a table column (long raw) to a base row of 64, this column contains some of the employee images.
This is the request, the field I'm trying to convert is f.fot_empl :
SELECT e.NOM_EMPL First_name, APE_EMPL Last_name, e.NOM_EMPL || ' ' || e.APE_EMPL Full_name, car.NOM_CARG position, COS.NOM_CCOS Area, f.fot_empl Picture, E.FEC_NACI Birth_date FROM EMPLE e INNER JOIN CONTR c ON E.COD_EMPL = C.COD_EMPL INNER JOIN cargo car ON C.COD_CARG = CAR.COD_CARG INNER JOIN CCOST cos on COS.COD_CCOS = C.COD_CCOS LEFT JOIN FOEMP f
What I tried:
The accepted answer of this message without any results, I continue to get the error "Invalid use of LONG datatype". Workaround for ORA-00997: illegal use of a LONG data type
I am trying to implement the following function with no results:
CREATE OR REPLACE FUNCTION to_base64 ( vcodem IN FOEMP.COD_EMPR%TYPE, vcodempl IN FOEMP.COD_EMPL%TYPE) RETURN VARCHAR2 IS V_VAR FOEMP.FOT_EMPL%TYPE; V_result VARCHAR2 (4000); BEGIN DBMS_OUTPUT.put_line ('Start'); SELECT UTL_RAW.cast_to_varchar2 ( UTL_ENCODE.base64_encode ( UTL_RAW.cast_to_raw (DBMS_LOB.SUBSTR (f.FOT_EMPL, 4000)))) INTO V_result FROM FOEMP f WHERE COD_EMPL = vcodempl AND COD_EMPR = vcodem; DBMS_OUTPUT.put_line ('End'); DBMS_OUTPUT.put_line ('Result: ' || V_result); END to_base64; /
Function is invalid due to ORA-00997 in:
SELECT UTL_RAW.cast_to_varchar2 ( UTL_ENCODE.base64_encode ( UTL_RAW.cast_to_raw (DBMS_LOB.SUBSTR (f.FOT_EMPL, 4000)))) INTO V_result FROM FOEMP f WHERE COD_EMPL = vcodempl AND COD_EMPR = vcodem;
Thank you very much in advance.
source share