ORACLE – PL/SQL – VİEW İŞLEMLERİ
Merhabalar ,
Bu yazımda Oracle – PL/SQL ile view oluşturma ve silme işlemi ile alakalı bir örnek paylaşacağım.
View‘ler karmaşık yapıdaki sorguları basitleştirmek, erişim izinlerini düzenlemek, bazı durumlarda sorgu süresini kısaltmak için kullanılan, gerçekte olmayan Select ifadeleri ile tanımlanmış sanal tablolardır.
VIEW OLUŞTURMA :
-- CREATE VIEW sal_50 AS SELECT employee_id ID_NUMBER, last_name NAME , salary * 12 ANN_SALARY FROM Employees WHERE department_id = 50 --
Diğer Kullanımı sütun başlıklarını CREAT OR REPLACE ten sonra yazarak ta oluşturulabilir.
-- CREATE OR REPLACE VIEW sal_50 (ID_NUMBER ,NAME ,ANN_SALARY) AS SELECT employee_id , last_name , salary * 12 FROM Employees WHERE department_id = 50 --
VIEW SILME:
-- DROP VIEW sal_50; --
VIEW SORGULAMA:
--
VIEW HAKKINDA BILGI ALMA:
-- --Daha önceden oluşturmuş olduğumuz PERSON_SECURITY_VIEW view hakkında bilgi alma SELECT dbms_metadata.getddl('VIEW','PERSON_SECURITY_VIEW') FROM DUAL; --
INLINE VIEW:
Normal yolla yapamadığımız bazı sorguların yapılmasına imkan verir , From keyword ‘ u ile birlikte tablo ismi yerine kullanılırlar. En önemli özelliği içerideki aliasları dışarı taşıyabilmemizdir.
-- SELECT a.last_name, a.salary, a.department_id, b.maxsal FROM employees a , (SELECT department_id,max(salary) maxsal FROM employees GROUP BY department_id) b WHERE a.department_id = b.department_id AND a.salary < b.maxsal --
VIEW DML İŞLEMLERİNE KARŞI KORUMAK:
VIEW leri DML (insert,update,delete) operasyonlarına karşı engellemek.
-- CREATE OR REPLACE VIEW emp_10 (employee_number,emloyee_name,job_title) AS SELECT employee_id, last_name, job_id FROM employees WHERE department_id = 10 WITH READ ONLY; --
Read only olarak oluşturduğumuz view üzerinde bir dml işlemi oluşturmaya çalıştığımızda Örn:
-- DELETE FROM emp_10 WHERE employee_number = 200; --
Hata Olarak : ORA-42399 hatası verecektir.
İşlemlerimizi bu kadar , İyi Çalışmalar 🙂 – Salih ŞEKER