En İyi 65 PL/SQL Mülakat Soruları ve Cevapları

PDF İndir

1) PL SQL nedir?

PL SQL, etkileşimli SQL'in yanı sıra koşullu dallanma ve yineleme gibi prosedürel programlama dili yapılarına sahip prosedürel bir dildir.

2) % ROWTYPE ve TYPE RECORD arasında ayrım yapın.

% SATIR TİPİ sorgu, bir tablonun veya görünümün tüm satırını döndürdüğünde kullanılır.

TİP KAYDI, Öte yandan, bir sorgu farklı tabloların veya görünümlerin sütununu döndürdüğünde kullanılır.

Örneğin. TÜR r_emp (şimdiki değeri) KAYIT (sno smp.smpno%type,sname smp sname %type)

e_rec smp % SIRA TİPİ

İmleç c1, smpno,dept from smp;

e_rec c1 % SIRA TİPİ

3) İmleç kullanımlarını açıklar.

İmleç, SQL'de bilgilere erişilebilen adlandırılmış bir özel alandır. Birden çok satır döndüren sorgular için her satırı ayrı ayrı işlemeleri gerekir.

4) Döngü için bir imleç kodunu gösterin.

İmleç, %ROWTYPE öğesini dolaylı olarak döngü dizini olarak bildirir. Daha sonra bir imleç açar, kaydın alanlarındaki aktif kümeden değer satırlarını alır ve tüm kayıtlar işlendiğinde kapanır.

Örneğin. C1 DÖNGÜSÜNDE smp_rec İÇİN

toplam=toplam+smp_recsal;

SON DÖNGÜ;

5) Veritabanı tetikleyicisinin kullanımlarını açıklayın.

Belirli bir veritabanı tablosuyla ilişkili bir PL/SQL program birimine veritabanı tetikleyicisi denir. İçin kullanılır :

1) Denetim verileri değişiklikleri.

2) Olayları şeffaf bir şekilde günlüğe kaydedin.

3) Karmaşık iş kurallarını uygulayın.

4) Çoğaltma tablolarını koruyun

5) Sütun değerlerini türet

6) Karmaşık güvenlik yetkilerini uygulayın

6) İki tür istisna nedir?

PL/SQL bloğunun hata işleme kısmına İstisna adı verilir. İki türü vardır: user_defined ve önceden tanımlanmış.

7) Önceden tanımlanmış bazı istisnaları gösterin.

DUP_VAL_ON_INDEX

ZERO_DIVIDE

VERİ BULUNAMADI

TOO_MANY_ROWS

CURSOR_ALREADY_OPEN

GEÇERSİZ NUMARA

INVALID_CURSOR

PROGRAM_HATA

ZAMAN OUT _ON_RESOURCE

STORAGE_ERROR

GİRİŞ REDDEDİLDİ

VALUE_ERROR

vesaire.

8) Raise_application_error'ı açıklayın.

Veritabanı tetikleyicisinden veya depolanmış alt programdan kullanıcı tanımlı hata mesajlarının yayınlanmasına izin veren DBMS_STANDARD paketinin bir prosedürüdür.

9) Bir PL SQL bloğunda fonksiyonların ve prosedürlerin nasıl çağrıldığını gösterin.

İşlev, bir ifadenin parçası olarak adlandırılır.

toplam: = hesapla_sal ('b644')

Prosedür, PL/SQL'de bir ifade olarak adlandırılır.

hesapla_bonus('b644');

10) Veritabanı tetikleyici yürütmesi sırasında mevcut olan iki sanal tabloyu açıklayın.

Tablo sütunları THEN.column_name ve NOW.column_name olarak adlandırılır.

INSERT ile ilgili tetikleyiciler için yalnızca NOW.column_name değerleri kullanılabilir.

DELETE ile ilgili tetikleyiciler için, yalnızca THEN.column_name değerleri kullanılabilir.

GÜNCELLEME ile ilgili tetikleyiciler için her iki Tablo sütunu da kullanılabilir.

11) NULL'lara karşılaştırma yaparken uygulanacak kurallar nelerdir?

1) NULL asla DOĞRU veya YANLIŞ değildir

2) NULL, diğer değerlere eşit veya eşit olamaz

