13 Şubat 2017

Oracle'da Temp Tablo Oluşturmak ve Silmek (Temporary Table)

Oracle'da Temp Tablo Oluşturmak ve Silmek (Temporary Table)

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;
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.