Нэг өдөр манай төслүүдийн нэг дээр ийм шаардлага гарч ирлээ. Яг ижилхэн бүтэцтэй, n ширхэг table байгаа, тэр table-үүдээс тодорхой нэг баганаар нь хайлт хийж үр дүнг нь нэг хүснэгтэд харуулах байв. Тэр table-үүд нь бас өөр нэг table дээр бүртгэлтэй байх бөгөөд, замын дунд нэмэгдээд явахаар байв.
Ийм нөхцөлд union ашиглаад view энэ тэрээр хийхэд хүндрэлтэй болох гээд байсан учраас table төрлийн зүйл буцаадаг function бичих шаардлагатай боллоо.
2. Өгөгдөл
Энэ бол манай гол table-н бүтэц нь, жишээ болгоод 2 ширхэг copy-г нь бас оруулчихлаа.
Энэ бол table-үүдийнхээ бүртгэлийг хөтлөх table, жишээ болсон 2 copy-гоо өгөгдөл болгоод оруулчихъя:
3. Шийдэл
Function-даа зориулж өгөгдлийн төрөл үүсгэх хэрэгтэй болно. Буцаж буй мөр бүрийг илтгэх нэг object, мөн тэр object-уудыг list(table) болгож харуулах нэг table гэсэн 2 төрөл үүсгэе.
Эхнийх нь:
Дараах нь:
Ингээд энэхүү 2оо ашиглаад function-аа бичвэл:
4. Ашиглалт
Энэ функцыг ашиглахдаа:
5. Reference
http://stackoverflow.com/questions/2059299/table-valued-functions-in-oracle-11g-parameterized-views
Ийм нөхцөлд union ашиглаад view энэ тэрээр хийхэд хүндрэлтэй болох гээд байсан учраас table төрлийн зүйл буцаадаг function бичих шаардлагатай боллоо.
2. Өгөгдөл
Энэ бол манай гол table-н бүтэц нь, жишээ болгоод 2 ширхэг copy-г нь бас оруулчихлаа.
Энэ бол table-үүдийнхээ бүртгэлийг хөтлөх table, жишээ болсон 2 copy-гоо өгөгдөл болгоод оруулчихъя:
3. Шийдэл
Function-даа зориулж өгөгдлийн төрөл үүсгэх хэрэгтэй болно. Буцаж буй мөр бүрийг илтгэх нэг object, мөн тэр object-уудыг list(table) болгож харуулах нэг table гэсэн 2 төрөл үүсгэе.
Эхнийх нь:
Дараах нь:
Ингээд энэхүү 2оо ашиглаад function-аа бичвэл:
4. Ашиглалт
Энэ функцыг ашиглахдаа:
5. Reference
http://stackoverflow.com/questions/2059299/table-valued-functions-in-oracle-11g-parameterized-views