У меня проблема с SQL / XML и Oracle.Я использую пример из Oracle с dept и emp.Ситуация в начале: я хочу xml с отделом и его сотрудниками:
SELECT Xmlelement("employees", dept.deptno, Xmlagg(
Xmlelement("employee", ename))).
getStringVal()
FROM emp
INNER JOIN dept
ON dept.deptno = emp.deptno
GROUP BY dept.deptno;
Теперь я хочу все отделы, даже если нет никаких сотрудников (правое внешнее объединение).Более того, мне нужны некоторые атрибуты для сотрудников:
SELECT XMLELEMENT("employees", dept.deptno,
Xmlagg(
XMLELEMENT("employee",
xmlattributes(empno AS "empno", sal AS "salary"), ename)
)
).getStringVal()
FROM emp
right outer join dept
ON dept.deptno = emp.deptno
GROUP BY dept.deptno;
Но теперь в отделе, где нет сотрудников, есть пустой тег «сотрудник».У меня есть решение этой проблемы:
SELECT xmlelement("employees",
xmlattributes(dept.deptno as "Abt"),
xmlagg( xmlforest(ename AS "employee") )
).getstringval()
FROM emp
RIGHT OUTER JOIN dept
ON dept.deptno = emp.deptno
GROUP BY dept.deptno;
Теперь у меня нет пустого тега, но я не могу разместить нужные атрибуты.Есть ли решение этой проблемы?
С наилучшими пожеланиями ses