Хадгалагдсан журам ба функц
Хадгалсан процедур ба функцууд нь хоёр төрлийн програмчлалын блок юм. Аль аль нь дуудах нэртэй байх ёстой. Эдгээр дуудлагын нэрсийг процедурын функц, багц эсвэл SQL асуулга гэх мэт өөр програмчлалын блок дотор дуудахдаа ашигладаг. Эдгээр объектын төрөл хоёулаа параметрүүдийг хүлээн авч тэдгээр объектын ард даалгаврыг гүйцэтгэдэг. Энэ ньхадгалагдсан процедурыг үүсгэх синтакс (ORACLE-д) юм.
процедурын нэр (параметр) үүсгэх эсвэл солих
эхлэх
мэдэгдэл;
үл хамаарах зүйл
онцгой_харьцах
төгсгөл;
Мөн энд функц үүсгэх синтакс байна (ORACLE дээр), функцийн_нэр (параметр) үүсгэх эсвэл солих
буцах_өгөгдлийн төрөл
эхлэх
мэдэгдэл;
буцаах_утга/хувьсагч;
үл хамаарах зүйл;
онцгой_харьцах;
төгсгөл;
Хадгалагдсан журам
Дээр дурдсанчлан хадгалагдсан процедуруудыг програмчлалын блок гэж нэрлэдэг. Тэд параметрүүдийг хэрэглэгчийн оролт болгон хүлээн авч, процедурын цаадах логикийн дагуу боловсруулдаг бөгөөд үр дүнг өгдөг (эсвэл тодорхой үйлдлийг гүйцэтгэдэг). Эдгээр параметрүүд нь IN, OUT, INOUT төрлийн байж болно. Хувьсагчийн мэдэгдэл, хувьсагчийн хуваарилалт, хяналтын мэдэгдэл, гогцоо, SQL асуулга болон бусад функц/процедур/багцын дуудлага нь процедурын үндсэн дотор байж болно.
Функцууд
Функцуудыг мөн програмчлалын блок гэж нэрлэдэг бөгөөд тэдгээр нь RETURN мэдэгдлийг ашиглан утгыг буцаах ёстой бөгөөд утгыг буцаахаас өмнө бие нь зарим үйлдлийг гүйцэтгэдэг (өгөгдсөн логикийн дагуу). Функцууд нь мөн ажиллах параметрүүдийг хүлээн авдаг. Асуулга дотор функцуудыг дуудаж болно. SELECT асуулга дотор функц дуудагдах үед энэ нь SELECT асуулгын үр дүнгийн багцын мөр бүрт хэрэгжинэ. ORACLE функцүүдийн хэд хэдэн ангилал байдаг. Тэд бол
Нэг эгнээний функцууд (асуулгын мөр бүрийн нэг үр дүнг буцаана)
Нэг эгнээний функцүүдийн дэд ангилал байдаг.
- Тоон функц (Жишээ нь: ABS, SIN, COS)
- Тэмдэгтийн функц (Жишээ нь: CONCAT, INITCAP)
- Огноо цагийн функц (Жишээ нь: СҮҮЛИЙН_ӨДӨР, ДАРААГИЙН_ӨДӨР)
- Хувиргах функцууд (Жишээ нь: TO_CHAR, TO_DATE)
- Цуглуулгын функц (Жишээ нь: CARDINALITY, SET)
- Нэгтлэх функцууд (Бүлэг мөр дээр тулгуурлан нэг мөр буцаана. Жишээ нь: AVG, SUM, MAX)
- Аналитик функцууд
- Объект лавлах функцууд
- Загвар функцүүд
- Хэрэглэгчийн тодорхойлсон функцууд
Функц болон Хадгалсан Процедур хоёрын ялгаа нь юу вэ?
• Бүх функцууд RETURN мэдэгдлийг ашиглан утгыг буцаах ёстой. Хадгалагдсан процедур нь RETURN мэдэгдлийг ашиглан утгыг буцаадаггүй. Процедурын доторх RETURN мэдэгдэл нь дуудаж буй програм руу хяналтаа буцаана. OUT параметрүүдийг хадгалсан процедураас утгыг буцаахад ашиглаж болно.
• Асуулга дотор функцуудыг дуудаж болох боловч хадгалагдсан процедурыг асуулга дотор ашиглах боломжгүй.
• Функц үүсгэхийн тулд RETURN өгөгдлийн төрлийг оруулах ёстой, гэхдээ хадгалагдсан процедур DDL-д энэ нь байхгүй.