问题描述
大家好
我试图从2个表与XML函数进行查询,但我有一些问题:
这是我在这个示例中使用的sql
从我正在使用的2个不同的表中选择
然后我去做xml
我有一个结果
ORA-00902: tipo di dati non valido
00902. 00000-“无效数据类型”
* 原因:
* 行动:
里加: 11,科隆纳: 34
除了这个错误,这是我试图检索的xml
但这是从多个选择中制作树xml的唯一方法?
谢谢
毛罗
我不确定为什么需要子查询?您可以将两个表连接在一起并以这种方式生成XML。
按将在部门级别出现的列分组,并将员工信息一起XMLAgg:
我试图从2个表与XML函数进行查询,但我有一些问题:
这是我在这个示例中使用的sql
从我正在使用的2个不同的表中选择
select deptno,dname from dept; select empno,ename,deptno from emp;
然后我去做xml
SELECT XMLElement("Department", dept_t(deptno, edept, cast(MULTISET (SELECT empno, ename FROM emp e WHERE e.deptno = e.deptno) AS emplist_t))) AS deptxml FROM dept d WHERE d.deptno = 10;
我有一个结果
ORA-00902: tipo di dati non valido
00902. 00000-“无效数据类型”
* 原因:
* 行动:
里加: 11,科隆纳: 34
除了这个错误,这是我试图检索的xml
ACCOUNTING CLARK MILLER
但这是从多个选择中制作树xml的唯一方法?
谢谢
毛罗
我不确定为什么需要子查询?您可以将两个表连接在一起并以这种方式生成XML。
按将在部门级别出现的列分组,并将员工信息一起XMLAgg:
set long 10000 with depts as ( select xmlelement ( "dept_t", xmlattributes (d.deptno), xmlelement ( "emplist", xmlagg ( xmlelement ( "emp_t", xmlattributes (e.empno), xmlelement ( "ename", e.ename ) ) dept from scott.dept d join scott.emp e on e.deptno = d.deptno where d.deptno in (10, 20) group by d.deptno select xmlserialize ( --for formatting the output content xmlelement ( "department", xmlagg ( dept ) ) as varchar2(1000) indent size = 2 ) doc from depts; ------------------------------------