🧐 Друзья, всем привет! С вами Костя Андронов 👋 Сегодня разберём миф, который дожил с 90-х: «явный курсор эффективнее неявного». 🕰 Откуда ноги растут В 7 версии Oracle (PL/SQL 2.2) неявный курсор действительно был медленнее. По стандарту ANSI SQL запрос на одну строку обязан убедиться, что строка ровно одна — значит, делается второй FETCH, чтобы поймать TOO_MANY_ROWS. 2 FETCH вместо 1 — отсюда легенда. В следующем релизе PL/SQL 2.3 неявные курсоры оптимизировали, и с тех пор они работают чуть быстрее явных. Но миф жив до сих пор 🤯 ⚙️ Три варианта на примере SELECT INTO — короткий, читаемый, но обязан получить ровно одну строку: declare v_name employees.last_name%type; begin select last_name into v_name from employees where employee_id = 100; exception when no_data_found then null; -- обработка end; OPEN/FETCH/CLOSE — больше кода, зато полный контроль: проверяем %NOTFOUND без exception: declare cursor c is select last_name from employees where employee_id = 100; v_name em