En İyi 65 PL / SQL Mülakat Soruları & Yanıtlar

Anonim

PDF İndir

1) PL SQL nedir?

PL SQL, koşullu dallanma ve yineleme gibi prosedürel programlama dili yapılarının yanı sıra etkileşimli SQL'e sahip bir prosedür dilidir.

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

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

TYPE RECORD ise, bir sorgu farklı tablo veya görünümlerin sütununu döndürdüğünde kullanılır.

Örneğin. TİP r_emp olan KAYIT (SNO smp.smpno% türü, sname SMP sname% tipi)

e_rec smp% ROWTYPE

İmleç c1 smpno seçilir, smp'den ayrılır;

e_rec c1% ROWTYPE

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

İmleç, SQL'de bilgilere erişilebilen adlandırılmış özel bir 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 imlecin kodunu gösterin.

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

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

totalsal = totalsal + smp_recsal;

SON DÖNGÜ;

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

Belirli bir veritabanı tablosu ile ilişkili bir PL / SQL program birimi, veritabanı tetikleyicisi olarak adlandırılır. İç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üretin

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

6) İki tür istisna nelerdir?

PL / SQL bloğunun hata işleme kısmı İstisna olarak adlandırılır. Kullanıcı tanımlı ve önceden tanımlı olmak üzere iki türü vardır.

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_ERROR

TIMEOUT _ON_RESOURCE

STORAGE_ERROR

GİRİŞ REDDEDİLDİ

VALUE_ERROR

vb.

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

Veritabanı tetikleyicisinden veya depolanan alt programdan kullanıcı tanımlı hata mesajlarının verilmesine izin veren DBMS_STANDARD paketinin bir prosedürüdür.

9) İşlevlerin ve prosedürlerin bir PL SQL bloğunda 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.

hesap_ bonusu ('b644');

10) Veritabanı tetikleyicisi yürütülürken mevcut olan iki sanal tabloyu açıklayın.

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

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

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

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

11) Karşılaştırmalar yapılırken NULL'lara uygulanacak kurallar nelerdir?

1) BOŞ hiçbir zaman 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 bitiştirme operatörü (||) dışında NULL olarak değerlendirilir.

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

Derleme süreci sözdizimi denetimi, bağlama ve p-kod oluşturma süreçlerini 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. Buna Bağlama denir. P-kodu, PL SQL motoru için talimatların bir listesidir. P kodu, adlandırılmış bloklar için veritabanında saklanır ve bir sonraki çalıştırıldığında kullanılır.

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

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ı ele alınır. Örneğin, herhangi bir satır döndürmeyen SELECT INTO ifadesi.

14) Kaydetme, Geri Alma ve Kaydetme Noktasını açıklayın.

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.
  • İşlem tarafından yapılan iş kalıcı hale gelir.

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

  • Bir geçişte yapılan iş, hiç yayınlanmamış 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.

İmleç 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ç döndürürken her satırı sırayla işlemesine izin verir.

16) Değişen tablo hatasını açıklayın.

Bir tetikleyici şu anda kullanmakta olduğu bir satırı güncellemeye çalıştığında ortaya çıkar. 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 deyimi, bağımsız, depolanmamış yordamlar gibi anonim PL SQL 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, en son karşılaşılan hata için hata sayısının değerini döndürürken, SQLERRM son hatanın mesajını döndürür.

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

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

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

Cursor_Already_Open

Invaid_cursor

22) NULL ile hangi operatörler ilgilenir?

NVL, NULL'u 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'ta ayrıca PL / SQL Motoru var mı?

Hayır, SQL * Plus'ta gömülü bir PL / SQL Motoru yoktur. Böylece tüm PL / SQL kodu doğrudan veritabanı motoruna gönderilir. Her ifade ayrı ayrı sıyrılmadığı için çok daha etkilidir.

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

DBMS_ DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE gibi paket serileri.

25) Bir tetikleyicinin 3 temel parçası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 karakter işlevleridir. Grup işlevleri, tek tek satırların aksine satır gruplarına dayalı sonuçlar verir. MAX, MIN, AVG, COUNT ve SUM.

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

Rapor üst bilgilerini ve alt bilgilerini kontrol eden TTITLE ve BTITLE komutları.