3) Bir ifadedeki bir değer NULL ise, o zaman ifadenin kendisi, birleştirme operatörü (||) dışında NULL olarak değerlendirilir.

12) Bir PL SQL süreci nasıl derlenir?

Derleme işlemi, sözdizimi denetimi, bağlama ve p-kod oluşturma işlemlerini içerir.

Sözdizimi denetimi, derleme hataları için PL SQL kodlarını kontrol eder. Tüm hatalar düzeltildiğinde, verileri tutan değişkenlere bir depolama adresi atanır. Bağlama denir. P-kodu, PL SQL motoru için bir talimat listesidir. P-kodu, adlandırılmış bloklar için veritabanında saklanır ve bir sonraki çalıştırılışında kullanılır.

13) Sözdizimi ve çalışma zamanı hatalarını ayırt edin.

Bir sözdizimi hatası, bir PL/SQL derleyicisi tarafından kolayca tespit edilebilir. Örneğin, yanlış yazım.

Bir PL/SQL bloğundaki istisna işleme bölümü yardımıyla bir çalışma zamanı hatası işlenir. Örneğin, herhangi bir satır döndürmeyen SELECT INTO ifadesi.

14) Commit, Rollback ve Savepoint'i açıklayın.

Bir COMMIT ifadesi için aşağıdakiler doğrudur:

  • Diğer kullanıcılar, işlem tarafından yapılan veri değişikliklerini görebilir.
  • İşlem tarafından elde edilen kilitler serbest bırakılır.
  • İşlemin yaptığı iş kalıcı hale gelir.

İşlem sona erdiğinde bir ROLLBACK ifadesi verilir ve aşağıdakiler doğrudur.

  • Bir geçişte yapılan iş, sanki hiç verilmemiş gibi geri alınır.
  • İşlemle elde edilen tüm kilitler serbest bırakılır.

Bir işlemde kullanıcı tarafından yapılan tüm işleri geri alır. SAVEPOINT ile işlemin sadece bir kısmı geri alınabilir.

15) Örtülü ve Açık İmleçleri tanımlayın.

Bir imleç varsayılan olarak örtüktür. Kullanıcı bu imleçteki bilgileri kontrol edemez veya işleyemez.

Bir sorgu birden çok veri satırı döndürürse, program açık bir imleç tanımlar. Bu, uygulamanın imleç onu döndürürken her satırı sırayla işlemesine olanak tanır.

16) Mutasyon tablosu hatasını açıklayın.

Bir tetikleyici, kullanmakta olduğu bir satırı güncellemeye çalıştığında oluşur. Görünümler veya geçici tablolar kullanılarak sabitlenir, böylece veritabanı birini seçer ve diğerini günceller.

17) Bir beyan beyanı ne zaman gereklidir?

DECLARE ifadesi, bağımsız, depolanmayan prosedürler gibi PL SQL anonim blokları tarafından kullanılır. Kullanılıyorsa, bağımsız bir dosyada önce gelmelidir.

18) Bir tabloya kaç tane tetikleyici uygulanabilir?

Bir tabloya maksimum 12 tetikleyici uygulanabilir.

19) SQLCODE ve SQLERRM'nin önemi nedir?

SQLCODE, son karşılaşılan hata için hata sayısının değerini, SQLERRM ise son hatanın mesajını döndürür.

20) Bir imleç açıksa, bir PL SQL Bloğunda nasıl bulabiliriz?

%ISOPEN imleç durumu değişkeni kullanılabilir.

21) İki PL/SQL imleç istisnasını gösterin.

İmleç_Zaten_Açık

Invaid_cursor

22) NULL ile hangi operatörler ilgilenir?

NVL, NULL değerini belirtilen başka bir değere dönüştürür.

var: = NVL (var2, 'Merhaba');

IS NULL ve IS NOT NULL, bir değişkenin değerinin NULL olup olmadığını özellikle kontrol etmek için kullanılabilir.

23) SQL*Plus'ın ayrıca bir PL/SQL Motoru var mı?

Hayır, SQL*Plus'ın içinde gömülü bir PL/SQL Motoru yoktur. Böylece tüm PL/SQL kodu doğrudan veritabanı motoruna gönderilir. Her bir ifade ayrı ayrı çıkarılmadığından çok daha verimlidir.

