Условни структури в PL/SQL

IF ..THEN .. ELSE условният оператор е една от най-лесните за разбиране програмна структура в PL/SQL, тъй като ако сте запознати с други програмни езици синтаксиса му се доближава до този в програмният език Pascal. Дори само да си преведем в буквалният смисъл думичките, ще се досетите че АКО условието е изпълнено ТОГАВА направи това В ПРОТИВЕН СЛУЧАЙ направи друго. Това е може би най-простият начин който може да се обясни структурата му. Синтаксиса иначе е следният:


IF условие THEN израз 1 ELSE израз 2 END IF;

Иначе казано на "по-компютърен" език IF/THEN израза връща булева стойност "true", ако условието между тях е вярно и изпълнява изразите в THEN клаузата. Ако условието не е вярно , то израза в THEN клаузата се прескача и се изпълнява израза след ELSE клаузата, а ако не е зададена ELSE клауза то изпълнението прескача към END IF, и приключва изпълнението си. THEN клаузата може да съдържа един или няколко израза или вмъкнат PL/SQL блок. Ето един премер за един опростен IF/THEN израз с THEN клауза.

IF v_numb > 5 THEN
v_numb  := 5;
v_other := 10;
END IF;
				

Понякога програмният поток изисква да бъде насочен в една посока ако условието е TRUE и в друга посока ако условиеуто е FALSE, и това може да се постигне с IF/THEN/ELSE структурата. Също както в IF/THEN структурата, израза в THEN клаузата ще се изпълни само ако условието е TRUE. В противен случай ако условието е FALSE, израза в ELSE клаузата ще се изпълни. Ето един пример за използването му.

IF n_numb > 5 THEN
  v_status := ‘large’;
ELSE
  v_status := ‘small’;
END IF;
				

Има още една условна структура, която може да си представите все едно влагате IF/THEN или IF/THEN/ELSE структурата в същата такава. Най-добре може да си го представите с един нагледен пример.

IF (n_numb = 5 )  THEN
  v_status := ‘medium’;
ELSEIF n_numb > 5 THEN
  v_status := ‘large’;
ELSE
  v_status := ‘small’;
END IF;
				
Чрез тази структура имате възможност да разклоните програмният поток в няколко посоки т.е. не сте ограничени в само в две посоки в случай че условието е TRUE или FALSE. Важното е след ELSEIF да поставите условие. Сами виждате, че тази конструкция дава възможност за контролиране на програмният поток според различни видове условия. Използването и обаче при много, и различни условия е деста трудоемко и понякога води до грешки от страна на прогромиста за това има и други условни конструкции, които биха могли да изпълнят същата функция при по опростен синтаксис, но за тях ще прочетете в друга страница.