Պահված ընթացակարգ ընդդեմ գործառույթ
Պահված ընթացակարգերը և գործառույթները ծրագրավորման երկու տեսակի բլոկներ են: Երկուսն էլ պետք է կոչական անուններ ունենան։ Այդ կանչող անուններն օգտագործվում են դրանք մեկ այլ ծրագրավորման բլոկի ներսում կանչելու համար, ինչպիսիք են ընթացակարգերի գործառույթները և փաթեթները կամ SQL հարցումները: Այս օբյեկտների երկու տեսակներն էլ ընդունում են պարամետրեր և կատարում են այդ օբյեկտների հետևում գտնվող առաջադրանքները: Սա շարահյուսություն է (ORACLE-ում) պահպանված ընթացակարգ ստեղծելու համար, ստեղծել կամ փոխարինել ընթացակարգի անվանումը (պարամետրերը)
ինչպես
սկիզբ
հայտարարություններ;
բացառություն
բացառություն_մշակում
վերջ;
Եվ ահա ֆունկցիա ստեղծելու շարահյուսությունը (ORACLE-ում), ստեղծել կամ փոխարինել ֆունկցիայի_անունը (պարամետրերը)
return return_datatype
ինչպես
սկիզբ
հայտարարություններ;
return return_value/variable;
բացառություն;
բացառությունների_մշակում;
վերջ;
Պահված ընթացակարգեր
Ինչպես նշվեց վերևում, պահպանված ընթացակարգերը կոչվում են ծրագրավորման բլոկներ: Նրանք ընդունում են պարամետրերը որպես օգտագործողի մուտքագրում և մշակում ըստ ընթացակարգի տրամաբանության և տալիս են արդյունք (կամ կատարում են կոնկրետ գործողություն): Այս պարամետրերը կարող են լինել 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-ում պահվող պրոցեդուրաներում դա այդպես չէ: