I'm trying to convert a LONG RAW value into a BLOB one and I'm getting an error: ORA-00932: inconsistent datatypes: expected BINARY, got LONG BINARY. Code sample(document is a LONG RAW column):
DECLARE
var_blob BLOB;
BEGIN
select To_Blob(document) into var_blob
from instructions
where id = 'XXX';
END;
I get the same error if I try to execute the code as a simple SQL query (without the PL/SQL code). What am I doing wrong?
Edit:
Using the information from the answers I tried doing:
create table temp_blob(id VARCHAR2(50), file_contents blob);
and then:
DECLARE
z_id varchar(50) := 'XXX';
z_blob blob;
BEGIN
execute immediate '
insert into temp_blob
select :z_id, To_Blob(document)
from instructions
where id = :z_id' using z_id, z_id;
begin
select file_contents into z_blob
from temp_blob where id = z_id;
end;
END;
I'm still getting the same error. Also some additional information - the size of the result of the query:
select document
from instructions
where id = 'XXX';
is bigger than 32760 bytes, so I cannot assign it to a PL/SQL variable.