Условни структури в 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;