我正在研究一些我必须将XML类型数据转换为Raw的东西,但我没有得到它。 我已经尝试将XML数据转换为varchar2然后使用Cast_to_raw但它显示十六进制到原始转换错误。请告诉我怎么做。
答案 0 :(得分:0)
示例描述了从xmltype到blob元素的转换。如果必须获取原始值,请执行dbms_substr。
declare
dest_offset integer;
src_offset integer;
lang_context integer;
warning varchar2(1000);
v_xml_object xmltype;
v_blob blob;
v_clob clob;
begin
--get example xmltype
select dbms_xmlgen.getXmlType('select * from user_objects where rownum < 10') into v_xml_object from dual;
--convert xmltype to clob
v_clob := v_xml_object.getClobVal();
--initi variable
dbms_lob.createtemporary(v_blob, FALSE);
dest_offset := 1;
src_offset := 1;
lang_context := 0;
-- convert to a BLOB here:
dbms_lob.converttoblob( v_blob, v_clob, dbms_lob.getlength( v_clob ), dest_offset, src_offset, 0, lang_context, warning );
dbms_output.put_line(warning);
dbms_output.put_line(dbms_lob.substr(v_blob,length(v_blob)));
end;