24) PL SQL geliştiricileri için hangi paketler mevcuttur?

DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE gibi DBMS_ serisi paketler.

25) Bir tetikleyicinin 3 temel bölümünü açıklayın.

  • Tetikleyici bir ifade veya olay.
  • bir kısıtlama
  • Aksiyon

26) Karakter işlevleri nelerdir?

INITCAP, UPPER, SUBSTR, LOWER ve LENGTH hepsi karakter fonksiyonlarıdır. Grup işlevleri, tek tek satırların aksine satır gruplarına dayalı sonuçlar verir. Bunlar MAX, MIN, AVG, COUNT ve SUM'dur.

27) TTITLE ve BTITLE'ı açıklayın.

Rapor üstbilgilerini ve altbilgilerini kontrol eden TTITLE ve BTITLE komutları.

28) PL/SQL'in imleç niteliklerini gösterin.

%ISOPEN : İmlecin açık olup olmadığını kontrol eder

%ROWCOUNT : Güncellenen, silinen veya getirilen satır sayısı.

%FOUND : İmlecin herhangi bir satır alıp almadığını kontrol eder. Satırlar getirilirse doğrudur

%NOT FOUND : İmlecin herhangi bir satır alıp almadığını kontrol eder. Satırlar getirilmezse Doğru'dur.

29) Bilgisayar Nedir?

Intersect, iki tablonun ürünüdür ve yalnızca eşleşen satırları listeler.

30) Diziler nelerdir?

Diziler, bir kilitleme yükü olmadan sıra numaraları oluşturmak için kullanılır. Bunun dezavantajı, işlem geri alınırsa sıra numarasının kaybolmasıdır.

31) Tetikleyicileri ekleyip sildikten ÖNCE ve SONRA sütun değerlerine nasıl başvurursunuz?

'new.column name' anahtar sözcüğünü kullanarak, tetikleyiciler yeni koleksiyona göre sütun değerlerine başvurabilir. 'old.column name' anahtar sözcüğünü kullanarak, eski koleksiyona göre sütun değerlerine başvurabilirler.

32) SYSDATE ve USER anahtar sözcüklerinin kullanım alanları nelerdir?

SYSDATE, geçerli sunucu sistem tarihini ifade eder. Sahte bir sütundur. KULLANICI aynı zamanda sözde bir sütundur ancak oturumda oturum açmış mevcut kullanıcıyı ifade eder. Tabloda meydana gelen değişiklikleri izlemek için kullanılırlar.

33) ROWID, bir sorguyu daha hızlı çalıştırmaya nasıl yardımcı olur?

ROWID, bir satırın mantıksal adresidir, fiziksel bir sütun değildir. Veri bloğundaki veri bloğu numarası, dosya numarası ve satır numarasından oluşur. Böylece, G/Ç zamanı satırı alırken en aza indirilir ve daha hızlı bir sorgu ile sonuçlanır.

34) Veritabanı bağlantıları ne için kullanılır?

Veritabanı bağlantıları, çeşitli veritabanları arasında veya test, geliştirme ve üretim gibi farklı ortamlar arasında iletişim kurmak için oluşturulur. Veritabanı bağlantıları, diğer bilgilere de erişmek için salt okunurdur.

35) İmleci getirmek ne işe yarar?

Bir imleç getirildiğinde, Sonuç Kümesi satır satır okunur.

36) İmleci kapatmak ne işe yarar?

Bir imleci kapatmak, özel SQL alanını temizler ve belleğin tahsisini kaldırır

37) Kontrol Dosyasının kullanımlarını açıklar.

İkili bir dosyadır. Veritabanının yapısını kaydeder. Çeşitli günlük dosyalarının, adların ve zaman damgalarının konumlarını içerir. Bir dosya bozulursa bilgilerin alınmasına yardımcı olmak için farklı konumlarda saklanabilirler.

38) Tutarlılığı Açıklayın

Tutarlılık, verilerin taahhüt edilene kadar diğer kullanıcılara yansıtılmayacağını, böylece tutarlılığın korunacağını gösterir.

39) Anonim bloklar ve alt programlar arasındaki fark.

Anonim bloklar, alt programlar derlenip veritabanında saklanırken hiçbir yerde depolanmayan adsız bloklardır. Çalışma zamanında derlenirler.

