Так что я пишу функцию для oracle db, но получаю ошибки, говорящие, что инструкции sql игнорируются и поэтому отсутствуют выражения.Операторы SQL игнорируются в PL/SQL
Функция:
CREATE OR REPLACE FUNCTION getQueueNumber
(student IN VARCHAR,course IN CHAR)
RETURN INT
IS
queuePosition INT;
date TIMESTAMP;
BEGIN
SELECT waitingDate INTO date
FROM WaitingCourseStudent wcs
WHERE wcs.student=student AND wcs.course=course;
IF SQL%NOTFOUND THEN queuePosition := NULL;
ELSE
SELECT COUNT(*) as pos
INTO queuePosition
FROM WaitingCourseStudent
WHERE waitingDate<=date;
END IF;
RETURN queuePosition;
END;
Полное сообщение об ошибке:
LINE/COL ERROR
8/5 PL/SQL: SQL Statement ignored
8/29 PL/SQL: ORA-00936: missing expression
13/9 PL/SQL: SQL Statement ignored
16/20 PL/SQL: ORA-00936: missing expression
Пожалуйста, избегайте объявления переменных с зарезервированными словами. date - зарезервированное слово. –
Также не указывайте свои параметры точно так же, как и ваши столбцы. – SQB
Назовите свои параметры такими же, как и столбцы, но имейте их в пространстве с именем функции внутри SQL. т.е. «wcs.student = getQueueNumber.student» –