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