Айқын курсор және жасырын курсор
Дерекқорларға келетін болсақ, курсор дерекқордағы жазбалар арқылы өтуге мүмкіндік беретін басқару құрылымы болып табылады. Курсор SQL таңдау операторына атау тағайындау механизмін қамтамасыз етеді, содан кейін оны сол SQL операторындағы ақпаратты өңдеу үшін пайдалануға болады. Жасырын курсорлар PL/SQL тілінде Select операторы шығарылған сайын, анық анықталған курсор болмаған кезде автоматты түрде жасалады және пайдаланылады. Ашық курсорлар, аты айтып тұрғандай, әзірлеуші анық анықтайды. PL/SQL-де айқын курсор шын мәнінде курсор кілт сөзінің көмегімен анықталған атаулы сұрау болып табылады.
Айқын курсор дегеніміз не?
Айқын курсорлар таңдау мәлімдемесі шығарылған сайын Oracle арқылы автоматты түрде жасалады және пайдаланылады. Егер жасырын курсор пайдаланылса, Дерекқорды басқару жүйесі (ДҚБЖ) ашу, алу және жабу операцияларын автоматты түрде орындайды. Жасырын курсорлар бір жолды қайтаратын SQL мәлімдемелерімен ғана қолданылуы керек. Егер SQL мәлімдемесі бірнеше жолды қайтарса, жасырын курсорды пайдалану қатені тудырады. Жасырын курсор әрбір Деректерді өңдеу тілі (DML) мәлімдемелерімен, атап айтқанда INSERT, UPDATE және DELETE мәлімдемелерімен автоматты түрде байланыстырылады. Сондай-ақ жасырын курсор SELECT INTO операторларын өңдеу үшін пайдаланылады. Жасырын курсорларды пайдаланып деректерді алу кезінде NO_DATA_FOUND ерекше жағдайды SQL мәлімдемесі деректерді қайтармаған кезде көтеруге болады. Сонымен қатар, жасырын курсорлар SQL мәлімдемесі бірден көп жолды қайтарғанда TOO_MANY_ROWS ерекше жағдайларды көтере алады.
Айқын курсор дегеніміз не?
Бұрын айтылғандай, айқын курсорлар атау арқылы анықталған сұраулар болып табылады. Ашық курсорды жазбалар жиынының көрсеткіші ретінде қарастыруға және көрсеткішті жазбалар жиынының ішінде алға жылжытуға болады. Ашық курсорлар пайдаланушыға деректерді ашу, жабу және алу бойынша толық бақылауды қамтамасыз етеді. Сондай-ақ, айқын курсорды пайдаланып бірнеше жолдарды алуға болады. Айнымалы курсорлар да кез келген функция немесе процедура сияқты параметрлерді қабылдай алады, осылайша курсордағы айнымалылар орындалған сайын өзгертілуі мүмкін. Бұған қоса, айқын курсорлар PL/SQL жазба айнымалысына тұтас жолды алуға мүмкіндік береді. Айқын курсорды пайдаланған кезде, алдымен оны атау арқылы жариялау керек. Курсор атрибуттарына курсорға берілген атау арқылы қол жеткізуге болады. Жарияланғаннан кейін алдымен курсорды ашу керек. Содан кейін алуды бастауға болады. Бірнеше жолды алу қажет болса, алу әрекеті цикл ішінде орындалуы керек. Соңында курсорды жабу керек.
Айқын курсор мен жасырын курсордың айырмашылығы
Жасырын курсор мен айқын курсордың негізгі айырмашылығы мынада: таңдау мәлімдемесін шығарған кезде жасырын курсорлар автоматты түрде жасалады, ал ашық курсор атау беру арқылы анық анықталуы керек. Сонымен қатар, бірнеше жолдарды айқын курсорлар арқылы алуға болады, ал жасырын курсорлар тек бір жолды ала алады. Сондай-ақ NO_DATA_FOUND және TOO_MANY_ROWS ерекшеліктер анық меңзерлерді пайдаланғанда, жасырын курсорларға қарағанда көтерілмейді. Негізінде жасырын курсорлар деректер қателеріне осал және айқын курсорларға қарағанда бағдарламалық басқаруды аз қамтамасыз етеді. Сондай-ақ жасырын курсорлар айқын курсорларға қарағанда тиімділігі төмен болып саналады.