oracle – 从XMLTABLE获取时,在此SELECT语句错误中需要INTO子句
发布时间:2020-12-12 12:42:58 所属栏目:百科 来源:网络整理
导读:我试图运行一个涉及xmltable的脚本,我得到了一个 PLS-00428: an INTO clause is expected in this SELECT statement 我怎么能纠正我的脚本并从xml中获取2行? Oracle 11g DECLARE xml_char xmltype;BEGINxml_char := xmltype.createXML('xmlROWSETROW UNIQUE
我试图运行一个涉及xmltable的脚本,我得到了一个
我怎么能纠正我的脚本并从xml中获取2行? Oracle 11g DECLARE xml_char xmltype; BEGIN xml_char := xmltype.createXML('<xml><ROWSET><ROW UNIQUEID="All0" ALLOWCHG="0"/><ROW UNIQUEID="All1" ALLOWCHG="1"/></ROWSET></xml>'); select UNIQUEID,ALLOWCHG from xmltable ( '/xml/ROWSET/ROW' passing xml_char columns "UNIQUEID" varchar(30) path '@UNIQUEID',"ALLOWCHG" varchar(30) path '@ALLOWCHG' ) ; END; 解决方法在SQL中,select语句从不包含INTO子句.在PL / SQL中,select语句需要一个INTO子句,除非它在游标中.我修改了你的代码以使用游标: DECLARE xml_char xmltype; cursor c_cursor is select UNIQUEID,ALLOWCHG from xmltable ( '/xml/ROWSET/ROW' passing xml_char columns "UNIQUEID" varchar(30) path '@UNIQUEID',"ALLOWCHG" varchar(30) path '@ALLOWCHG' ); BEGIN xml_char := xmltype.createXML('<xml><ROWSET><ROW UNIQUEID="All0" ALLOWCHG="0"/><ROW UNIQUEID="All1" ALLOWCHG="1"/></ROWSET></xml>'); for i in c_cursor loop dbms_output.put_line('UNIQUEID: ' || i.uniqueid || ' ALLOWCHG: '|| i.allowchg); end loop; END; 别担心,我们都会犯下愚蠢的错误,我尽管经验丰富. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |