Орацле ПЛ / СКЛ курсор: имплицитни, експлицитни, курсор ФОР Лооп (пример)

Преглед садржаја:

Anonim

Шта је КУРСОР у ПЛ / СКЛ-у?

Курсор је показивач на ово контекстуално подручје. Орацле креира контекстуално подручје за обраду СКЛ израза који садржи све информације о изразу.

ПЛ / СКЛ омогућава програмеру да контролише подручје контекста кроз курсор. Курсор садржи редове које враћа СКЛ израз. Скуп редова које курсор држи назива се активним скупом. Ови показивачи такође могу бити именовани тако да се на њих може упутити са другог места кода.

У овом упутству ћете научити-

  • Имплицитни курсор
  • Експлицитни курсор
  • Атрибути курсора
  • Изјава за курсор петље

Курсор је две врсте.

  • Имплицитни курсор
  • Експлицитни курсор

Имплицитни курсор

Кад год се у бази података појаве било какве ДМЛ операције, ствара се имплицитни курсор који садржи погођене редове у тој одређеној операцији. Ови показивачи се не могу именовати и, према томе, не могу се контролисати или упутити са другог места кода. Кроз атрибуте курсора можемо се позивати само на најновији курсор.

Експлицитни курсор

Програмерима је дозвољено да креирају именовано контекстуално подручје за извршавање својих ДМЛ операција како би добили већу контролу над њим. Експлицитни курсор треба да буде дефинисан у одељку декларације ПЛ / СКЛ блока и креиран је за израз 'СЕЛЕЦТ' који треба да се користи у коду.

Испод су кораци који укључују рад са експлицитним курсорима.

  • Проглашавање курсора

    Декларација курсора једноставно значи створити једно именовано подручје контекста за израз 'СЕЛЕЦТ' који је дефинисан у делу декларације. Име ове контекстуалне области је исто као и име курсора.

  • Отварање курсора

    Отварањем курсора наложит ћете ПЛ / СКЛ-у да додијели меморију за овај курсор. Курсор ће бити спреман за преузимање записа.

  • Преузимање података из курсора

    У овом процесу извршава се наредба 'СЕЛЕЦТ' и дохваћени редови се чувају у додељеној меморији. Они се сада називају активним скуповима. Преузимање података из курсора је активност на нивоу записа која значи да им можемо приступити на начин евиденције.

    Свака наредба дохваћања дохвата један активни скуп и садржи информације о том одређеном запису. Овај израз је исти као израз „СЕЛЕЦТ“ који преузима запис и додељује променљивој у клаузули „ИНТО“, али неће изузети.

  • Затварање курсора

    Када се сав запис сада преузме, морамо да затворимо курсор тако да се ослободи меморија додељена овој контекстној области.

Синтакса:

DECLARECURSOR  IS ;BEGINFOR I IN LOOP… END LOOP;END;
  • У горњој синтакси, део декларације садржи декларацију курсора.
  • Курсор се креира за израз 'СЕЛЕЦТ' који је дат у декларацији курсора.
  • У извршном делу, декларисани курсор је постављен у ФОР петљу и променљива петље 'И' ће се понашати као променљива курсора у овом случају.

Пример 1 : У овом примеру ћемо пројектовати цело име запосленог из емп табеле користећи петљу курсора-ФОР.

DECLARECURSOR guru99_det IS SELECT emp_name FROM emp;BEGINFOR lv_emp_name IN guru99_detLOOPDbms_output.put_line(‘Employee Fetched:‘||lv_emp_name.emp_name);END LOOP;END;/

Оутпут

Employee Fetched:BBBEmployee Fetched:XXXEmployee Fetched:YYY

Објашњење кода:

  • Редак кода 2 : Декларисање курсора гуру99_дет за израз 'СЕЛЕЦТ емп_наме ФРОМ емп'.
  • Линија кода 4 : Конструисање петље 'ФОР' за курсор са променљивом петље лв_емп_наме.
  • Линија 5: Штампање имена запосленог у свакој итерацији петље.
  • Шифра 8: Изађите из петље

Напомена: У петљи Цурсор-ФОР атрибути курсора не могу се користити јер се отварање, дохваћање и затварање курсора имплицитно врши помоћу петље ФОР.