Տարբերություն բացահայտ կուրսորի և անուղղակի կուրսորի միջև

Տարբերություն բացահայտ կուրսորի և անուղղակի կուրսորի միջև
Տարբերություն բացահայտ կուրսորի և անուղղակի կուրսորի միջև

Video: Տարբերություն բացահայտ կուրսորի և անուղղակի կուրսորի միջև

Video: Տարբերություն բացահայտ կուրսորի և անուղղակի կուրսորի միջև
Video: Cara Mengatasi Error Saat Jailbreak iPhone 5s Disable/Passcode 2024, Նոյեմբեր
Anonim

Բացահայտ կուրսոր ընդդեմ բացահայտ կուրսոր

Երբ խոսքը վերաբերում է տվյալների շտեմարաններին, կուրսորը կառավարման կառուցվածք է, որը թույլ է տալիս անցնել տվյալների բազայի գրառումների վրայով: Կուրսորն ապահովում է SQL ընտրության հայտարարությանը անուն նշանակելու մեխանիզմ, այնուհետև այն կարող է օգտագործվել SQL հայտարարության մեջ տեղեկատվությունը շահարկելու համար: Անուղղակի կուրսորները ավտոմատ կերպով ստեղծվում և օգտագործվում են ամեն անգամ, երբ PL/SQL-ում Ընտրել հայտարարություն է տրվում, երբ չկա հստակ սահմանված կուրսոր: Բացահայտ կուրսորները, ինչպես ենթադրում է անունը, բացահայտորեն սահմանվում են մշակողի կողմից: PL/SQL-ում բացահայտ կուրսորը իրականում անվանված հարցում է, որը սահմանվում է բանալի բառի կուրսորով:

Ի՞նչ է անուղղակի կուրսորը:

Նշված կուրսորները ավտոմատ կերպով ստեղծվում և օգտագործվում են Oracle-ի կողմից ամեն անգամ, երբ ընտրված հայտարարություն է տրվում: Եթե օգտագործվում է անուղղակի կուրսոր, տվյալների բազայի կառավարման համակարգը (DBMS) ավտոմատ կերպով կկատարի բացման, առբերման և փակման գործողությունները: Անուղղակի կուրսորները պետք է օգտագործվեն միայն SQL հայտարարությունների հետ, որոնք վերադարձնում են մեկ տող: Եթե SQL հայտարարությունը վերադարձնում է մեկից ավելի տող, անուղղակի կուրսոր օգտագործելը սխալ կառաջացնի: Անուղղակի կուրսորը ավտոմատ կերպով կապված է տվյալների մանիպուլյացիայի լեզվի (DML) յուրաքանչյուր հայտարարության, մասնավորապես՝ INSERT, UPDATE և DELETE հայտարարությունների հետ: Նաև անուղղակի կուրսորը օգտագործվում է SELECT INTO հայտարարությունները մշակելու համար: Անուղղակի կուրսորների միջոցով տվյալներ բեռնելիս NO_DATA_FOUND բացառությունը կարող է առաջանալ, երբ SQL հայտարարությունը չի վերադարձնում տվյալներ: Ավելին, անուղղակի կուրսորները կարող են բարձրացնել TOO_MANY_ROWS բացառություններ, երբ SQL հայտարարությունը վերադարձնում է մեկից ավելի տող:

Ի՞նչ է բացահայտ կուրսորը:

Ինչպես նշվեց ավելի վաղ, բացահայտ կուրսորները հարցումներ են, որոնք սահմանվում են անվան միջոցով:Բացահայտ կուրսորը կարելի է համարել որպես ցուցիչ դեպի մի շարք գրառումներ, և ցուցիչը կարող է առաջ շարժվել գրառումների շարքում: Բացահայտ կուրսորները օգտվողին ապահովում են տվյալների բացման, փակման և առբերման ամբողջական վերահսկողություն: Բացի այդ, մի քանի տող կարող է բեռնվել՝ օգտագործելով հստակ կուրսորը: Բացահայտ կուրսորները կարող են նաև պարամետրեր ընդունել, ինչպես ցանկացած ֆունկցիա կամ ընթացակարգ, որպեսզի կուրսորի փոփոխականները կարող են փոխվել ամեն անգամ, երբ այն կատարվում է: Բացի այդ, բացահայտ կուրսորները թույլ են տալիս ներբեռնել մի ամբողջ տող PL/SQL ռեկորդային փոփոխականի մեջ: Հստակ կուրսոր օգտագործելիս նախ այն պետք է հայտարարվի՝ օգտագործելով անունը: Կուրսորի ատրիբուտներին կարելի է մուտք գործել՝ օգտագործելով կուրսորին տրված անունը: Հայտարարելուց հետո նախ պետք է բացել կուրսորը: Այնուհետև բեռնումը կարող է սկսվել: Եթե պետք է մի քանի տող բեռնել, ապա բեռնման գործողությունը պետք է կատարվի օղակի ներսում: Վերջապես, կուրսորը պետք է փակվի:

Տարբերություն բացահայտ կուրսորի և անուղղակի կուրսորի միջև

Հիմնական տարբերությունը բացահայտ կուրսորի և բացահայտ կուրսորի միջև այն է, որ բացահայտ կուրսորը պետք է հստակորեն սահմանվի՝ անուն տալով, մինչդեռ անուղղակի կուրսորները ինքնաբերաբար ստեղծվում են, երբ դուք ընտրեք հայտարարություն:Ավելին, մի քանի տող կարող է բեռնվել բացահայտ կուրսորների միջոցով, մինչդեռ անուղղակի կուրսորները կարող են վերցնել միայն մեկ տող: Նաև NO_DATA_FOUND և TOO_MANY_ROWS բացառությունները չեն բարձրացվում բացահայտ կուրսորներ օգտագործելիս, ի տարբերություն անուղղակի կուրսորների: Ըստ էության, անուղղակի կուրսորներն ավելի խոցելի են տվյալների սխալների նկատմամբ և ապահովում են ավելի քիչ ծրագրային հսկողություն, քան բացահայտ կուրսորները: Բացի այդ, անուղղակի կուրսորները համարվում են ավելի քիչ արդյունավետ, քան բացահայտ կուրսորները:

Խորհուրդ ենք տալիս: