PL/SQL Object Types
10.5. Komponen-komponen Object Type
Sebuah object type menggabungkan data dan operasi-operasi. Kita dapat mendeklarasikan attributes dan methods di dalam sebuah object type spec, namun bukan constants, exceptions, cursors, atau types. Kita harus mendeklarasikan minimal satu attribute (maksimum 1000). Methods bersifat opsional.
10.5.1. Attributes
Seperti sebuah variable, sebuah attribute dideklarasikan dengan sebuah nama dan tipe data. Nama harus unik dalam object type tersebut (namun dapat digunakan kembali di dalam object types yang lain). Tipe data dapat berupa tipe data Oracle apapun, kecuali:
- LONG dan LONG RAW
- ROWID dan UROWID
- Tipe-tipe spesifik PL/SQL yaitu BINARY_INTEGER (dan subtypes-nya), BOOLEAN, PLS_INTEGER, RECORD, REF CURSOR, %TYPE, dan %ROWTYPE
- Types yang di definisikan di dalam sebuah PL/SQL package
Kita tidak dapat menginisialisasi sebuah attribute di dalam deklarasinya dengan menggunakan operator pemberian nilai (assignment operator) atau klausa DEFAULT. Juga, kita tidak dapat menentukan constraint NOT NULL pada sebuah attribute. Namun, objects dapat disimpan di dalam database tables dimana kita dapat menentukan constraints.
Macam struktur data yang dibentuk oleh sebuah kumpulan attributes bergantung kepada real-world object yang sedang dimodelkan. Sebagai contoh, untuk merepresentasikan sebuah relational number, yang memiliki sebuah numerator dan sebuah denominator, kita hanya memerlukan dua variable INTEGER. Dalam kasus lain, untuk merepresentasikan sebuah siswa perguruan tinggi, kita memerlukan beberapa variable VARCHAR2 untuk menangani sebuah nama, alamat, nomor telepon, status, dan seterusnya, ditambah dengan sebuah variable VARRAY untuk menangani mata kuliah dan nilai (grade).
Struktur data dapat menjadi sangat kompleks (rumit). Sebagai contoh, datatype dari sebuah attribute dapat berupa object type yang lain (disebut dengan nested object type). Hal ini mengijinkan kita untuk membangun sebuah object type kompleks dari object types yang lebih sederhana. Beberapa object types seperti queues, lists, dan trees bersifat dinamis, artinya bahwa mereka dapat tumbuh selama mereka digunakan. Object types recursive, yang mengandung referensi langsung dan tak langsung ke dirinya sendiri, disediakan untuk data-data model yang lebih rumit lagi.
10.5.2. Methods
Secara umum, sebuah method adalah sebuah subprogram yang dideklarasikan di dalam sebuah object type spec dengan menggunakan keyword MEMBER atau STATIC. Method tersebut tidak dapat memiliki nama yang sama sebagai object type atau nama attributes-nya. MEMBER methods dijalankan pada instances, seperti
instance_expression.method()
Namun, STATIC methods dijalankan pada object type, bukan instances-nya, seperti
object_type_name.method()
Seperti packaged subprograms, methods memiliki dua bagian: sebuah specification dan sebuah body. Specification (spec secara singkat) terdiri dari sebuah nama method, sebuah daftar parameter opsional, dan, untuk functions, sebuah return type. Body merupakan code yang dijalankan untuk melakukan sebuah tugas tertentu.
Untuk setuap method spec di dalam sebuah object type spec, harus ada method body terkait di dalam object type body tersebut, atau method tersebut harus dideklarasikan NOT INSTANTIABLE untuk mengindikasikan bahwa body tersebut hanya tampil di dalam subtypes dari type-nya. Untuk menyesuaikan method specs dan bodies, PL/SQL compiler melakukan sebuah perbandingan token-by-token dari headers mereka. Headers tersebut harus benar-benar tepat.
Seperti attribute, sebuah formal parameter dideklarasikan dengan nama dan tipe data. Namun, tipe data dari sebuah parameter tidak dapat dibatasi ukurannya. Tipe data dapat berupa berbagai Oracle type kecuali yang tidak diperbolehkan untuk attributes (Baca kembali bab 10.5.1. tentang Attributes). Batasan-batasan yang sama berlaku bula untuk return types.
Pages: 1 2 3 4 5 6 7 8 9 10 11
| Buku ini membahas berbagai macam tip dan trik yang sangat berguna bagi Anda pembaca pengguna database Oracle. Pemula, mahasiswa, programmer, maupun database administrator yang mengharapkan solusi cepat dalam menangani permasalahan-permasalahan dalam penggunaan database Oracle dapat membaca buku ini. Anda tidak harus membaca buku ini secara urut karena buku ini di susun berdasarkan topik permasalahan, dan Anda dapat membaca topik-topik yang sesuai dengan permasalahan yang Anda hadapi. Dapat di beli di toko buku Gramedia, Gunung Agung, Uranus, Karisma, Uranus dsb. |


































