Триггер ба курсор
Өгөгдлийн санд триггер нь хүснэгт/харагдахад тодорхой үйл явдал тохиолдоход автоматаар хийгдэх процедур (кодын сегмент) юм. Бусад хэрэглээний дотроос триггерийг мэдээллийн сангийн бүрэн бүтэн байдлыг хангахад голчлон ашигладаг. Курсор нь мэдээллийн баазын бүртгэлээр дамжих мэдээллийн санд ашигладаг хяналтын бүтэц юм. Энэ нь олон програмчлалын хэлээр хангагдсан давталттай маш төстэй юм.
Триггер гэж юу вэ?
Өгөгдлийн сангийн хүснэгт/харагдахад зарим тодорхой үйл явдал тохиолдоход автоматаар хийгдэх процедур (кодын сегмент)-ийг триггер гэнэ. Бусад хэрэглээний дотроос триггерийг мэдээллийн сангийн бүрэн бүтэн байдлыг хангахад голчлон ашигладаг. Триггерийг бизнесийн дүрэм журмыг хэрэгжүүлэх, мэдээллийн сан дахь өөрчлөлтийг шалгах, өгөгдлийг хуулбарлахад ашигладаг. Хамгийн түгээмэл триггерүүд нь өгөгдлийг өөрчилсөн үед өдөөгддөг Data Manipulation Language (DML) триггерүүд юм. Зарим мэдээллийн сангийн системүүд Өгөгдлийн тодорхойлолтын хэл (DDL) үйл явдал тохиолдоход өдөөгддөг өгөгдлийн бус триггерүүдийг дэмждэг. Зарим жишээ нь хүснэгт үүсгэх, гүйцэтгэх эсвэл буцаах үйлдлүүд гэх мэт үйлдлүүдийн үед ажилладаг триггерүүд юм. Эдгээр триггерийг ялангуяа аудит хийхэд ашиглаж болно. Oracle өгөгдлийн сангийн систем нь үүсгэсний дараа, өөрчлөхийн өмнө, өөрчилсний дараа, уналтаас өмнө, уналтын дараа гэх мэт схемийн түвшний триггерүүдийг (жишээ нь өгөгдлийн сангийн схемийг өөрчлөх үед ажилладаг триггерүүдийг) дэмждэг. Oracle-ийн дэмждэг үндсэн дөрвөн төрлийн триггер нь Row Level триггер, Баганын түвшний триггер, Мөр төрөл бүрийн триггер болон мэдэгдлийн төрөл бүрийн триггер.
Курсор гэж юу вэ?
Курсор нь өгөгдлийн сангийн бүртгэлийг үзэхийн тулд мэдээллийн санд ашигладаг хяналтын бүтэц юм. Энэ нь олон програмчлалын хэлээр хангагдсан давталттай маш төстэй юм. Курсорууд нь мэдээллийн сан дахь бичлэгүүдээр дамжихаас гадна өгөгдөл хайх, бүртгэл нэмэх, устгах үйл явцыг хөнгөвчилдөг. Зөв замыг тодорхойлсноор курсорыг арагшаа чиглүүлэхэд ашиглаж болно. SQL асуулга нь олон мөрийг буцаавал тэдгээрийг курсор ашиглан боловсруулдаг. Курсорыг ашиглахын өмнө түүнийг зарлаж, нэр өгөх шаардлагатай. Дараа нь OPEN командыг ашиглан курсорыг нээх шаардлагатай. Энэ үйлдэл нь курсорыг үр дүнгийн багц бичлэгийн эхний эгнээний өмнөхөн байрлуулна. Дараа нь програм руу өгөгдөл оруулахын тулд курсор FETCH үйлдлийг гүйцэтгэх ёстой. Эцэст нь CLOSE үйлдлийг ашиглан курсорыг хаах шаардлагатай. Хаалттай курсорыг дахин нээх боломжтой.
Триггер ба курсорын ялгаа нь юу вэ?
Триггер нь өгөгдлийн сангийн хүснэгт/харагдахад зарим тодорхой үйл явдал тохиолдоход автоматаар хийгдэх процедур (кодын сегмент) бөгөөд курсор нь өгөгдлийн сангийн бүртгэлээр дамжих мэдээллийн санд ашигладаг хяналтын бүтэц юм. Курсорыг триггер дотор зарлаж, ашиглаж болно. Ийм нөхцөлд зарлах мэдэгдэл нь гох дотор байх болно. Дараа нь курсорын хамрах хүрээ нь тэр гохоор хязгаарлагдах болно. Триггер дотор, хэрэв курсорыг оруулсан эсвэл устгасан хүснэгтэд зарласан бол ийм курсорыг үүрлэсэн триггерээс ашиглах боломжгүй болно. Триггер дууссаны дараа триггер дотор үүсгэсэн бүх курсорууд хуваарилагдахгүй.