40) DECODE ve CASE arasındaki fark.

DECODE ve CASE ifadeleri birbirine çok benzer, ancak CASE, DECODE'un genişletilmiş versiyonudur. DECODE, yerinde Karar verme ifadelerine izin vermez.

decode(totalsal=12000,'high',10000,'medium') öğesini smp'den decode_tesr olarak seçin, burada smpno (10,12,14,16);

Bu ifade bir hata döndürür.

CASE, doğrudan PL SQL'de kullanılır, ancak DECODE, PL SQL'de yalnızca SQL aracılığıyla kullanılır.

41) Otonom işlemi açıklar.

Özerk bir işlem, ana veya ana işlemin bağımsız bir işlemidir. Başka bir işlem tarafından başlatılırsa yuvalanmaz.

Olay günlüğü ve denetleme gibi otonom işlemleri kullanmak için çeşitli durumlar vardır.

42) SGA ve PGA arasında ayrım yapın.

SGA, Sistem Küresel Alanı anlamına gelirken PGA, Program veya Süreç Küresel Alanı anlamına gelir. PGA'ya yalnızca %10 RAM boyutu tahsis edilir, ancak SGA'ya %40 RAM boyutu verilir.

43) Ön_tanımlı_işlevlerin konumu nedir.

'İşlevler, Prosedürler ve Paketler' adı verilen standart pakette saklanırlar.

44) PL SQL'de polimorfizmi açıklar.

Polimorfizm, OOP'nin bir özelliğidir. Birden çok formda bir değişken, nesne veya işlev oluşturma yeteneğidir. PL/SQL, bir üye işlevi veya paketi içinde program birimi aşırı yüklemesi biçiminde Polimorfizmi destekler. Aşırı yükleme yapılırken açık mantıktan kaçınılmalıdır.

45) MERGE'in kullanım alanları nelerdir?

MERGE, birden çok DML ifadesini tek bir ifadede birleştirmek için kullanılır.

Sözdizimi: tablo adıyla birleştir

kullanarak(sorgu)

açık (birleştirme koşulu)

o zaman eşleşmediğinde

[ekle/güncelle/sil] komutu

eşleştiğinde

[ekle/güncelle/sil] komutu

46) Dağıtılmış Veritabanı Sisteminde aynı anda 2 sorgu çalıştırılabilir mi?

Evet, aynı anda yürütülebilirler. Bir sorgu, 2 aşamalı kesinleştirmeye dayalı olarak dağıtılmış bir veritabanı sisteminde ikinci sorgudan her zaman bağımsızdır.

47) Raise_application_error'ı açıklayın.

DBMS_STANDARD paketinin, veritabanı tetikleyicisinden veya depolanmış alt programdan user_defined hata mesajlarının yayınlanmasına izin veren bir prosedürüdür.

48) Geri dönüş ifadesi pl/sql'de de kullanılabilse de, çıkış parametresi nedir?

Out parametreleri, çağıran programda birden fazla değere izin verir. Fonksiyonlarda Out parametresi önerilmez. Birden fazla değer gerekiyorsa, işlevler yerine prosedürler kullanılabilir. Bu nedenle, bu prosedürler Out parametrelerini yürütmek için kullanılır.

49) Tarihi Jülyen tarih biçimine nasıl dönüştürürsünüz?

J biçimi dizesini kullanabiliriz:

SQL > ikiliden julian olarak to_char(to_date('29-Mar-2013','dd-mon-yyyy'),'J') seçin;

JULİAN

50) SPOOL'u açıklayın

Spool komutu, bir dosyadaki sql deyimlerinin çıktısını yazdırabilir.

biriktirme/tmp/sql_outtxt

dept='hesaplar' olduğu smp'den smp_name, smp_id seçin;

makara kapalı;

51) PL/SQL paketinin nelerden oluştuğundan bahseder misiniz?

Bir PL/SQL paketi şunlardan oluşur:

  • PL/SQL tablosu ve TYPE deyimlerini kaydedin
  • Prosedürler ve Fonksiyonlar
  • imleçler
  • Değişkenler (tablolar, skalerler, kayıtlar vb.) ve sabitler
  • Bir istisna ile bir hata numarasını ilişkilendirmek için istisna adları ve pragmalar
  • imleçler