28) PL / SQL imleç özelliklerini gösterin.

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

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

% FOUND: İmlecin herhangi bir satırı getirip getirmediğini kontrol eder. Satırların getirilmesi doğrudur

% BULUNAMADI: İmlecin herhangi bir satırı getirip getirmediğini kontrol eder. Satırlar getirilmezse doğrudur.

29) Bilgisayar nedir?

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

30) Sıralar nedir?

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 eklemenizden ve silmenizden Ö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 kelimelerinin kullanımları nelerdir?

SYSDATE, geçerli sunucu sistem tarihini ifade eder. Sözde bir sütundur. USER 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 / Ç süresi, 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?

Çeşitli veritabanları veya test, geliştirme ve üretim gibi farklı ortamlar arasında iletişim oluşturmak için veritabanı bağlantıları 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 okur.

36) İmleci kapatmak ne işe yarar?

Bir imlecin kapatılması, özel SQL alanını temizlemenin yanı sıra bellek ayırmasını da kaldırır

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

İkili bir dosyadır. Veritabanının yapısını kaydeder. Birkaç günlük dosyasının konumlarını, adları ve zaman damgaları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 işlenene 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 derlenirken ve 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 deyimleri çok benzerdir, ancak CASE, DECODE'un genişletilmiş sürümüdür. DECODE, kendi yerinde Karar verme beyanlarına izin vermez.

smp'den decode_tesr olarak decode (totalsal = 12000, 'high', 10000, 'medium') 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 yalnızca SQL aracılığıyla PL SQL'de kullanılır.

41) Otonom işlemi açıklayın.

Otonom işlem, ana veya ana işlemin bağımsız bir işlemidir. Başka bir işlemle başlatılmışsa yuvalanmaz.

Olay günlüğü ve denetim gibi özerk 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) Pre_defined_functions'ın yeri nedir?

"Fonksiyonlar, Prosedürler ve Paketler" adlı standart pakette saklanırlar.

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

Polimorfizm, OOP'nin bir özelliğidir. Birden çok formda bir değişken, bir nesne veya işlev yaratma 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 belirsiz olmayan 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ı ile birleştirme

kullanma (sorgu)

on (katılma koşulu)

o zaman eşleşmediğinde

[ekle / güncelle / sil] komutu

o zaman eşleştiğinde

[ekle / güncelle / sil] komutu

46) Dağıtık Veritabanı Sisteminde aynı anda 2 sorgu yürütülebilir mi?

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

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

Veritabanı tetikleyicisinden veya depolanan alt programdan kullanıcı tanımlı hata mesajlarının verilmesine izin veren DBMS_STANDARD paketinin bir prosedürüdür.

48) return ifadesi pl / sql'de de kullanılabilse de, kullanılan out parametresi nedir?

Out parametreleri, çağıran programda birden fazla değere izin verir. Çıkış parametresi fonksiyonlarda tavsiye edilmez. Birden çok değer gerekliyse işlevlerin 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 formatına nasıl çevirirsiniz?

J format dizesini kullanabiliriz:

Dual'den jülyen olarak SQL> to_char (to_date ('29 -Mar-2013 ',' gg-mon-yyyy '),' J ') seçin;

JULIAN

50) SPOOL'u açıklayın

Spool komutu, sql ifadelerinin çıktısını bir dosyaya yazdırabilir.

biriktirme / tmp / sql_outtxt

smp'den smp_name, smp_id seçin, burada dept = 'hesaplar';

biriktirmek;

51) PL / SQL paketinin nelerden oluştuğunu belirtin.

Bir PL / SQL paketi şunlardan oluşur:

  • PL / SQL tablosu ve kayıt TÜRÜ ifadeleri
  • Prosedürler ve Fonksiyonlar
  • İmleçler
  • Değişkenler (tablolar, skalerler, kayıtlar vb.) Ve sabitler
  • Bir hata numarasını bir istisna ile ilişkilendirmek için istisna isimleri ve pragmalar
  • İmleçler

52) PL / SQL paketlerinin faydalarından bahsedin?

