gpt4 book ai didi

oracle - 从 XMLTABLE 中获取时,此 SELECT 语句错误中需要 INTO 子句

转载 作者:行者123 更新时间:2023-12-01 07:41:13 25 4
gpt4 key购买 nike

我正在尝试运行一个涉及 xmltable 的脚本,但我得到了一个

PLS-00428: an INTO clause is expected in this SELECT statement



如何更正我的脚本并从 xml 中获取 2 行?

甲骨文 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;

别担心,我们都会犯愚蠢的错误,尽管我有多年的经验。

关于oracle - 从 XMLTABLE 中获取时,此 SELECT 语句错误中需要 INTO 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15099207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com