This is my query:
DECLARE
randomString VARCHAR2(100);
userId NUMBER;
useTimestamp TIMESTAMP;
BEGIN
SELECT ID INTO userId FROM CC_USER WHERE EMAIL=:P8_EMAIL;
SELECT USE_TS INTO useTimestamp FROM (SELECT * FROM CC_USER_VERIFICATION_TOKEN WHERE USER_ID = userId ORDER BY EXPIRY_TS DESC) WHERE ROWNUM = 1;
IF (useTimestamp IS NULL) THEN
UPDATE CC_USER_VERIFICATION_TOKEN SET USE_TS=SYSTIMESTAMP WHERE EXPIRY_TS =(select max(EXPIRY_TS) from CC_USER_VERIFICATION_TOKEN)
and rownum = 1 and USER_ID=userId;
END IF;
SELECT dbms_random.string('X', 20) str INTO randomString FROM dual;
randomString := TO_CHAR(:TOKEN_TYPE_PASSWORD_RECOVERY) || randomString;
:P8_TOKEN := randomString;
SELECT ID INTO userId FROM CC_USER where UPPER(EMAIL)=UPPER(:P8_EMAIL);
INSERT INTO CC_USER_VERIFICATION_TOKEN(TOKEN, USER_ID, TOKEN_TYPE, EXPIRY_TS)
VALUES (randomString, userId, TO_NUMBER(:TOKEN_TYPE_PASSWORD_RECOVERY), :TOKEN_EXPIRY_DURATION);
EXCEPTION
WHEN NO_DATA_FOUND THEN
SELECT dbms_random.string('X', 20) str INTO randomString FROM dual;
randomString := TO_CHAR(:TOKEN_TYPE_PASSWORD_RECOVERY) || randomString;
:P8_TOKEN := randomString;
SELECT ID INTO userId FROM CC_USER where UPPER(EMAIL)=UPPER(:P8_EMAIL);
INSERT INTO CC_USER_VERIFICATION_TOKEN(TOKEN, USER_ID, TOKEN_TYPE, EXPIRY_TS)
VALUES (randomString, userId, TO_NUMBER(:TOKEN_TYPE_PASSWORD_RECOVERY), v('TOKEN_EXPIRY_DURATION'));
END;
:TOKEN_EXPIRY_DURATION is Application Computation
:TOKEN_TYPE_PASSWORD_RECOVERY is a value in Substitution String
In table CC_USER_VERIFICATION_TOKEN: TOKEN is VARCHAR2(100), USER_ID is NUMBER, TOKEN_TYPE is NUMBER, EXPIRY_TS is TIMESTAMP
The error message
Logging exception:
Sqlerrm: ORA-01858: a non-numeric character was found where a numeric was expected
Backtrace: ORA-06512: at line 23
ORA-06512: at "SYS.DBMS_SYS_SQL", line 1815
ORA-06512: at "SYS.WWV_DBMS_SQL", line 1033
ORA-06512: at "SYS.WWV_DBMS_SQL", line 1047
ORA-06512: at "APEX_050000.WWV_FLOW_DYNAMIC_EXEC", line 895
ORA-06512: at "APEX_050000.WWV_FLOW_PROCESS_NATIVE", line 67
ORA-06512: at "APEX_050000.WWV_FLOW_PROCESS_NATIVE", line 1101
ORA-06512: at "APEX_050000.WWV_FLOW_PLUGIN", line 2014
ORA-06512: at "APEX_050000.WWV_FLOW_PROCESS", line 188
I have double checked and unable to find where my mistake is. If anyone can help me figure it out, it will be awesome. Thank you.