x UNTUK y dalam definisi kolom DB2 membuat pernyataan tabel

Ini adalah pernyataan DB2 create table:

CREATE TABLE SCHEMA_F.TABLE_A (
    LEAFDESCRIPTION FOR F7UY2 CHAR(10) CCSID 1141  NOT NULL WITH DEFAULT
    ...

Apa sebenarnya arti LEAFDESCRIPTION FOR F7UY2?


person Bernhard    schedule 08.02.2016    source sumber


Jawaban (1)


tl;dr

Ini memungkinkan Anda menentukan nama pendek yang dapat digunakan dari program RPG (lama) di i dan beberapa utilitas sistem. Dalam hal ini, LeafDescription adalah nama panjang yang dapat digunakan dari SQL, dan F7UY2 dapat digunakan di dalam RPG, dll (dan SQL, tetapi nama panjang biasanya lebih disukai karena alasan yang jelas).


Ini adalah bagian dari perilaku khusus sistem yang tersedia di i.

Lihat, i (iSeries, Systemi, AS/400) dimulai sebagai mesin yang sangat berbeda. Beberapa dekade yang lalu, sebelum SQL benar-benar ada. Dan pada saat itu, nama bidang dan tabel dibatasi sekitar 6 karakter, dan program ditulis dengan mempertimbangkan hal ini.

Sekarang, lanjutkan ke saat SQL hadir. Di i, DB2 SQL dipasang (semacamnya) di atas sistem file yang ada. Artinya, antara lain, Anda dapat melakukan kueri terhadap file yang ada dengan SQL tanpa membuat ulang atau mengisi ulang file tersebut.
Sayangnya, hal ini juga berarti file tersebut terjebak dengan nama asli yang semi-samar, sebagian karena Anda masih memiliki semua program aslinya juga. Jika Anda membuat (atau membuat ulang, tergantung kasusnya) tabel melalui SQL, program RPG tidak dapat mereferensikannya. Jadi ini memungkinkan Anda untuk menentukan nama yang bisa referensikan - yang berarti Anda dapat beralih ke tabel berbasis SQL (yang memiliki beberapa keuntungan tambahan baru) tanpa perlu mengubah program Anda. Bahkan dengan dicabutnya batasan panjang nama di versi terbaru RPG, kemampuan untuk menghindari penggantian nama semuanya sekaligus adalah suatu anugerah.

person Clockwork-Muse    schedule 08.02.2016
comment
Satu hal lagi, merupakan kebiasaan untuk memberikan nama pendek untuk tabel baru. Meskipun Anda menggunakan nama panjang di mana pun. Jika tidak, sistem akan menetapkannya. LEAFDESCRIPTION akan memiliki sistem yang menghasilkan nama pendek LEAFD00001. - person Charles; 09.02.2016