Tüm tabloyu kopyalamak: COPY TABLE
Bir tablonun yapısını ve verisini başka bir tabloya aktarmak için COPY TABLE kullanılır. Varsayılan olarak satır bayrakları (flag) taşınmaz; WITHFLAGS ile bu bayraklar da (CHECKED, DELETED, INSERTED, CHANGE, READ, UPDATED, ROWTOOLTIP, SUMMARYROW) aktarılır — HIDE ve SELECTED gibi bazı bayraklar WITHFLAGS ile bile taşınmaz:
OBJECT:
TABLE SOURCE,
TABLE TMPTABLE;
SELECT CLIENT, USERNAME, CREATEDBY, CREATEDAT
FROM IASUSERS WHERE USERNAME LIKE 'ENES%'
INTO SOURCE;
SOURCE_UPDATED = 1;
SOURCE_READ = 1;
COPY TABLE SOURCE INTO TMPTABLE WITHFLAGS;
Eşleşen kolonları taşımak: MOVE-CORRESPONDING
İki tablonun yapısı birebir aynı olmak zorunda değilse, sadece isimleri eşleşen kolonları aktif satırdan aktif satıra taşımak için MOVE-CORRESPONDING kullanılır:
MOVE-CORRESPONDING {kaynaktablo} TO {hedeftablo} [WITHFLAGS];
Örneğin kaynak tabloda COL1, COL2 varken hedef tabloda sadece COL1 varsa, yalnızca COL1 aktarılır — yapılar tam eşleşmediği için COPY TABLE'ın aksine satır bazında ve seçici çalışır.
Koşullu toplu birleştirme: MERGETABLE
Belirli bir koşula uyan satırları kaynak tablodan hedef tabloya toplu taşımak için MERGETABLE kullanılır — LOOP ve LOCATERECORD komutlarına benzer üç varyasyonu vardır:
MERGETABLE {kaynak} INTO {hedef} [WITHFLAGS] WHERE {kosul};
MERGETABLE {kaynak} INTO {hedef} [WITHFLAGS]
CRITERIA COLUMNS {kolonlar} VALUES {degerler} [NOTCASESENSITIVE];
MERGETABLE {kaynak} INTO {hedef} [WITHFLAGS]
CRITERIA INDEXED {index} VALUES {degerler};
Sonuç
Üçü de "veriyi bir tablodan diğerine taşı" işini yapıyor ama farklı granülaritede: COPY TABLE tüm tabloyu, MOVE-CORRESPONDING tek bir aktif satırı (eşleşen kolonlarla), MERGETABLE ise koşula uyan bir grup satırı taşıyor. İhtiyacınız "hepsi mi, bir satır mı, yoksa filtrelenmiş bir grup mu" sorusuna göre doğru komutu seçin.
Yorumlar (0)
Yorum Yaz