我在PostgreSQL中创建了一个包含XML列的表。我正在使用该列的text
数据类型。现在我有被存储在一个场如表中以下一个样本XML:如何在PostgreSQL中比较XML是否相等
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
现在我已经建立,其比较2个XML数据的一个过程。如果发现XML数据返回true,否则返回false
的问题是,如果XML数据存储在表中的一行像
<note><to>Tove</to><from>Jani</from><heading>Reminder</heading><body>Don't forget me this weekend!</body></note>
然后得到所需的输出,但如果它被存储在不同的行,那么它返回null
。
我的程序如下所示
CREATE OR REPLACE FUNCTION comparexml(p_name_in VARCHAR(255), p_xml_data_in text, out p_id integer)AS $BODY$
DECLARE
V_ID INTEGER;
BEGIN
SELECT id INTO v_id
FROM employee
WHERE XML_DATA = p_xml_data_in and
NAME=p_name_in;
IF(v_id IS NULL) THEN
V_ID := 0;
ELSE
V_ID := 1;
END IF;
p_id=v_id;
END;
$BODY$ LANGUAGE plpgsql;
显示您的查询不知道你想要什么。 –
@EvanCarroll - 我的功能如下所示 CREATE OR REPLACE FUNCTION comparexml(p_name_in VARCHAR(255),p_xml_data_in文本,出来的p_id整数)AS $ BODY $ DECLARE V_ID整数。 BEGIN SELECT标识INTO v_id FROM雇员 WHERE XML_DATA = p_xml_data_in和 NAME = p_name_in; IF(v_id IS NULL)THEN V_ID:= 0; ELSE V_ID:= 1; END IF; p_id = v_id; END; $ BODY $语言plpgsql; – Nik
更新问题和格式的东西... –