ashu_1july Ответов: 0

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 HIREDATE="12-JAN-83" JOB="клерк
"></>



мой ожидаемый результат: <rb ....... ></> Нужно только использовать </>


пожалуйста, загляните в код и скажите мне, как это сделать.

Что я уже пробовал:

я пробовал, как мимоходом.

XMLElement("rb", XMLAttributes(e.HIREDATE||' 'AS HIREDATE,e.JOB||' 'AS "JOB"


но не работает.

Richard Deeming

Если вы хотите создать что-то, что не является допустимым XML, то вы не можете использовать XML для его создания.

0 Ответов