სხვაობა აშკარა კურსორსა და იმპლიციტურ კურსორს შორის

სხვაობა აშკარა კურსორსა და იმპლიციტურ კურსორს შორის
სხვაობა აშკარა კურსორსა და იმპლიციტურ კურსორს შორის

ვიდეო: სხვაობა აშკარა კურსორსა და იმპლიციტურ კურსორს შორის

ვიდეო: სხვაობა აშკარა კურსორსა და იმპლიციტურ კურსორს შორის
ვიდეო: 25. SCET_2 Rapidity RGE 2024, ნოემბერი
Anonim

გამოკვეთილი კურსორი vs იმპლიციტური კურსორი

როდესაც საქმე ეხება მონაცემთა ბაზებს, კურსორი არის საკონტროლო სტრუქტურა, რომელიც საშუალებას გაძლევთ გადახვიდეთ მონაცემთა ბაზაში ჩანაწერებზე. კურსორი უზრუნველყოფს მექანიზმს სახელის მინიჭებისთვის SQL რჩეულ განცხადებაში და შემდეგ ის შეიძლება გამოყენებულ იქნას SQL განაცხადის ინფორმაციის მანიპულირებისთვის. იმპლიციტური კურსორები ავტომატურად იქმნება და გამოიყენება ყოველ ჯერზე, როდესაც Select განცხადება გამოიცემა 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 გამონაკლისები არ ჩნდება აშკარა კურსორების გამოყენებისას, განსხვავებით იმპლიციტური კურსორებისგან. არსებითად, იმპლიციტური კურსორები უფრო დაუცველია მონაცემთა შეცდომების მიმართ და უზრუნველყოფს ნაკლებ პროგრამულ კონტროლს, ვიდრე აშკარა კურსორები. ასევე, იმპლიციტური კურსორები ნაკლებად ეფექტურია, ვიდრე აშკარა კურსორები.

გირჩევთ: