在使用自界说聚积函数时呈现了一个ORA-1467错误。
8 c( r0 s8 C, t/ K' z4 @* C3 k( W7 r c
. f5 T6 y% A R- A$ ~- ^
按照Oracle文档上的描述,1467错误是因为排序的键值跨越了DB_BLOCK_SIZE。
8 {+ r* c, i/ f u& ~, i4 q可是呈现错误的SQL似乎并不知足这个前提。下面简单机关这个错误:
" l* _9 E2 c; \( w" GSQL> CREATE OR REPLACE TYPE T_LINK AS OBJECT (
: I7 j& y2 f5 k8 ]2 STR VARCHAR2(30000),
% K" I4 p) g# o- e& Y) ~& y3 STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT T_LINK) RETURN NUMBER,
% j1 d, R! ^ n4 e4 MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT T_LINK, VALUE IN VARCHAR2) RETURN NUMBER, 4 s5 n: O% l# n2 v: u/ l
5 MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN T_LINK, RETURNVALUE OUT VARCHAR2, FLAGS IN NUMBER) RETURN NUMBER, $ y( l' g' U2 f W# m) ?0 ]$ [
6 MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT T_LINK, CTX2 IN T_LINK) RETURN NUMBER 1 p( X( f: g+ g5 i8 a+ E
7 ) - ?9 E, t6 U" ^, ~, j
8 /
* G. q7 a9 W W( b3 D0 QType created. 7 W2 m" A4 c0 I) R1 L0 X
SQL> CREATE OR REPLACE TYPE BODY T_LINK IS ) x) u: X% }# Y. }6 w
2 STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT T_LINK) RETURN NUMBER IS 4 d. q+ M5 L5 a
3 BEGIN
9 A! ]2 t% L& z% {0 J4 SCTX := T_LINK(NULL); $ ^1 j* d6 A) x! `% s
5 RETURN ODCICONST.SUCCESS; 8 K% x# W/ \% ^0 |- V1 M
6 END; 1 e2 O$ {7 g+ y% H9 w3 N
7
# ~4 w+ f3 J: H; a8 ]2 ^8 MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT T_LINK, VALUE IN VARCHAR2) RETURN NUMBER IS
( C9 r" u+ V- L9 y1 v9 BEGIN
3 _7 A8 I, [" L) N5 C5 w8 q+ I+ }10 SELF.STR := SELF.STR || VALUE || ’,’;
3 X9 t6 z3 P! ]4 s# _' c11 RETURN ODCICONST.SUCCESS; ; ]- P! J7 g( r9 F. E% s3 a, m
12 END;
1 h% ]; g- _8 c( ]! L Q: K13
9 T: s6 G; |" d4 e5 j14 MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN T_LINK, RETURNVALUE OUT VARCHAR2, FLAGS IN NUMBER) RETURN NUMBER IS 9 f9 F$ R" K2 C) S
15 BEGIN 1 A0 P/ t" F# y+ r* p
16 RETURNVALUE := SUBSTR(SELF.STR, 1, LENGTH(SELF.STR) - 1); ( L* s8 b/ v0 s: X& _* {
17 RETURN ODCICONST.SUCCESS; # a, u& s' c' z' I+ v0 _, P
18 END;
; d- c: r N/ B. X2 }19
6 y2 Z" x! d/ o9 [# `8 ^20 MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT T_LINK, CTX2 IN T_LINK) RETURN NUMBER IS
: X5 w1 P% g, p7 m6 L! p; G' _7 b21 BEGIN & `1 _5 ]0 Y$ U5 U& V, P
22 NULL; [5 g6 Y, i( Z1 `
23 RETURN ODCICONST.SUCCESS; 首页 1 2 3 |