Procedure Problem ORA-20000 / ORA-20001
Hello,
I have problems with the following procedure - in both cases the problem seems to be in line 115 (RAISE;):
CREATE OR REPLACE PROCEDURE EFWP."P_BUILD_VOP_ENVELOPE"(
paramPlanungId LONG,
paramEnvelopeWKTPolygon VARCHAR)
AS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
-- bereits bestehende alte Daten löschen
DELETE
FROM EFWP.TEFWP_VOP_PL T0
WHERE T0.PLANUNG_ID = paramPlanungId;
-- neue Daten erstellen
INSERT
INTO EFWP.TEFWP_VOP_PL
(
WID_ID,
OBJEKT,
GEMOESTAT,
WIDMUNG,
STAND,
EMASST,
BESCHTXT,
BEZEICHNG,
FESTLEGUNG,
FESTLEG02,
ZAEHLER,
ANZ_FRZTWS,
ANZ_BETTEN,
ANZ_RAEUME,
FL_KUNDEN,
FL_KUNDLM,
BETRIEBTYP,
SV_EBENE,
SV_EBENENR,
SV_KENN,
BEFRISTUNG,
CREATEUSER,
CREATETIMESTAMP,
UPDATEUSER,
UPDATETIMESTAMP,
EFWP_ID,
STATUS,
PLANUNG_ID,
SHAPE,
OBJECTID
)
SELECT FW.WID_ID,
FW.OBJEKT,
FW.GEMOESTAT,
FW.WIDMUNG,
FW.STAND,
FW.EMASST,
FW.BESCHTXT,
FW.BEZEICHNG,
FW.FESTLEGUNG,
FW.FESTLEG02,
FW.ZAEHLER,
FW.ANZ_FRZTWS,
FW.ANZ_BETTEN,
FW.ANZ_RAEUME,
FW.FL_KUNDEN,
FW.FL_KUNDLM,
FW.BETRIEBTYP,
FW.SV_EBENE,
FW.SV_EBENENR,
FW.SV_KENN,
FW.BEFRISTUNG,
FW.CREATEUSER,
FW.CREATETIMESTAMP,
FW.UPDATEUSER,
FW.UPDATETIMESTAMP,
FW.EFWP_ID,
FW.STATUS,
paramPlanungId,
SDE.ST_DIFFERENCE (FW.SHAPE, PB.SHAPE),
DBATOOLS.F_GET_NEXT_OBJECTID('EFWP', 'TEFWP_VOP_PL')
FROM
(SELECT T0.WID_ID,
T0.OBJEKT,
T0.GEMOESTAT,
T0.WIDMUNG,
T0.STAND,
T0.EMASST,
T0.BESCHTXT,
T0.BEZEICHNG,
T0.FESTLEGUNG,
T0.FESTLEG02,
T0.ZAEHLER,
T0.ANZ_FRZTWS,
T0.ANZ_BETTEN,
T0.ANZ_RAEUME,
T0.FL_KUNDEN,
T0.FL_KUNDLM,
T0.BETRIEBTYP,
T0.SV_EBENE,
T0.SV_EBENENR,
T0.SV_KENN,
T0.BEFRISTUNG,
T0.CREATEUSER,
T0.CREATETIMESTAMP,
T0.UPDATEUSER,
T0.UPDATETIMESTAMP,
T0.EFWP_ID,
T0.STATUS,
SDE.ST_INTERSECTION(SDE.ST_POLYGON( paramEnvelopeWKTPolygon , DBATOOLS.F_GET_SRID('EFWP', 'TEFWP_PL')), T0.SHAPE) AS SHAPE
FROM EFWP.TEFWP_PL T0
WHERE T0.STATUS = '1'
AND SDE.ST_INTERSECTS(T0.SHAPE, SDE.ST_POLYGON( paramEnvelopeWKTPolygon , DBATOOLS.F_GET_SRID('EFWP', 'TEFWP_PL'))) = 1
) FW,
EFWP.TEFPBER_PL PB
WHERE PB.PLANUNG_ID = paramPlanungId ;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
-- log_error( .... );
RAISE;
/* this is crucial, you MUST re-raise the exception */
END;
/
The problems:
1. CALL EFWP.P_BUILD_VOP_ENVELOPE(629,'POLYGON ((84162.4 238985.685, 84162.4 239479.37, 84616.79999999999 239479.37, 84616.79999999999 238985.685, 84162.4 238985.685))'); ==>
sqldeveloper: no problems
toad:
CALL EFWP.P_BUILD_VOP_ENVELOPE(629,'POLYGON ((84162.4 238985.685, 84162.4 239479.37, 84616.79999999999 239479.37, 84616.79999999999 238985.685, 84162.4 238985.685))')
Error at line 1
ORA-29903: Fehler bei der Ausführung von Routine ODCIIndexFetch()
ORA-20001: OCI-21500: Interner Fehlercode, Argumente: [17112], [0x001DEF178], [], [], [], [], [], []
ORA-06512: in "EFWP.P_BUILD_VOP_ENVELOPE", Zeile 115
2. call efwp.p_build_vop_envelope (1006, 'POLYGON ((84890.215 238977.38, 84890.215 239301.585, 85119.685 239301.585, 85119.685 238977.38, 84890.215 238977.38))' ); ==>
sqldeveloper:
call efwp.p_build_vop_envelope (1006, 'POLYGON ((84890.215 238977.38, 84890.215 239301.585, 85119.685 239301.585, 85119.685 238977.38, 84890.215 238977.38))' )
Fehlerbericht:
SQL-Fehler: ORA-29902: Fehler bei der Ausführung von Routine ODCIIndexStart()
ORA-20000: Failed to get OCI Memory
ORA-06512: in "EFWP.P_BUILD_VOP_ENVELOPE", Zeile 115
29902. 00000 - "error in executing ODCIIndexStart() routine"
*Cause: The execution of ODCIIndexStart routine caused an error.
*Action: Examine the error messages produced by the indextype code and
take appropriate action.
Any ideas? Thanks for your help!
Roland
toad: no problems ("Method called.")