52) PL/SQL paketlerinin faydaları nelerdir?

Gibi çeşitli faydalar sağlar

  • Zorunlu Bilgi Gizleme: Verilerin özel mi yoksa herkese açık mı tutulacağını seçme özgürlüğü sunar.
  • Yukarıdan aşağıya tasarım: Modülleri fiilen uygulamadan önce paketin içinde saklı olan kodun arayüzünü tasarlayabilirsiniz.
  • Nesne kalıcılığı: Bir paket belirtiminde bildirilen nesneler, uygulamadaki tüm PL/SQL nesneleri için küresel bir veri gibi davranır. Paketi bir modülde değiştirebilir ve ardından bu değişiklikleri başka bir modüle başvurabilirsiniz.
  • Nesneye yönelik tasarım: Paket, geliştiricilere paketin içindeki modüllerin ve veri yapılarının nasıl kullanılabileceği konusunda güçlü bir tutuş sağlar.
  • İşlem bütünlüğünü garanti etmek: Bir düzeyde işlem bütünlüğü sağlar
  • Performans iyileştirme: RDBMS, veritabanında depolanan tüm program nesnelerinin geçerliliğini otomatik olarak izler ve paketlerin performansını artırır.

53) PL/SQL kodunu izlemek için farklı yöntemler nelerdir?

İzleme kodu, çalışma zamanı sırasında kod performansını ölçmek için çok önemli bir tekniktir. İzleme için farklı yöntemler şunları içerir:

  • DBMS_APPLICATION_INFO
  • DBMS_TRACE
  • DBMS_SESSION ve DBMS_MONITOR
  • trcsess ve tkproof yardımcı programları

54) Hiyerarşik profil oluşturucunun ne yaptığından bahsedin?

Hiyerarşik profil oluşturucu, boşluklar ve performans izleme beklentileri arasındaki boşluğu doldurmanın yanı sıra, PL/SQL'de yapılan çağrıların profilini çıkarabilir. Hiyerarşik profil oluşturucunun verimliliği şunları içerir:

  • SQL ve PL/SQL zaman tüketimi için farklı raporlama
  • PL/SQL'de yapılan farklı alt program çağrılarının sayısını ve her bir alt program çağrısı ile harcanan süreyi raporlar
  • Komut satırı yardımcı programını kullanarak HTML biçiminde birden çok etkileşimli analiz raporu
  • Geleneksel profil oluşturucu ve diğer izleme yardımcı programlarından daha etkili

55) PLV msg'nin ne yapmanıza izin verdiğinden bahsedin?

PLV mesajı şunları yapmanızı sağlar:

  • PL/SQL tablosunda belirtilen satıra bireysel metin mesajı atayın
  • Mesaj metnini numaraya göre alır
  • Kısıtlama geçişli standart Oracle hata mesajları için kendi mesajlarınızı otomatik olarak değiştirir
  • Toplu yükleme mesaj numaraları ve bir veritabanı tablosundan doğrudan metin PLV msg PL/SQL tablosu

56) PLV (PL/Vision) paketinin sunduğu özelliklerden bahseder misiniz?

  • Boş ikame değeri
  • Onaylama rutinleri seti
  • Çeşitli yardımcı programlar
  • PL vizyonu boyunca kullanılan sabitler seti
  • Önceden tanımlanmış veri türleri
  • 57) PLVprs ve PLVprsps kullanımının ne olduğundan bahseder misiniz?
  • PLVpr'ler: PL/SQL için dize ayrıştırma için bir uzantıdır ve dize ayrıştırma işlevselliğinin en düşük seviyesidir.
  • PLVprsps: PL/SQL kaynak kodunu ayrı atomlara ayrıştırmak için en üst düzey pakettir. İşi halletmek için diğer ayrıştırma paketlerine güvenir.

58) Bir dosyayı dosya içeriğine ve dosyayı PL/SQL tablosuna önceden PL/SQL'e nasıl kopyalayabileceğinizi açıklayın.

Tek bir program çağrısı ile - ' fkopya prosedürü', bir dosyanın tüm içeriğini başka bir dosyaya kopyalayabilirsiniz. Bir dosyanın içeriğini doğrudan bir PL/SQL tablosuna kopyalamak için ' programını kullanabilirsiniz. dosya2pstab' .

