30 most important pl sql interview questions
Najważniejsze pytania do wywiadów PL / SQL z przykładami, które pomogą Ci przygotować się do nadchodzącej rozmowy kwalifikacyjnej:
Co to jest PL / SQL?
PL / SQL (Procedural Language / SQL) jest zasadniczo proceduralnym rozszerzeniem Oracle - SQL. PL / SQL pomaga użytkownikowi tworzyć złożone aplikacje bazodanowe z wykorzystaniem struktur sterujących, procedur, funkcji, modułów itp.
W tym artykule omówimy najważniejsze pytania i odpowiedzi do wywiadów PL / SQL.
Pytania i odpowiedzi do wywiadów PL / SQL
Zaczynajmy!!
Pytanie 1) Odróżnić PL / SQL od SQL?
Odpowiedź: Różnice między SQL a PL / SQL można podzielić na następujące kategorie:
SQL | PL / SQL |
---|---|
SQL to język naturalny, który jest bardzo przydatny do przetwarzania interaktywnego. | PL / SQL jest proceduralnym rozszerzeniem Oracle - SQL. |
SQL nie oferuje żadnych procedur proceduralnych, takich jak testowanie warunków, zapętlanie. | PL / SQL obsługuje funkcje proceduralne, a także funkcje wysokiego języka, takie jak instrukcje warunkowe, instrukcje pętli itp. |
Wszystkie instrukcje SQL są wykonywane przez serwer bazy danych pojedynczo, dlatego jest to proces czasochłonny. | Instrukcje PL / SQL wysyłają jednocześnie cały blok instrukcji na serwer bazy danych, co znacznie ogranicza ruch w sieci. |
W SQL nie ma procedur obsługi błędów. | PL / SQL obsługuje niestandardową obsługę błędów. |
Pytanie 2) Wymień cechy PL / SQL?
Odpowiedź:
Charakterystyka PL / SQL jest następująca:
- PL / SQL umożliwia dostęp i współdzielenie tych samych podprogramów przez wiele aplikacji.
- Jest znany z przenośności kodu, ponieważ kod można wykonać w dowolnym systemie operacyjnym, pod warunkiem, że jest na nim załadowany Oracle.
- Dzięki PL / SQL użytkownicy mogą pisać własne, dostosowane procedury obsługi błędów.
- Poprawiona wydajność transakcji dzięki integracji ze słownikiem danych Oracle.
Pytanie 3) Jakie typy danych są dostępne w PL / SQL?
Odpowiedź: Typy danych definiują sposoby identyfikowania typu danych i powiązanych z nimi operacji.
Istnieją 4 typy predefiniowanych typów danych, które wyjaśniono w następujący sposób:
- Skalarne typy danych: Skalarny typ danych to niepodzielny typ danych, który nie ma żadnych składników wewnętrznych.
- Na przykład
- CHAR (zakres wartości znaków o stałej długości od 1 do 32767 znaków)
- VARCHAR2 (zakres wartości znaków o zmiennej długości od 1 do 32767 znaków)
- LICZBA (wartości dziesiętne stałe, zmiennoprzecinkowe lub całkowite)
- BOOLEAN (logiczny typ danych dla wartości TRUE FALSE lub NULL)
- DATA (przechowuje informacje o dacie i godzinie)
- LONG (dane znakowe o zmiennej długości)
- Złożone typy danych: Złożony typ danych składa się z innych typów danych i komponentów wewnętrznych, które można łatwo używać i nimi manipulować. Na przykład, RECORD, TABLE i VARRAY.
- Referencyjne typy danych: Typ danych odniesienia przechowuje wartości, zwane wskaźnikami, które oznaczają inne elementy programu lub elementy danych. Na przykład, KURSOR REF.
- Typy danych dużych obiektów: Typ danych Duży obiekt zawiera wartości, zwane lokalizatorami, które definiują położenie dużych obiektów (takich jak klipy wideo, obraz graficzny itp.) Przechowywanych poza linią.
- Na przykład
- BFILE (plik binarny)
- BLOB (duży obiekt binarny)
- CLOB (duży obiekt znakowy)
- NCLOB (duży obiekt typu NCHAR)
Zalecana lektura = >> PL SQL Typy danych
P # 4) Wyjaśnij przeznaczenie typów danych% TYPE i% ROWTYPE na przykładzie?
Odpowiedź: PL / SQL używa atrybutu deklaracji% TYPE do zakotwiczenia. Ten atrybut określa typ danych zmiennej, stałej lub kolumny. Atrybut% TYPE jest przydatny podczas deklarowania zmiennej, która ma ten sam typ danych, co kolumna tabeli.
Na przykład, zmienna m_empno ma ten sam typ danych i rozmiar jak kolumna empno w tabeli emp.
m_empno emp.empno%TYPE;
Atrybut% ROWTYPE służy do deklarowania zmiennej jako rekordu o takiej samej strukturze jak wiersz w tabeli. Wiersz jest zdefiniowany jako rekord, a jego pola mają takie same nazwy i typy danych, jak kolumny w tabeli lub widoku.
Na przykład:
dept_rec dept%ROWTYPE;
To deklaruje rekord, który może przechowywać cały wiersz tabeli DEPT.
Pytanie 5) Co rozumiesz przez pakiety PL / SQL?
Odpowiedź: Pakiety PL / SQL to obiekty schematu, które grupują funkcje, procedury składowane, kursory i zmienne w jednym miejscu.
Pakiety składają się z 2 obowiązkowych części:
- Specyfikacja pakietu
- Treść pakietu
P # 6) Co rozumiesz przez kursory PL / SQL?
Odpowiedź: PL / SQL wymaga specjalnej zdolności do pobierania i przetwarzania więcej niż jednego wiersza, a ten zasób jest znany jako Cursors. Kursor jest wskaźnikiem do obszaru kontekstu, który jest obszarem pamięci zawierającym instrukcje SQL i informacje do ich przetwarzania.
Kursor PL / SQL to w zasadzie mechanizm, w ramach którego wybieranych jest wiele wierszy danych z bazy danych, a następnie każdy wiersz jest indywidualnie przetwarzany w programie.
Q # 7) Wyjaśnij typy kursorów.
pakiet oprogramowania najczęściej używany do tworzenia prostych wykresów to
Odpowiedź: Istnieją dwa typy kursorów.
Są one wyjaśnione w następujący sposób:
a) Jawne kursory: W przypadku zapytań zwracających więcej niż jeden wiersz programista deklaruje i nazywa jawny kursor. Aby użyć wyraźnego kursora w PL / SQL, należy wykonać 4 kroki
- Zadeklaruj kursor
Składnia: CURSOR jest
Instrukcja SELECT;
Tutaj jest nazwa przypisana do kursora, a instrukcja SELECT jest zapytaniem, które zwraca wiersze do aktywnego zestawu kursora.
- Otwórz kursor
Składnia: OTWARTY ;
Gdzie to nazwa wcześniej zdefiniowanego kursora.
- Pobierz wiersze z kursora
Składnia: FETCH INTO;
Tutaj odnosi się do nazwy wcześniej zdefiniowanego kursora, z którego pobierane są wiersze.
reprezentuje listę zmiennych, które otrzymają pobierane dane.
- Zamknięcie kursora
Składnia: BLISKO ;
Tutaj jest nazwa zamykanego kursora.
b) Ukryte kursory: Kiedy wykonywana jest dowolna instrukcja SQL, PL / SQL automatycznie tworzy kursor bez definiowania takich kursorów, nazywane są kursorami niejawnymi.
W przypadku poniższych instrukcji PL / SQL używa niejawnych kursorów
- WSTAWIĆ
- AKTUALIZACJA
- KASOWAĆ
- SELECT (zapytania zwracające dokładnie jeden wiersz)
P # 8) Kiedy używamy wyzwalaczy?
Odpowiedź: Słowo „wyzwalacz” oznacza aktywację. W PL / SQL wyzwalacz jest procedurą składowaną, która definiuje akcję podejmowaną przez bazę danych podczas wykonywania zdarzenia związanego z bazą danych.
Wyzwalacze są wymagane głównie do następujących celów:
- Aby zachować złożone ograniczenia integralności
- Inspekcja informacji tabeli poprzez rejestrowanie zmian
- Sygnalizacja innych działań programu po wprowadzeniu zmian w tabeli
- Egzekwowanie złożonych reguł biznesowych
- Zapobieganie nieprawidłowym transakcjom
P # 9) Wyjaśnij różnicę w wykonywaniu wyzwalaczy i procedur składowanych?
Odpowiedź: Procedura składowana jest wykonywana jawnie przez wydanie instrukcji wywołania procedury z innego bloku za pośrednictwem wywołania procedury z argumentami.
Wyzwalacz jest wykonywany niejawnie za każdym razem, gdy ma miejsce jakiekolwiek zdarzenie wyzwalające, takie jak wystąpienie instrukcji DML.
P # 10) Wyjaśnij różnicę między wyzwalaczami a ograniczeniami?
Odpowiedź: Wyzwalacze różnią się od ograniczeń w następujący sposób:
Wyzwalacze | Ograniczenia |
---|---|
Ma wpływ tylko na wiersze dodane po włączeniu wyzwalacza. | Wpływa na wszystkie wiersze tabeli, w tym na te, które już istnieją, gdy ograniczenie jest włączone. |
Wyzwalacze służą do implementacji złożonych reguł biznesowych, których nie można zaimplementować przy użyciu ograniczeń integralności. | Ograniczenia utrzymują integralność bazy danych. |
Q # 11) Co to jest blok PL / SQL?
Odpowiedź: W PL / SQL instrukcje są pogrupowane w jednostki zwane blokami. Bloki PL / SQL mogą zawierać stałe, zmienne, instrukcje SQL, pętle, instrukcje warunkowe, obsługę wyjątków. Bloki mogą również budować procedurę, funkcję lub pakiet.
Rozłożysto, Bloki PL / SQL są dwojakiego rodzaju:
(i) Anonimowe bloki: Bloki PL / SQL bez nagłówka są nazywane blokami anonimowymi. Te bloki nie tworzą treści procedury, funkcji ani wyzwalaczy.
Przykład:
DECLARE num NUMBER(2); sq NUMBER(3); BEGIN num:= &Number1; sq := num*num; DBMS_OUTPUT.PUT_LINE(‘Square:’ ||sq); END;
(ii) Nazwane bloki: Bloki PL / SQL posiadające nagłówek lub etykiety są nazywane blokami nazwanymi. Nazwane bloki mogą być podprogramami (procedurami, funkcjami, pakietami) lub wyzwalaczami.
Zalecana lektura = >> Procedury i funkcje języka PL SQL
Przykład:
FUNCTION sqr (num IN NUMBER) RETURN NUMBER is sq NUMBER(2); BEGIN sq:= num*num; RETURN sq; END;
P # 12) Rozróżnić błędy składniowe i błędy czasu wykonania?
Odpowiedź:
Błędy składniowe są tymi, które można łatwo zidentyfikować za pomocą kompilatora PL / SQL. Te błędy mogą być błędem w pisowni itp.
wady i zalety relacyjnych i nierelacyjnych baz danych
Błędy czasu wykonywania to te błędy w bloku PL / SQL, dla których sekcja obsługi wyjątków ma być dołączona do obsługi błędów. Tymi błędami może być instrukcja SELECT INTO, która nie zwraca żadnych wierszy.
P # 13) Co to są COMMIT, ROLLBACK i SAVEPOINT?
Odpowiedź: COMMIT, SAVEPOINT i ROLLBACK to trzy specyfikacje transakcji dostępne w PL / SQL.
Instrukcja COMMIT: Kiedy wykonywana jest operacja DML, manipuluje on tylko danymi w buforze bazy danych, a baza danych pozostaje nienaruszona przez te zmiany. Aby zapisać / zapisać te zmiany transakcji w bazie danych, musimy ZATWIERDZIĆ transakcję. Transakcja COMMIT zapisuje wszystkie zaległe zmiany od ostatniego COMMIT i następuje następujący proces
- Blokady wierszy, których to dotyczy, są zwolnione
- Transakcja oznaczona jako zakończona
- Szczegóły transakcji są przechowywane w słowniku danych.
Składnia: POPEŁNIĆ;
Oświadczenie ROLLBACK: Kiedy chcemy cofnąć lub usunąć wszystkie zmiany, które zaszły do tej pory w bieżącej transakcji, wymagamy wycofania transakcji. Innymi słowy, ROLLBACK usuwa wszystkie zaległe zmiany od ostatniego COMMIT lub ROLLBACK.
Składnia umożliwiająca całkowite wycofanie transakcji:
ROLLBACK;
Instrukcja SAVEPOINT: Instrukcja SAVEPOINT podaje nazwę i oznacza punkt w przetwarzaniu bieżącej transakcji. Zmiany i blokady, które wystąpiły przed SAVEPOINT w transakcji, są zachowywane, podczas gdy te, które wystąpiły po zwolnieniu SAVEPOINT.
Składnia:
PUNKT ZAPISU ;
P # 14) Co to jest tabela mutacji i tabela ograniczeń?
Odpowiedź: Tabela, która jest obecnie modyfikowana przez instrukcję DML, podobnie jak definiowanie wyzwalaczy w tabeli, jest nazywana Tabela mutacji .
Tabela, z której może być konieczne odczytanie ograniczenia integralności referencyjnej, jest znana jako tabela ograniczająca .
P # 15) Jakie są rzeczywiste parametry i parametry formalne?
Odpowiedź: Zmienne lub wyrażenie określane jako parametry, które pojawiają się w instrukcji wywołania procedury, są znane jako Rzeczywiste parametry .
Na przykład: podnieść_sal (emp_num, zasługa + kwota);
W powyższym przykładzie emp_num i amount to dwa rzeczywiste parametry.
Zmienne zadeklarowane w nagłówku procedury, do których odwołuje się treść procedury, są nazywane jako Parametry formalne .
Na przykład:
PROCEDURA podnoszenie_sal (emp_id INTEGER) JEST
curr_sal REAL:
……… ..
ZACZYNAĆ
WYBIERZ sal INTO cur_sal FROM emp WHERE empno = emp_id;
…….
END raise_sal;
W powyższym przykładzie emp_id działa jako parametr formalny.
P # 16) Jaka jest różnica między instrukcjami ROLLBACK i ROLLBACK TO?
Odpowiedź: Transakcja jest całkowicie zakończona po wykonaniu instrukcji ROLLBACK, tj. Komenda ROLLBACK całkowicie cofnie transakcję i zwolni wszystkie blokady.
Z drugiej strony transakcja jest nadal aktywna i działa po komendzie ROLLBACK TO, ponieważ cofa tylko część transakcji do danego SAVEPOINT.
P # 17) Napisz skrypt PL / SQL, aby wyświetlić następującą serię liczb: 99,96,93 …… 9,6,3?
Odpowiedź
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; /
P # 18) Jakie są 3 tryby parametru?
Odpowiedź: 3 tryby parametru to IN, OUT, IN OUT.
Można to wyjaśnić w następujący sposób:
- Parametry IN: Parametry IN umożliwiają przekazywanie wartości do wywoływanej procedury i mogą być inicjalizowane na wartości domyślne. Parametry IN działają jak stałe i nie mogą być przypisane do żadnej wartości.
- Parametry wyjściowe: Parametry OUT zwracają wartość do obiektu wywołującego i muszą być określone. Parametry OUT działają jak niezainicjowana zmienna i nie mogą być używane w wyrażeniu.
- Parametry IN OUT: Parametry IN OUT przekazują wartości początkowe do procedury i zwracają zaktualizowane wartości do obiektu wywołującego. Parametry IN OUT działają jak zainicjowana zmienna i powinny mieć przypisaną wartość.
P # 19) Dlaczego% ISOPEN jest zawsze fałszywe dla niejawnego kursora?
Odpowiedź: Niejawny kursor, atrybut SQL% ISOPEN jest zawsze fałszywy, ponieważ niejawny kursor jest otwierany dla instrukcji DML i zamykany natychmiast po wykonaniu instrukcji DML.
P # 20) Kiedy wykonywana jest instrukcja DML, w których atrybutach kursora jest zapisywany wynik instrukcji?
Odpowiedź: Wynik wyciągu jest zapisywany w 4 atrybutach kursora.
To są:
- SQL% FOUND
- SQL% NIE ZNALEZIONO
- SQL% ROWCOUNT
- SQL% ISOPEN
Q # 21) Jakie są sposoby komentowania w kodzie PL / SQL?
Odpowiedź: Komentarze to tekst dołączony do kodu w celu zwiększenia czytelności i zrozumienia dla czytelnika. Te kody nigdy nie są wykonywane.
Istnieją dwa sposoby komentowania w PL / SQL:
1) Komentarz w jednej linii: Ten komentarz zaczyna się od podwójnego -.
Przykład:
OGŁOSIĆ
liczba NUMER (2); - jest to zmienna lokalna.
ZACZYNAĆ
2) Komentarz w wielu wierszach: Ten komentarz zaczyna się od / * i kończy na * /.
Przykład:
ZACZYNAĆ
num: = & p_num; / * To jest zmienna języka bazowego używana w treści programu * /
……….
KONIEC
P # 22) Co rozumiesz przez obsługę wyjątków w PL / SQL?
Odpowiedź: Gdy wystąpi błąd w PL / SQL, zgłaszany jest wyjątek. Innymi słowy, aby poradzić sobie z niepożądanymi sytuacjami, w których skrypty PL / SQL zostały nieoczekiwanie zakończone, program zawiera kod obsługi błędów. W PL / SQL cały kod obsługi wyjątków jest umieszczony w sekcji EXCEPTION.
Istnieją 3 rodzaje WYJĄTKÓW:
- Wstępnie zdefiniowane wyjątki: Typowe błędy związane ze wstępnie zdefiniowanymi nazwami.
- Niezdefiniowane wyjątki: Mniej powszechne błędy bez wstępnie zdefiniowanych nazw.
- Wyjątki zdefiniowane przez użytkownika: Nie powodują błędów w czasie wykonywania, ale naruszają reguły biznesowe.
P # 23) Wymień kilka predefiniowanych wyjątków?
Odpowiedź:
Niektóre z predefiniowanych wyjątków to:
- NIE ZNALEZIONO DANYCH: Instrukcja SELECT w jednym wierszu, w której nie są zwracane żadne dane.
- TOO_MANY_ROWS: Instrukcja SELECT w jednym wierszu, w której zwracanych jest więcej niż jeden wiersz.
- INVALID_CURSOR: Wystąpiła niedozwolona operacja kursora.
- ZERO_DIVIDE: Podjęto próbę podzielenia przez zero.
P # 24) Co to są wyjątki kursora PL / SQL?
Odpowiedź:
Wyjątki związane z kursorami PL / SQL to:
- CURSOR_ALREADY_OPEN
- INVALID_CURSOR
P # 25) Wyjaśnij różnicę między kursorem zadeklarowanym w procedurach a kursorami zadeklarowanymi w specyfikacji pakietu?
Odpowiedź: Kursor zadeklarowany w procedurze jest traktowany jako lokalny i dlatego nie ma do niego dostępu inne procedury.
Kursor zadeklarowany w specyfikacji pakietu jest traktowany jako globalny i dlatego można uzyskać do niego dostęp za pomocą innych procedur.
P # 26) Czym są zamiast wyzwalaczy?
Odpowiedź: Wyzwalacze INSTEAD OF to wyzwalacze napisane specjalnie do modyfikowania widoków, których nie można bezpośrednio modyfikować za pomocą instrukcji SQL DML.
P # 27) Co to są wyrażenia?
Odpowiedź: Wyrażenia są reprezentowane przez sekwencję literałów i zmiennych oddzielonych operatorami. W PL / SQL operacje służą do manipulowania, porównywania i obliczania niektórych danych. Wyrażenie jest połączeniem „operatorów” i „operandów”.
- Operandy: To argument dla operatorów. Operandy mogą być zmiennymi, wywołaniami funkcji lub stałą.
- Operatorzy: Określają one działania, które mają być wykonywane na operatorach. Przykład: „+”, „*” Itp.
Q # 28) Wymień różne typy wyrażeń w przykładzie.
Odpowiedź: Wyrażenia mogą być takie, jak wspomniano poniżej:
- Wyrażenia liczbowe lub arytmetyczne: Przykład: 20 * 10+ 15
- Wyrażenia logiczne: Przykład: „Spot” LIKE „sp% t”
- Wyrażenia łańcuchowe: Przykład: LENGTH („NEW YORK” || „NY”)
- Wyrażenia dat: Przykład: SYSDATE> TO_DATE („15-LIS-16”, „dd-mm-rr”)
P # 29) Napisz program, który pokaże użycie pętli WHILE do obliczenia średniej liczby wprowadzonych przez użytkownika, a wprowadzenie większej liczby liczb zostanie zatrzymane przez wprowadzenie liczby 0?
Odpowiedź
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;
Q # 30) Co rozumiesz przez PL / SQL Records?
jak stworzyć nowy projekt w Eclipse
Odpowiedź: Rekordy PL / SQL mogą być określane jako zbiór wartości lub powiedzmy, grupa wielu informacji, z których każda jest prostszego typu i może być powiązana ze sobą jako pola.
W PL / SQL obsługiwane są trzy typy rekordów:
- Rekordy oparte na tabelach
- Rekordy oparte na programistach
- Rekordy oparte na kursorach
Wniosek
PL / SQL jest bardzo rozległa, jeśli chodzi o naukę i aplikacje. Mam nadzieję, że te pytania i odpowiedzi na rozmowę kwalifikacyjną pomogą Ci przejść.
Aby dowiedzieć się więcej o PL SQL, przeczytaj naszą kompleksową Seria samouczków PL / SQL .
Miłej nauki !!
rekomendowane lektury
- Pytania i odpowiedzi do wywiadu
- ETL Pytania i odpowiedzi podczas rozmowy kwalifikacyjnej testującej
- Top 30+ popularnych pytań i odpowiedzi do wywiadów z ogórkami
- 30 najpopularniejszych pytań i odpowiedzi do wywiadów SAS
- Najpopularniejsze pytania do wywiadów Oracle: pytania dotyczące Oracle Basic, SQL, PL / SQL
- 30 najczęściej zadawanych pytań i odpowiedzi na rozmowę z testami bezpieczeństwa
- 30+ najpopularniejszych pytań i odpowiedzi do wywiadów Scruma (LISTA 2021)
- 30 najpopularniejszych pytań i odpowiedzi do wywiadów DBMS