У меня есть следующий код в процедуре оракула, который возвращает курсор (r_cursor
) в качестве OUT
параметра
SELECT userid
INTO v_userid
FROM users u
WHERE lower(u.email) = lower(p_email)
AND lower(u.token) = lower(p_IV);
UPDATE users u
SET u.token = NULL,
u.lastlogin = sysdate()
WHERE u.userid = v_userid;
OPEN r_cursor FOR
SELECT u.firstname,
u.lastname
FROM users u
WHERE u.userid = v_userid;
При вызове процедуры из оракула все работает отлично.
Но при вызове процедуры из приложения .Net возникает ошибка ORA-24338: statement handle not executed
.
После многих испытаний я обнаружил, что если я удаляю одну из строк lower(u.token) = lower(p_IV)
из оператора SELECT
или u.token = NULL,
из оператора UPDATE
, курсор возвращается в приложение .Net без любая ошибка.