59) PL/SQL'de istisna işlemenin önceden nasıl yapıldığını açıklayın.

İstisna işleme için PL/SQl, etkili bir PLVexc eklentisi sağlar. PLVexc, dört farklı istisna işleme eylemini destekler.

  • İşleme devam et
  • Kaydet ve sonra devam et
  • İşlemeyi durdur
  • Kaydedin ve ardından işlemeyi durdurun

Yeniden ortaya çıkan istisnalar için RAISE deyimini kullanabilirsiniz.

60) PL/SQL'de bir veri tabanı tablosuna log bilgisi yazarken karşılaşılabilecek problemden bahseder misiniz?

Bir veritabanı tablosuna günlük bilgilerini yazarken karşılaştığınız sorun, bilgilerin yalnızca yeni satırlar veritabanına taahhüt edildiğinde kullanılabilir olmasıdır. Bu tür PLVlog genellikle hataları izlemek için konuşlandırıldığından ve bu tür birçok durumda mevcut işlem başarısız olacağından veya başka bir şekilde geri alma gerekeceğinden bu bir sorun olabilir.

61) Bir PL/SQL tablo günlüğünü bir veritabanı tablosuna aktarmak için kullanılan işlev nedir?

Bir PL/SQL tablosu günlüğünü aktarmak için bir veritabanı günlük tablosu işlevi 'PROSEDÜR ps2db' kullanıldı.

62) PLVlog'un varsayılan 'geri alma' kayıt noktasını kullanmanız gerektiğinde?

PLVlog'un varsayılan 'geri alma' kayıt noktası, kullanıcılar geri alma etkinliğini açtığında ve put_line çağrısında alternatif bir kayıt noktası sağlamadığında kullanılır. Varsayılan kaydetme noktası, c none sabitine başlatılır.

63) PLVtab neden PL/SQL tablosuna erişmenin en kolay yolu olarak görülüyor?

PL/SQL tablosu, PL/SQL'deki dizilere en yakın olanıdır ve bu tabloya erişmek için önce bir tablo tipi tanımlamanız ve ardından PL/SQL tablosunun kendisini tanımlamanız gerekir. Ancak PLVtab'ı kullanarak kendi PL/SQL tablo türünüzü tanımlamaktan kaçınabilir ve PL/SQL veri tablosu erişimini kolaylaştırabilirsiniz.

64) PL/SQL tablolarının içeriğini gösterdiğinizde PLVtab'ın ne yapmanızı sağladığından bahsedin?

PLVtab, PL/SQL tablolarının içeriğini gösterdiğinizde aşağıdakileri yapmanızı sağlar.

  • Tablo için bir üst bilgi görüntüleme veya gizleme
  • Tablo değerleri için satır numaralarını görüntüleyin veya gizleyin
  • Tablonun her satırından önce bir önek göster

65) Mesajınızı bir tabloya nasıl kaydedebileceğinizi veya yerleştirebileceğinizi açıklayın?

Bir tabloya msj kaydetmek için bunu iki şekilde yapabilirsiniz.

  • Çağrılarla bireysel mesajları şu adrese yükleyin: yazı ekle prosedür
  • İle bir veritabanı tablosundan mesaj kümelerini yükleyin. load_from_dbms prosedür

66) PL/SQL'de 'modül prosedürü' fonksiyonunun kullanımı nedir?

'Modül prosedürü', belirli bir program birimindeki tüm kod satırlarının tek bir prosedür çağrısı ile dönüştürülmesini sağlar. Modüller için üç argüman var

  • modül_in
  • cor_in
  • Last_module_in

67) PL/SQL'de PLVcmt ve PLVrb'nin ne yaptığından bahseder misiniz?

PL/Vision, PL/SQL uygulamasında işlem işlemeyi yönetmenize yardımcı olan iki paket sunar. PLVcmt ve PLVrb'dir.

  • PLVcmt: PLVcmt paketi, taahhüt işleme ile başa çıkmak için mantığı ve karmaşıklığı tamamlar
  • PLVrb: PL/SQL'de geri alma etkinliği için programlı bir arayüz sağlar