Saya selalu bertanya-tanya mengapa tipe data VARCHAR2 terbatas pada begitu sedikit karakter. Untuk sebagian besar atribut, Anda tidak memerlukan lebih dari 2.000 byte. Saya ingat ketika Oracle menaikkan batas dari 2.000 byte menjadi 4.000. Tapi SQL Server 2008R2 memungkinkan Anda menggunakan 8.000. Kita berbicara tentang data karakter dan batas 2.000 atau 4.000 byte tampak agak sewenang-wenang bagi saya. Sekarang di Oracle 12c, Anda dapat menggunakan VARCHAR2(32767) untuk maksimum 32KB. Tetapi sebelum Anda dapat menggunakan fitur baru ini, Anda perlu melakukan sedikit pekerjaan. Di luar kotak, Anda akan mendapatkan kesalahan.
SQL> create table test_tab (val varchar2(32000));create table test_tab (val varchar2(32000)) *ERROR pada baris 1:ORA-00910:panjang yang ditentukan terlalu panjang untuk tipe datanya
Oracle 12c menyertakan parameter baru, MAX_STRING_SIZE yang mengontrol seberapa besar tipe data VARCHAR2 Anda. Parameter ini dapat diatur ke STANDAR atau DIPERPANJANG. Standarnya adalah STANDAR yang membatasi VARCHAR2 hingga 4000 byte. Mengubah parameter ini ke standar menjadi EXTENDED adalah perjalanan satu arah. Anda tidak dapat kembali. Untuk melakukan perubahan, Anda perlu MEMULAI UPGRADE instance, memodifikasi parameter, dan menjalankan skrip.
SQL> SQL> SUMENDDOW IMMEDIATIATEDatabase ditutup.Database DROWKOUNTED.ORACLE CONTOM TUJUAN DOWN.SQL> Startup Upgradeoracle instance dimulai. set sistem max_string_size=EXTENDED scope=both;Sistem diubah.SQL> @?/rdbms/admin/utl32k.sqlIni mungkin memerlukan beberapa saat untuk dijalankan. Setelah selesai, pantulkan instance agar terbuka seperti biasa.
Sekarang saya dapat membuat tabel dengan tipe data yang lebih besar ini.
SQL> buat tabel test_tab (val varchar2(32000));Tabel dibuat.