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