ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 AAA.TYPESTT
本帖最后由 expleeve 于 2013-04-28 15:54:59 编辑
Schema为AAA
执行的SQL语句为
SELECT ID,STT,grouping(ID),grouping(STT)
FROM TABLE (CORP('sys1','code1'))
group by grouping sets((ID),(STT));
错误信息为
ORA-00932: 数据类型不一致: 应为 NUMBER, 但却获得 AAA.TYPESTT
自定义类型为
CREATE OR REPLACE TYPE "AAA"."TYPESTT"
AS OBJECT( ID VARCHAR2 (30),
STT VARCHAR (10))
CREATE OR REPLACE TYPE "AAA"."CORPSTT" AS TABLE OF TYPESTT
CORP函数的定义如下
CREATE
OR
REPLACE
FUNCTION "AAA"."CORP"(SYS1 VARCHAR ,
CODE1 VARCHAR)
RETURN CORPSTT PIPELINED AS V1 TYPESTT ;
VCODE VARCHAR(30);
VSYS VARCHAR(10);
V_DATE VARCHAR(10);
BEGIN
VCODE := CODE1 ;
VSYS := SYS1 ;
V_DATE := TO_CHAR(SYSDATE,'YYYY-MM-DD') ;
FOR MYROW IN
(
SELECT
ID ,
STT
FROM
RLCP
UNION ALL
SELECT
CORPID ,
CORPROLE
FROM
RRCP )
LOOP
V1 := TYPESTT(MYROW.ID, MYROW.STT);
PIPE ROW (V1);
END LOOP;
RETURN ;
END ;
请教
00932
数据类型不一致
grouping sets
group by
自定义函数
分享到:
------解决方案--------------------
GROUPING不能在grouping sets使用,只能在ROLLUP或CUBE的查询中使用。
把grouping sets 换成rollup或者cube应该没问题。
------解决方案--------------------
引用:谢谢回复,但是我没有找到有关方面的记录规定不能连用,能给个出处吗?
有什么不能用的,试试不就知道了。项目里一直都用grouping判断应该“小计”,“合计”,还是“总计”。
with t as (
select 1 id, '服装' ptype, '男装' stype, 78 amount, '2009-06-25' saledate from dual union all
select 2 id, '服装' ptype, '男装' stype, 33 amount, '2009-03-21' saledate from dual union all
select 3 id, '服装' ptype, '男装' stype, 22 amount, '2009-12-17' saledate from dual union all