Функцияға қарсы сақталған процедура
Сақталған процедуралар мен функциялар - бұл бағдарламалау блоктарының екі түрі. Екеуінің де аттары болуы керек. Бұл атаулар оларды процедуралар мен пакеттер немесе SQL сұраулары сияқты басқа бағдарламалау блогының ішінде шақыру үшін қолданылады. Бұл объектілердің екеуі де параметрлерді қабылдайды және сол нысандардың артындағы тапсырманы орындайды. Бұл сақталған процедураны жасау үшін синтаксис (ORACLE -де),
процедураның атын (параметрлерін) құру немесе ауыстыру
сияқты
баста
мәлімдемелер;
ерекшелік
ерекшелік_қолдану
Соңы;
Міне, функция құру синтаксисі (ORACLE -де),
function_name функциясын құру немесе ауыстыру (параметрлер)
return_datatype қайтарыңыз
сияқты
баста
мәлімдемелер;
return_value/айнымалы мәнді қайтару;
ерекшелік;
ерекше жағдайларды өңдеу;
Соңы;
Сақталған процедуралар
Жоғарыда айтылғандай, сақталған процедуралар бағдарламалау блоктары деп аталады. Олар параметрлерді процедураның логикасына сәйкес пайдаланушының енгізуі мен өңдеуі ретінде қабылдайды және нәтиже береді (немесе белгілі бір әрекетті орындайды). Бұл параметрлер IN, OUT және INOUT түрлері болуы мүмкін. Айнымалы декларациялар, айнымалы тағайындаулар, бақылау мәлімдемелері, циклдар, SQL сұраулары және басқа да функциялар/процедуралар/пакеттер қоңыраулары процедуралардың негізгі бөлігінде болуы мүмкін.
Функциялар
Функциялар сонымен қатар RETURN операторының көмегімен мәнді қайтаруы тиіс бағдарламалау блоктары деп аталады, ал мәнді қайтармас бұрын оның денесі де кейбір әрекеттерді орындайды (берілген логикаға сәйкес). Функциялар сонымен қатар іске қосылатын параметрлерді қабылдайды. Сұраулар ішінде функцияларды шақыруға болады. Функция SELECT сұрауының ішінде шақырылғанда, ол SELECT сұранысының нәтижелер жиынының әр жолына қолданылады. ORACLE функцияларының бірнеше санаттары бар. Олар,
- Бір жол функциялары (сұраудың әр жолы үшін бір нәтиже береді)
Бір қатарлы функциялардың ішкі санаттары бар.
- Сандық функция (мысалы: ABS, SIN, COS)
- Таңба функциясы (мысалы: CONCAT, INITCAP)
- Күн уақыты функциясы (мысалы: LAST_DAY, NEXT_DAY)
- Түрлендіру функциялары (мысалы: TO_CHAR, TO_DATE)
- Жинау функциясы (мысалы: CARDINALITY, SET)
- Жинақтау функциялары (жолдар тобына негізделген бір жолды қайтарады. Мысалы: AVG, SUM, MAX)
- Аналитикалық функциялар
- Объектілерге сілтеме жасау функциялары
- Модельдік функциялар
- Пайдаланушы анықтайтын функциялар
Функция мен сақталған процедураның айырмашылығы неде? • Барлық функциялар RETURN операторының көмегімен мәнді қайтаруы керек. Сақталған процедуралар RETURN операторының көмегімен мәндерді қайтармайды. Процедура ішіндегі RETURN операторы басқаруды шақырушы бағдарламаға қайтарады. OUT параметрлері сақталған процедуралардан мәндерді қайтару үшін қолданыла алады. • Функцияларды сұраулар ішінде шақыруға болады, бірақ сақталған процедураларды сұраныстарда қолдану мүмкін емес. • Функцияны құру үшін RETURN деректер түрі енгізілуі керек, бірақ сақталған DDL процедурасында ол жоқ. |