Синтаксис оператора зчитування наступний:
FETCH < ім`я курсора > INTO <змінна результату> [, < змінна результату >...]
В операторі читання вказується ім'я курсору і обов'язковий розділ INTO, що має список специфікацій призначення (список імен змінних основної програми у випадку вбудованого SQL або імен "вихідних" параметрів у випадку модуля SQL). Число і типи даних в списку призначень повинні співпадати з числом і типами даних списку виборки специфікації курсору.
Будь-який відкритий курсор завжди має позицію: він може бути встановлений перед деяким рядком результуючої таблиці (перед першим рядком відразу після відкриття курсору), на деякий рядок результату або за останнім рядком результату.
Якщо таблиця, на яку вказує курсор пуста, або позиція курсора знаходиться на останньому рядоку чи за ним, то при виконанні оператора читання курсор встановлюється в позицію після останнього рядка, параметру SQLCODE присвоюється значення 100, і ніякі значення не присвоюються змінним, вказаним в розділі INTO.
Якщо курсор встановлений в позицію перед рядком, то при виконанні оператора зчитування він встановлюється на цей рядок, і значення рядка присвоюються відповідним змінним.
Якщо курсор встановлений на рядок r, відмінний від останнього рядка, то курсор встановлюється на рядок, наступний за рядком r (в порядку, визначеному реалізацією, якщо запит не містить розділу ORDER BY), і значення з цього наступного рядка присвоюються відповідним змінним.