Gibi çeşitli faydalar sağlar

  • Zorunlu Bilgi Gizleme: Verilerin gizli mi yoksa kamuya mı açık tutulacağını seçme özgürlüğü sunar.
  • Yukarıdan aşağıya tasarım: Modülleri gerçekten uygulamadan önce pakette gizli koda yönelik arabirimi tasarlayabilirsiniz.
  • Nesne kalıcılığı: Bir paket belirtiminde bildirilen nesneler, uygulamadaki tüm PL / SQL nesneleri için genel bir veri gibi davranır. Paketi bir modülde değiştirebilir ve ardından bu değişiklikleri başka bir modüle atayabilirsiniz.
  • Nesne odaklı 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 araçları

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 verimlilikleri ş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 zamanı 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 araçlarından daha etkilidir

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

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

  • PL / SQL tablosunda belirtilen satıra tek tek metin mesajı atayın
  • Mesaj metnini numarasına göre alır
  • Kısıtlı geçiş ile standart Oracle hata mesajlarının yerine kendi mesajlarınızı otomatik olarak değiştirir
  • Doğrudan bir veritabanı tablosundan mesaj numaralarını ve metni toplu yükleme PLV msg PL / SQL tablosu

56) PLV (PL / Vision) paketinin sunduklarından bahsedin?

  • Boş ikame değeri
  • Onaylama rutinleri seti
  • Çeşitli yardımcı programlar
  • PL vizyonunda kullanılan sabitler kümesi
  • Önceden tanımlanmış veri türleri
  • 57) PLVprs ve PLVprsps kullanımı nedir?
  • PLVprs: 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ı atomiklere ayrıştırmak için en yüksek seviyeli pakettir. İşin tamamlanması için diğer ayrıştırma paketlerine güvenir.

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

Tek bir program çağrısıyla - " fcopy 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 kopyalarken , " file2pstab" programını kullanabilirsiniz .

59) Önceden PL / SQL istisna işlemenin 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.

  • İşlemeye devam et
  • Kaydedin ve ardından devam edin
  • İşlemeyi durdur
  • Kaydedin ve ardından işlemeyi durdurun

Yeniden meydana gelen istisnalar için RAISE deyimini kullanabilirsiniz.

60) PL / SQL'de bir veri tabanı tablosuna günlük bilgilerini yazarken karşılaşabileceğiniz sorunlardan bahsedin?

Günlük bilgilerini bir veritabanı tablosuna yazarken, karşılaştığınız sorun, bilginin yalnızca yeni satırlar veritabanına kaydedildiğinde kullanılabilir olmasıdır. Bu, PLVlog genellikle hataları izlemek için konuşlandırıldığı için bir sorun olabilir ve bu tür birçok durumda mevcut işlem başarısız olabilir veya başka bir şekilde bir geri dönüşe ihtiyaç duyabilir.

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ılır.

62) PLVlog'un varsayılan "geri dönme" kayıt noktasını kullanmanız gerektiğinde?

PLVlog'un varsayılan "geri dönme" kayıt noktası, kullanıcılar geri alma etkinliğini etkinleştirdiğinde ve put_line çağrısında alternatif bir kayıt noktası sağlamadığında kullanılır. Varsayılan kayıt noktası c none sabiti olarak başlatılır.

63) PLVtab neden PL / SQL tablosuna erişmenin en kolay yolu olarak kabul edilir?

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

64) PLVtab, PL / SQL tablolarının içeriğini gösterdiğinizde neler yapmanızı sağlar?

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

  • Tablo için bir üstbilgi görüntüleme veya gizleme
  • Tablo değerleri için satır numaralarını göster veya pasifleştir
  • 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.

Mesajı bir tabloya kaydetmek için bunu iki şekilde yapabilirsiniz

  • Add_text prosedürüne çağrılarla tek tek mesajları yükleyin
  • Load_from_dbms prosedürü ile bir veritabanı tablosundan mesaj kümelerini yükleyin

66) PL / SQL'de "modül prosedürü" işlevinin kullanımından bahsedin?

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

  • module_in
  • cor_in
  • Last_module_in

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

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, commit işleme ile başa çıkmak için mantığı ve karmaşıklığı sarar
  • PLVrb: PL / SQL'deki aktiviteyi geri almak için programlı bir arayüz sağlar