Xml-соглашение об именовании закрывающих узлов в oracle
я создал 1 XML-узел с помощью oracle. мне нужен вывод каким-то другим способом, значит, один из узлов я не хочу закрывать, так как только имя узла</> код выглядит так, как показано ниже.
CREATE or replace FUNCTION GetEmpName ( NAME VARCHAR ) RETURN varchar2 IS RtKeys varchar2(2000); BEGIN SELECT XMLElement("TableKeys", XMLAGG(XMLElement("rt", XMLAttributes(e.ENAME||' 'AS ENAME,e.EMPNO AS EmNo), XMLElement("rb", XMLAttributes(e.HIREDATE||' 'AS HIREDATE,e.JOB||' 'AS JOB)))) ).getStringVal() INTO RtKeys FROM emp e inner join EMPDep ed on e.DEPTNO = ed.DEPTNO where e.ename = NAME order by e.JOB; RETURN RtKeys; END;
выход я получаю как:
<TableKeys><rt ENAME="ADAMS " EMNO="7876"><rb HIREDATE="12-JAN-83 " JOB="CLERK "></rb></rt></TableKeys>
но мне нужен вывод, как показано ниже:
<tablekeys>
мой ожидаемый результат: <rb ....... ></> Нужно только использовать </>
пожалуйста, загляните в код и скажите мне, как это сделать.
Что я уже пробовал:
я пробовал, как мимоходом.
XMLElement("rb", XMLAttributes(e.HIREDATE||' 'AS HIREDATE,e.JOB||' 'AS "JOB"
но не работает.
Richard Deeming
Если вы хотите создать что-то, что не является допустимым XML, то вы не можете использовать XML для его создания.