Plsql 如何将XML类型数据转换为原始类型数据
我正在做一些事情,必须将XML类型的数据转换为原始数据,但我没有得到它。Plsql 如何将XML类型数据转换为原始类型数据,plsql,plsqldeveloper,Plsql,Plsqldeveloper,我正在做一些事情,必须将XML类型的数据转换为原始数据,但我没有得到它。 我曾尝试将XML数据转换为varchar2,然后使用Cast_to_raw,但它显示了十六进制到原始的转换错误。请告诉我怎么做 示例描述了从xmltype到blob元素的转换。如果必须获取原始值,请执行dbms\U substr declare dest_offset integer; src_offset integer; lang_context integer; warnin
我曾尝试将XML数据转换为varchar2,然后使用Cast_to_raw,但它显示了十六进制到原始的转换错误。请告诉我怎么做 示例描述了从xmltype到blob元素的转换。如果必须获取原始值,请执行dbms\U 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;
声明
dest_偏移量整数;
src_偏移量整数;
lang_上下文整数;
警告varchar2(1000);
v_xml_对象xmltype;
v_blob blob;
v_clob clob;
开始
--获取示例xmltype
从dual中选择dbms_xmlgen.getXmlType('select*from user_objects,其中rownum<10')到v_xml_object;
--将xmltype转换为clob
v_clob:=v_xml_object.getClobVal();
--初始变量
dbms_lob.createtemporary(v_blob,FALSE);
目的地偏移量:=1;
src_偏移量:=1;
语言上下文:=0;
--在此处转换为BLOB:
dbms_lob.converttoblob(v_blob,v_clob,dbms_lob.getlength(v_clob),dest_offset,src_offset,0,lang_context,警告);
dbms_output.put_line(警告);
dbms_output.put_line(dbms_lob.substr(v_blob,length(v_blob));
结束;