Hello,

I have a DB and run the following script :

UPDATE APPLICATIONVERSION SET APPVERDESC = 'CS6.3SP1 OF THE PICIS DB Start Events' WHERE APPVERDBOID = 27000000000024000000;


SET SERVEROUTPUT ON SIZE 1000000;

DECLARE
V_EVENTDATADBOID NUMBER(21);
V_STARTED DATE;
V_EVENTDATADESC VARCHAR2(255);
V_ISDELETED VARCHAR2(1);
V_PICISDATADBOID NUMBER(21);
V_EVENTDBOID NUMBER(21);
V_STAFFDBOID NUMBER(21);
V_LOCATIONDBOID NUMBER(21);
V_APPLICATIONDBOID NUMBER(21);
V_NUM NUMBER(1);

V_SQLCODE NUMBER;
V_ERRMSG VARCHAR2(250);
c_ZEROPAD CONSTANT VARCHAR2(20) := '00000000000000000000';



CURSOR CEventdata IS
SELECT EVENTDATADBOID,STARTED,EVENTDATADESC,ISDELETED,NVL(PICISDATADBOID,-1),EVENTDBOID,STAFFDBOID
FROM EVENTDATA
WHERE EVENTDBOID IN (66000000000014000000,66000000000015000000);


BEGIN

OPEN CEventdata;
FETCH CEventdata INTO V_EVENTDATADBOID,V_STARTED,V_EVENTDATADESC,V_ISDELETED,V_PICISDATADBOID,V_EVENTDBOID,V_STAFFDBOID;
IF(CEventdata%FOUND) THEN
LOOP
BEGIN

V_APPLICATIONDBOID := 19000000000000000000;

IF V_EVENTDATADESC IS NULL THEN
V_LOCATIONDBOID := 42000000000000000000;
ELSE
SELECT LOCATIONDBOID INTO V_LOCATIONDBOID FROM LOCATIONS WHERE LOCATIONID = TO_NUMBER(SUBSTR(V_EVENTDATADESC,1,3)) ;

IF SUBSTR(V_EVENTDATADESC,7) = 'CPCUSTOMIZE' THEN V_APPLICATIONDBOID := 19000000000014000000; END IF;

IF SUBSTR(V_EVENTDATADESC,7) = 'DBTOUCHUP' THEN V_APPLICATIONDBOID := 19000000000008000000; END IF;

IF SUBSTR(V_EVENTDATADESC,7) = 'VCCUSTOMIZE' THEN V_APPLICATIONDBOID := 19000000000013000000; END IF;

IF SUBSTR(V_EVENTDATADESC,7) = 'CPREMOTEVIEW' THEN V_APPLICATIONDBOID := 19000000000019000000; END IF;

IF SUBSTR(V_EVENTDATADESC,7,9) = '019000000' THEN V_APPLICATIONDBOID := TO_NUMBER(SUBSTR(V_EVENTDATADESC,7)); END IF;
END IF;

INSERT INTO PCS_EVENTDATA
(PCSEVENTDATADBOID,STARTED,PICISDATADBOID,EVENTDBOID,STAFFDBOID,LOCATIONDBOID,APPLICATIONDBOID)
VALUES
(V_EVENTDATADBOID,V_STARTED,NVL(V_PICISDATADBOID,-1),V_EVENTDBOID,V_STAFFDBOID,V_LOCATIONDBOID,V_APPLICATIONDBOID);
EXCEPTION
WHEN OTHERS THEN
V_SQLCODE :=SQLCODE;
V_ERRMSG := SQLERRM;
DBMS_OUTPUT.PUT_LINE('Error on INSERT INTO PCS_EVENTDATA: EVENTDATADBOID=' || TO_CHAR(V_EVENTDATADBOID,c_ZEROPAD) ||' (SQLCODE=' || TO_CHAR(V_SQLCODE) || ') ' || V_ERRMSG);
END;
COMMIT;
FETCH CEventdata INTO V_EVENTDATADBOID,V_STARTED,V_EVENTDATADESC,V_ISDELETED,V_PICISDATADBOID,V_EVENTDBOID,V_STAFFDBOID;
EXIT WHEN CEventdata%NOTFOUND;
END LOOP;
END IF;
CLOSE CEventdata;


/* Update application version */

UPDATE APPLICATIONVERSION
SET APPVERDESC = 'CS6.3SP1 OF THE PICIS DB EventData'
WHERE APPVERDBOID = 27000000000024000000;
COMMIT;
END;
/

SET SERVEROUTPUT OFF

I then get the following error

Error on INSERT INTO PCS_EVENTDATA: EVENTDATADBOID=74138335077564006601(SQLCODE=-1722) ORA-01722: invalid number.

Has any idea what the problem is? What is the reason why this EVENTDATA row fails. All the columns for this row seem ok, but oracle cannot insert this row into PCS_EVENTDATA? I am using Oracle 8.1.7 on Win2000.

Thanks