Please, advice me on below procedure. below query returns null on filename_ but not sure how to get this filename_ properly.
PROCEDURE pickup( app_id IN VARCHAR2, Interval IN NUMBER, filename_ OUT VARCHAR2, status_ OUT VARCHAR2) IS
BEGIN
SELECT filename, status INTO filename_, status_
FROM (SELECT filename, status, CUSTPROFID, FILESIZE, AMP_FILE_NAME FROM INBOUND_UNCOMPLETED_PROCESS WHERE (status = 'error' or status = 'retry')
AND application_id IS NULL AND CREATEDAT < sysdate - 1/(24*60) AND (LAST_UPDATEDAT IS NULL OR LAST_UPDATEDAT < sysdate - Interval/(24*60))
order by LAST_UPDATEDAT NULLS FIRST)
WHERE ROWNUM < 2 FOR UPDATE NOWAIT;
UPDATE INBOUND SET application_id = app_id WHERE filename = filename_;
COMMIT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
filename_ := NO_DATA_FOUND;
WHEN OTHERS THEN
filename_ := NULL;
END pickup;
Below query returns filename_ and status_ but I would need to add ORDER BY LAST_UPDATEDAT on the select query.
PROCEDURE pickup( app_id IN VARCHAR2, Interval IN NUMBER, filename_ OUT VARCHAR2, status_ OUT VARCHAR2) IS
BEGIN
SELECT filename, status INTO filename_, status_
FROM INBOUND WHERE (status = 'error' or status = 'retry')
AND application_id IS NULL AND CREATEDAT < sysdate - 1/(24*60) AND (LAST_UPDATEDAT IS NULL OR LAST_UPDATEDAT < sysdate - Interval/(24*60))
AND ROWNUM < 2 FOR UPDATE NOWAIT;
UPDATE INBOUND SET application_id = app_id WHERE filename = filename_;
COMMIT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
filename_ := NO_DATA_FOUND;
WHEN OTHERS THEN
filename_ := NULL;
END pickup;
Thank you!