Temporary Tables, Geçici tablolar bir transaction veya session süresince ara sonuç kümeleri saklayan tablolardır. Buna ihtiyaç duymamızın sebebi Data testi yaparken tablo birleştirme işlemlerinden sonra dönen sonuç üzerinde çalışacak isek, gerçek Datanın bozulmaması için Datayı geçici bir tabloda tutarız ve işimiz bitince bu tabloyu sileriz.
Örnek olarak aşağıdaki komutu çalıştırdık ve istediğimiz verileri çektik;
SELECT EMP.EMPLOYEE_ID, EMP.FIRST_NAME, EMP.LAST_NAME, DP.DEPARTMENT_NAME
FROM HR.EMPLOYEES EMP LEFT JOIN HR.DEPARTMENTS DP
ON DP.DEPARTMENT_ID = EMP.DEPARTMENT_ID
WHERE DEPARTMENT_NAME = 'Shipping'
Şimdi bu verileri TESTTABLE adında geçici bir tabloya atalım;
CREATE GLOBAL TEMPORARY TABLE TESTTABLE
ON COMMIT PRESERVE ROWS
AS
SELECT EMP.EMPLOYEE_ID, EMP.FIRST_NAME, EMP.LAST_NAME, DP.DEPARTMENT_NAME
FROM HR.EMPLOYEES EMP LEFT JOIN HR.DEPARTMENTS DP
ON DP.DEPARTMENT_ID = EMP.DEPARTMENT_ID
WHERE DEPARTMENT_NAME = 'Shipping'
Oluşturduğumuz geçici tabloyu görmek için;
SELECT * FROM TESTTABLE
Tabloyu silmek için öncelikle TRUNCATE komutu ile tablo içindeki verileri boşaltmamız gerek;
TRUNCATE TABLE TESTTABLE
Oracle Database işlemlerinde Tabloyu (Table) komple DROP komutu ile kalıcı silmek isterseniz aşağıdaki komut kullanabilirsiniz.
DROP TABLE SCHEMA_NAME.TABLE_NAME CASCADE CONSTRAINTS;
Oracle Database işlemlerinde Tabloyu (Table) komple DROP komutu ile kalıcı silmek isterseniz aşağıdaki komut kullanabilirsiniz.
DROP TABLE SCHEMA_NAME.TABLE_NAME CASCADE CONSTRAINTS;
COMMIT;
Ek bilgi olarak bir şema (Schema) içerisindeki tüm Sequences bilgilerini ve hangi kullanıcının hangi Sequences bilgisine ait olduğunu görebilmek için aşağıdaki komutları Oracle Database için kullanabilirsiniz.
SELECT * FROM ALL_SEQUENCES
SELECT * FROM ALL_SEQUENCES WHERE SEQUENCES_OWNER IN ('USER_NAME')
Burak AVCI - Update: 19.08.2022
Hiç yorum yok:
Yorum Gönder
Makaleye Yorum ve Sorularınızı Bırakabilirsiniz.