30 most important pl sql interview questions
Yaklaşan Mülakata Hazırlanmanıza Yardımcı Olacak Örneklerle En İyi PL / SQL Mülakat Soruları:
PL / SQL nedir?
PL / SQL (Prosedür Dili / SQL) temelde Oracle - SQL'in prosedürel bir uzantısıdır. PL / SQL, kullanıcının kontrol yapıları, prosedürler, işlevler, modüller vb. Kullanarak karmaşık veritabanı uygulamaları geliştirmesine yardımcı olur.
Bu makale, en popüler PL / SQL mülakat sorusunu ve cevaplarını tartışacaktır.
PL / SQL Röportaj Soruları ve Cevapları
Hadi başlayalım!!
S # 1) PL / SQL ve SQL'i ayırt edebilir misiniz?
Cevap: SQL ve PL / SQL arasındaki fark aşağıdaki şekilde kategorize edilebilir:
SQL | PL / SQL |
---|---|
SQL, etkileşimli işleme için çok kullanışlı olan doğal bir dildir. | PL / SQL, Oracle - SQL'in prosedürel bir uzantısıdır. |
Koşul testi, döngü gibi prosedürel yetenekler SQL tarafından sunulmaz. | PL / SQL, prosedürel yeteneklerin yanı sıra koşullu ifadeler, döngü ifadeleri vb. Gibi yüksek dil özelliklerini destekler. |
Tüm SQL ifadeleri veritabanı sunucusu tarafından birer birer yürütülür, bu nedenle zaman alan bir işlemdir. | PL / SQL deyimleri tüm ifade bloğunu aynı anda veritabanı sunucusuna gönderir, böylece ağ trafiği önemli ölçüde azaltılır. |
SQL'de hiçbir hata işleme prosedürü yoktur. | PL / SQL, özelleştirilmiş hata işlemeyi destekler. |
S # 2) PL / SQL özelliklerini listeliyor musunuz?
Cevap:
PL / SQL'in özellikleri aşağıdaki gibidir:
- PL / SQL, aynı alt programların birden çok uygulama tarafından erişilmesine ve paylaşılmasına izin verir.
- Kodun, Oracle yüklenmiş olması koşuluyla herhangi bir işletim sisteminde çalıştırılabilmesi nedeniyle, kodun taşınabilirliği ile bilinir.
- PL / SQL ile kullanıcılar kendi özelleştirilmiş hata işleme rutinlerini yazabilirler.
- Oracle veri sözlüğüne entegrasyonla iyileştirilmiş işlem performansı.
S # 3) PL / SQL'de bulunan veri türleri nelerdir?
Cevap: Veri türleri, veri türünü ve bunlarla ilişkili işlemlerini belirleme yollarını tanımlar.
Aşağıda açıklanan 4 tür önceden tanımlanmış veri türü vardır:
- Skaler Veri Türleri: Skaler veri türü, herhangi bir dahili bileşeni olmayan atomik bir veri türüdür.
- Örneğin
- CHAR (sabit uzunlukta karakter değeri aralığı 1 ile 32.767 karakter arasında)
- VARCHAR2 (değişken uzunluklu karakter değeri aralığı 1 ile 32.767 karakter arasında)
- SAYI (sabit ondalık, kayan ondalık veya tam sayı değerleri)
- BOOLEAN (DOĞRU YANLIŞ veya NULL değerler için mantıksal veri türü)
- TARİH (tarih ve saat bilgilerini saklar)
- LONG (değişken uzunluktaki karakter verileri)
- Bileşik Veri Türleri: Bileşik veri türü, diğer veri türlerinden ve kolayca kullanılabilen ve değiştirilebilen dahili bileşenlerden oluşur. Örneğin, KAYIT, TABLO ve VARRAY.
- Referans Veri Tipleri: Bir referans veri türü, diğer program öğelerine veya veri öğelerine atanan işaretçiler olarak adlandırılan değerleri tutar. Örneğin, REF CURSOR.
- Büyük Nesne Veri Türleri: Büyük Nesne veri türü, satır dışında depolanan büyük nesnelerin (video klipler, grafik görüntü, vb.) Konumunu tanımlayan, yer belirleyici adı verilen değerleri tutar.
- Örneğin
- BFILE (İkili dosya)
- BLOB (İkili büyük nesne)
- CLOB (Karakter büyük nesne)
- NCLOB (NCHAR tipi büyük nesne)
Önerilen Okuma = >> PL SQL Veri Türleri
S # 4) Örnekle% TYPE ve% ROWTYPE veri türlerinin amacını açıklayın?
Cevap: PL / SQL, sabitleme için% TYPE bildirim özniteliğini kullanır. Bu özellik, bir değişken, sabit veya sütunun veri türünü sağlar. % TYPE özniteliği, bir tablo sütunuyla aynı veri türüne sahip bir değişkeni bildirirken kullanışlıdır.
Örneğin, m_empno değişkeni, sütun ile aynı veri türüne ve boyutuna sahiptir empno tablo emp.
m_empno emp.empno%TYPE;
% ROWTYPE özniteliği, bir değişkeni tablodaki bir satırla aynı yapıya sahip bir kayıt olarak bildirmek için kullanılır. Satır bir kayıt olarak tanımlanır ve alanları tablo veya görünümdeki sütunlarla aynı adlara ve veri türlerine sahiptir.
Örneğin:
dept_rec dept%ROWTYPE;
Bu, DEPT tablosu için tüm satırı saklayabilen bir kayıt bildirir.
S # 5) PL / SQL paketlerinden ne anlıyorsunuz?
Cevap: PL / SQL paketleri; işlevleri, saklı yordamları, imleçleri ve değişkenleri tek bir yerde gruplayan şema nesneleridir.
Paketlerin 2 zorunlu parçası vardır:
- Paket Özellikleri
- Paket gövdesi
S # 6) PL / SQL imleçlerinden ne anlıyorsunuz?
Cevap: PL / SQL, birden fazla satırı almak ve işlemek için özel bir yetenek gerektirir ve bu kaynak Cursors olarak bilinir. İmleç, SQL ifadelerini ve ifadeleri işlemek için bilgileri içeren bir bellek alanı olan bağlam alanına bir işaretçidir.
PL / SQL İmleç temelde, veritabanındaki verilerin birden çok satırının seçildiği ve ardından her satırın bir program içinde ayrı ayrı işlendiği bir mekanizmadır.
S # 7) İmleç türlerini açıklayın.
yazılım geliştirme yaşam döngüsü analiz aşaması
Cevap: İki tür imleç vardır.
Aşağıdaki şekilde açıklanmaktadır:
a) Açık İmleçler: Birden fazla satır döndüren sorgular için, açık bir imleç bir programcı tarafından bildirilir ve adlandırılır. PL / SQL'de açık imleci kullanmak için 4 adım izlenir
- İmleci bildir
Sözdizimi: CURSOR
SELECT ifadesi;
Burada, imlece atanan ad ve SELECT ifadesi, imleç aktif kümesine satırları döndüren sorgudur.
- İmleci aç
Sözdizimi: AÇIK;
Nerede, önceden tanımlanmış imlecin adıdır.
- İmleçten satırları getir
Sözdizimi: FETCH INTO;
Burada, satırların getirildiği önceden tanımlanmış imlecin adını ifade eder.
getirilen verileri alacak değişkenlerin listesini temsil eder.
- İmleci kapatma
Sözdizimi: KAPAT ;
Kapatılan imlecin adı burada.
b) Örtülü imleçler: Herhangi bir SQL ifadesi yürütüldüğünde, PL / SQL, örtük imleçler olarak bilinen bu tür imleçleri tanımlamadan otomatik olarak bir imleç oluşturur.
Aşağıdaki ifadeler için PL / SQL örtük imleçler kullanır
- INSERT
- GÜNCELLEME
- SİL
- SELECT (tam olarak bir satır döndüren sorgular)
S # 8) Tetikleyicileri ne zaman kullanıyoruz?
Cevap: 'Tetikleyici' kelimesi, etkinleştirmek anlamına gelir. PL / SQL'de tetikleyici, veritabanıyla ilgili olay gerçekleştirildiğinde veritabanı tarafından gerçekleştirilen bir eylemi tanımlayan bir saklı yordamdır.
Tetikleyiciler esas olarak aşağıdaki amaçlar için gereklidir:
- Karmaşık bütünlük kısıtlamalarını korumak için
- Değişiklikleri kaydederek tablo bilgilerini denetleme
- Tabloda değişiklik yapıldığında diğer program eylemlerine sinyal verme
- Karmaşık iş kurallarının uygulanması
- Geçersiz işlemlerin önlenmesi
S # 9) Tetikleyicilerin ve depolanan prosedürlerin yürütülmesindeki farkı açıklayın?
Cevap: Bir saklı yordam, bağımsız değişkenler içeren bir yordam çağrısı aracılığıyla başka bir bloktan bir yordam çağrısı deyimi yayınlayarak açıkça yürütülür.
Tetikleyici, DML ifadelerinin oluşumu gibi herhangi bir tetikleyici olay gerçekleştiğinde dolaylı olarak yürütülür.
S # 10) Tetikleyiciler ve Kısıtlamalar arasındaki farkı açıklayın?
Cevap: Tetikleyiciler, aşağıdaki şekillerde kısıtlamalardan farklıdır:
Tetikleyiciler | Kısıtlamalar |
---|---|
Yalnızca tetikleyici etkinleştirildikten sonra eklenen satırları etkiler. | Kısıtlama etkinleştirildiğinde zaten mevcut olanlar da dahil olmak üzere tablonun tüm satırlarını etkiler. |
Tetikleyiciler, bütünlük kısıtlamaları kullanılarak uygulanamayan karmaşık iş kurallarını uygulamak için kullanılır. | Kısıtlamalar, veritabanının bütünlüğünü korur. |
S # 11) PL / SQL bloğu nedir?
informatica mülakat soruları ve cevapları 5 yıllık deneyim
Cevap: PL / SQL'de, ifadeler Bloklar adı verilen birimler halinde gruplanır. PL / SQL blokları sabitleri, değişkenleri, SQL ifadelerini, döngüleri, koşullu ifadeleri, istisna işlemeyi içerebilir. Bloklar ayrıca bir prosedür, işlev veya paket oluşturabilir.
Genel olarak, PL / SQL blokları iki türdür:
(i) Anonim bloklar: Başlıksız PL / SQL blokları, anonim bloklar olarak bilinir. Bu bloklar bir prosedürün, işlevin veya tetikleyicilerin gövdesini oluşturmaz.
Misal:
DECLARE num NUMBER(2); sq NUMBER(3); BEGIN num:= &Number1; sq := num*num; DBMS_OUTPUT.PUT_LINE(‘Square:’ ||sq); END;
(ii) Adlandırılmış bloklar: Başlığa veya etiketlere sahip PL / SQL blokları, Adlandırılmış bloklar olarak bilinir. Adlandırılmış bloklar alt programlar (prosedürler, fonksiyonlar, paketler) veya Tetikleyiciler olabilir.
Önerilen Okuma = >> PL SQL Prosedürleri ve İşlevleri
Misal:
FUNCTION sqr (num IN NUMBER) RETURN NUMBER is sq NUMBER(2); BEGIN sq:= num*num; RETURN sq; END;
S # 12) Sözdizimi ve çalışma zamanı hataları arasındaki fark nedir?
Cevap:
Sözdizimi hataları bir PL / SQL derleyicisi tarafından kolayca tanımlanabilenlerdir. Bu hatalar bir yazım hatası vb. Olabilir.
Çalışma zamanı hataları PL / SQL bloğundaki hataların işlenmesi için bir istisna işleme bölümünün dahil edilmesi gereken hatalardır. Bu hatalar, herhangi bir satır döndürmeyen SELECT INTO ifadesi olabilir.
S # 13) COMMIT, ROLLBACK ve SAVEPOINT nedir?
Cevap: COMMIT, SAVEPOINT ve ROLLBACK, PL / SQL'de bulunan üç işlem özelliğidir.
COMMIT beyanı: DML işlemi gerçekleştirildiğinde, yalnızca veritabanı arabelleğindeki verileri işler ve veritabanı bu değişikliklerden etkilenmez. Bu işlem değişikliklerini veri tabanına kaydetmek / saklamak için işlemi TAMAMLAMAK zorundayız. COMMIT işlemi, son COMMIT'ten bu yana tüm bekleyen değişiklikleri kaydeder ve aşağıdaki süreç gerçekleşir
- Etkilenen satır kilitleri serbest bırakıldı
- İşlem tamamlandı olarak işaretlendi
- İşlem ayrıntıları veri sözlüğünde saklanır.
Sözdizimi: COMMIT;
ROLLBACK beyanı: Şu ana kadar geçerli işlemde meydana gelen tüm değişiklikleri geri almak veya silmek istediğimizde, işlemin geri alınmasını isteriz. Diğer bir deyişle, ROLLBACK, son COMMIT veya ROLLBACK'ten bu yana tüm bekleyen değişiklikleri siler.
Bir işlemi tamamen geri almak için sözdizimi:
GERİ DÖNÜŞ;
SAVEPOINT beyanı: SAVEPOINT ifadesi bir ad verir ve geçerli işlemin işlenmesinde bir noktayı işaretler. İşlemde SAVEPOINT'ten önce meydana gelen değişiklikler ve kilitler, SAVEPOINT serbest bırakıldıktan sonra meydana gelenler korunur.
Sözdizimi:
KAYDETME NOKTASI ;
S # 14) Değişim tablosu ve kısıtlama tablosu nedir?
Cevap: Bir tablodaki tetikleyicileri tanımlamak gibi şu anda bir DML ifadesi tarafından değiştirilmekte olan bir tablo, Değişen tablo .
Bir referans bütünlük kısıtlaması için okunması gerekebilecek bir tablo olarak bilinir kısıtlayıcı tablo .
S # 15) Gerçek parametreler ve biçimsel parametreler nelerdir?
Cevap: Prosedür çağrısı deyiminde görünen değişkenler veya parametreler olarak adlandırılan bir ifade, Gerçek parametreler .
Örneğin: yükseltme_sal (emp_num, merit + miktar);
Burada yukarıdaki örnekte emp_num ve miktar iki gerçek parametredir.
Prosedür başlığında bildirilen ve prosedür gövdesinde referans verilen değişkenler şu şekilde adlandırılır: Biçimsel parametreler .
Örneğin:
PROSEDÜR yükseltme_sal (emp_id INTEGER) IS
curr_sal GERÇEK:
……… ..
BAŞLA
Emp NEREDE empno = emp_id;
…….
END yükseltmek_sal;
Yukarıdaki örnekte emp_id, resmi bir parametre olarak hareket eder.
S # 16) ROLLBACK ve ROLLBACK TO ifadeleri arasındaki fark nedir?
Cevap: ROLLBACK ifadesinden sonra işlem tamamen sona erer, yani ROLLBACK komutu bir işlemi tamamen geri alır ve tüm kilitleri serbest bırakır.
Öte yandan, verilen SAVEPOINT'e kadar işlemin yalnızca bir bölümünü geri aldığı için ROLLBACK TO komutundan sonra bir işlem hala etkin ve çalışıyor.
S # 17) Aşağıdaki sayı dizisini görüntülemek için bir PL / SQL betiği yazın: 99,96,93 …… 9,6,3?
Cevap
SET SERVER OUTPUT ON DECLARE BEGIN FOR i IN REVERSE 1..99 LOOP IF Mod(i,3) = 0 THEN DBMS_OUTPUT.PUT_LINE(i); END IF; END LOOP; END; /
S # 18) 3 parametre modu nedir?
Cevap: Parametrenin 3 modu IN, OUT, IN OUT'tur.
Bunlar şu şekilde açıklanabilir:
- IN parametreleri: IN parametreleri, çağrılmakta olan prosedüre değerler aktarmanıza izin verir ve varsayılan değerlere başlatılabilir. IN parametreleri bir sabit gibi davranır ve herhangi bir değer atanamaz.
- OUT parametreleri: OUT parametreleri çağırana değer döndürür ve belirtilmelidir. OUT parametreleri, başlatılmamış bir değişken gibi davranır ve bir ifadede kullanılamaz.
- IN OUT parametreleri: IN OUT parametreleri, başlangıç değerlerini bir prosedüre aktarır ve güncellenmiş değerleri arayana döndürür. IN OUT parametreleri, başlatılmış bir değişken gibi davranır ve bir değer atanmalıdır.
S # 19) Neden% ISOPEN örtük bir imleç için her zaman yanlıştır?
Cevap: Örtük bir imleç olan SQL% ISOPEN özniteliği her zaman yanlıştır çünkü örtük imleç bir DML ifadesi için açılır ve DML ifadesinin yürütülmesinden hemen sonra kapanır.
S # 20) Bir DML ifadesi yürütüldüğünde, hangi imleç özniteliklerinde, ifadenin sonucu kaydedilir?
Cevap: İfadenin sonucu 4 imleç özelliğine kaydedilir.
Bunlar:
- SQL% BULUNAN
- SQL% NOTFOUND
- SQL% ROWCOUNT
- SQL% ISOPEN
S # 21) Bir PL / SQL kodunda yorum yapmanın yolları nelerdir?
Cevap: Yorumlar, okunabilirliği artırmak ve okuyucunun anlayabilmesi için koda dahil edilen metindir. Bu kodlar asla çalıştırılmaz.
PL / SQL'de yorum yapmanın iki yolu vardır:
1) Tek satır yorum: Bu yorum çift - ile başlar.
Misal:
BİLDİRMEK
num NUMBER (2); - yerel bir değişkendir.
BAŞLA
2) Çok satırlı yorum: Bu yorum / * ile başlar ve * / ile biter.
Misal:
BAŞLA
num: = & p_num; / * Bu, program gövdesinde kullanılan bir ana bilgisayar değişkenidir * /
……….
SON
S # 22) PL / SQL'de İstisna işlemeden ne anlıyorsunuz?
Cevap: PL / SQL'de bir hata oluştuğunda, istisna ortaya çıkar. Başka bir deyişle, PL / SQL betiklerinin beklenmedik bir şekilde sonlandırıldığı istenmeyen durumların üstesinden gelmek için, programa bir hata işleme kodu dahil edilir. PL / SQL'de, tüm istisna işleme kodu bir EXCEPTION bölümüne yerleştirilir.
3 tür İSTİSNA vardır:
- Önceden Tanımlanmış İstisnalar: Önceden tanımlanmış adlarla ilgili yaygın hatalar.
- Tanımsız İstisnalar: Önceden tanımlanmış isimleri olmayan daha az yaygın hatalar.
- Kullanıcı Tanımlı İstisnalar: Çalışma zamanı hatasına neden olmayın, ancak iş kurallarını ihlal edin.
S # 23) Önceden tanımlanmış bazı istisnaları listeleyebilir misiniz?
Cevap:
Önceden tanımlanmış bazı istisnalar şunlardır:
- VERİ BULUNAMADI: Hiçbir verinin döndürülmediği tek satırlı SELECT ifadesi.
- TOO_MANY_ROWS: Birden fazla satırın döndürüldüğü tek satırlı SELECT ifadesi.
- INVALID_CURSOR: Geçersiz imleç işlemi oluştu.
- ZERO_DIVIDE: Sıfıra bölme girişiminde bulunuldu.
S # 24) PL / SQL imleç istisnaları nelerdir?
Cevap:
PL / SQL imleçleriyle ilgili istisnalar şunlardır:
- CURSOR_ALREADY_OPEN
- INVALID_CURSOR
S # 25) Prosedürlerde belirtilen imleç ile paket spesifikasyonunda belirtilen imleçler arasındaki farkı açıklayın?
Cevap: Prosedürde bildirilen imleç yerel olarak kabul edilir ve bu nedenle diğer prosedürlerle erişilemez.
Paket spesifikasyonunda beyan edilen imleç global olarak kabul edilir ve bu nedenle diğer prosedürlerle erişilebilir.
S # 26) INSTEAD OF tetikleyiciler nelerdir?
Cevap: INSTEAD OF tetikleyicileri, özellikle görünümleri değiştirmek için yazılmış olan ve SQL DML deyimleriyle doğrudan değiştirilemeyen tetikleyicilerdir.
S # 27) İfadeler nedir?
Cevap: İfadeler, işleçlerle ayrılmış değişmez değerler ve değişkenler dizisi ile temsil edilir. PL / SQL'de, bazı verileri işlemek, karşılaştırmak ve hesaplamak için işlemler kullanılır. İfade, 'Operatörler' ve 'Operandlar' ın bir bileşimidir.
ücretsiz anime izlemek için iyi siteler
- Operandlar: Bunlar operatörler için bir argüman. İşlenenler bir değişken, işlev çağrısı veya sabit olabilir.
- Operatörler: Bunlar, operatörler üzerinde gerçekleştirilecek eylemleri belirtir. Misal: '+', '*', Vb.
S # 28) Örnekle farklı türden ifadeleri listeleyin.
Cevap: İfadeler aşağıda belirtildiği gibi olabilir:
- Sayısal veya Aritmetik ifadeler: Misal: 20 * 10+ 15
- Boole ifadeleri: Misal: 'Spot' GİBİ 'sp% t'
- Dize ifadeleri: Misal: UZUNLUK ('NEW YORK' || 'NY')
- Tarih ifadeleri: Misal: SYSDATE> TO_DATE (’15 -NOV-16 ’,' gg-aa-yy ')
S # 29) Kullanıcı tarafından girilen sayıların ortalamasını hesaplamak için WHILE döngüsünün kullanımını gösteren bir program yazın ve 0 sayısı girilerek daha fazla sayı girişi durdurulsun mu?
Cevap
DECLARE n NUMBER; avg NUMBER :=0 ; sum NUMBER :=0 ; count NUMBER :=0 ; BEGIN n := &enter_a_number; WHILE(n0) LOOP count := count+1; sum := sum+n; n := &enter_a_number; END LOOP; avg := sum/count; DBMS_OUTPUT.PUT_LINE(‘the average is’||avg); END;
S # 30) PL / SQL Kayıtlarından ne anlıyorsunuz?
Cevap: Bir PL / SQL kayıtları, her biri daha basit tipte olan ve alanlar olarak birbiriyle ilişkilendirilebilen çok sayıda bilgi parçasından oluşan bir değer koleksiyonu veya örneğin bir grup bilgi olarak adlandırılabilir.
PL / SQL'de desteklenen üç tür kayıt vardır:
- Tablo tabanlı kayıtlar
- Programcı tabanlı kayıtlar
- İmleç tabanlı kayıtlar
Sonuç
PL / SQL, öğrenme ve uygulama söz konusu olduğunda çok geniştir. Umarım bu röportaj soruları ve cevapları geçmenize yardımcı olur.
PL SQL hakkında daha fazla bilgi edinmek için kapsamlı sayfamızı okuyun PL / SQL Eğitim Serisi .
Mutlu Öğrenme !!
Önerilen Kaynaklar
- Mülakat Soruları ve Cevapları
- ETL Test Mülakat Soruları ve Cevapları
- En Popüler 30+ Salatalık Röportaj Soruları ve Cevapları
- En İyi 30 SAS Mülakat Soruları ve Cevapları
- En Popüler Oracle Mülakat Soruları: Oracle Basic, SQL, PL / SQL Soruları
- En İyi 30 Güvenlik Testi Görüşme Soruları ve Cevapları
- 30'dan Fazla En İyi Scrum Mülakat Soruları ve Cevapları (2021 LİSTESİ)
- İlk 30 DBMS Mülakat Soruları ve Cevapları