ściągnij PDF
1) Co to jest PL SQL?
PL SQL to język proceduralny, który zawiera interaktywny SQL, a także konstrukcje proceduralnego języka programowania, takie jak rozgałęzianie warunkowe i iteracja.
2) Rozróżnij między% ROWTYPE a TYPE RECORD.
% ROWTYPE jest używany, gdy zapytanie zwraca cały wiersz tabeli lub widoku.
Z drugiej strony TYPE RECORD jest używany, gdy zapytanie zwraca kolumnę z różnymi tabelami lub widokami.
Na przykład. TYPE r_emp to RECORD (typ sno smp.smpno%, typ sname smp sname%)
e_rec smp% ROWTYPE
Kursor c1 wybiera smpno, dept z smp;
e_rec c1% ROWTYPE
3) Wyjaśnij użycie kursora.
Kursor to nazwany prywatny obszar w języku SQL, z którego można uzyskać dostęp do informacji. W przypadku zapytań, które zwracają wiele wierszy, muszą przetwarzać każdy wiersz osobno.
4) Pokaż kod kursora dla pętli.
Kursor niejawnie deklaruje% ROWTYPE jako indeks pętli. Następnie otwiera kursor, pobiera wiersze wartości z aktywnego zestawu w polach rekordu i zamyka się, gdy wszystkie rekordy są przetwarzane.
Na przykład. DLA smp_rec w pętli C1
totalsal = totalsal + smp_recsal;
ENDLOOP;
5) Wyjaśnij zastosowania wyzwalacza bazy danych.
Jednostka programu PL / SQL skojarzona z określoną tabelą bazy danych nazywana jest wyzwalaczem bazy danych. To jest używane do :
1) Audyt modyfikacji danych.
2) Rejestruj zdarzenia w sposób przejrzysty.
3) Egzekwuj złożone reguły biznesowe.
4) Utrzymuj tabele replik
5) Wyprowadź wartości kolumn
6) Wdrażaj złożone uprawnienia bezpieczeństwa
6) Jakie są dwa rodzaje wyjątków.
Część bloku PL / SQL obsługująca błędy nosi nazwę wyjątku. Mają dwa typy: zdefiniowane przez użytkownika i wstępnie zdefiniowane.
7) Pokaż kilka predefiniowanych wyjątków.
DUP_VAL_ON_INDEX
ZERO_DIVIDE
NIE ZNALEZIONO DANYCH
TOO_MANY_ROWS
CURSOR_ALREADY_OPEN
NIEPRAWIDŁOWY NUMER
INVALID_CURSOR
PROGRAM_ERROR
TIMEOUT _ON_RESOURCE
STORAGE_ERROR
LOGOWANIE ZOSTAŁO ODRZUCONE
VALUE_ERROR
itp.
8) Wyjaśnij Raise_application_error.
Jest to procedura pakietu DBMS_STANDARD, która umożliwia wydawanie komunikatów o błędach zdefiniowanych przez użytkownika z wyzwalacza bazy danych lub zapisanego podprogramu.
9) Pokaż, jak wywoływane są funkcje i procedury w bloku PL SQL.
Funkcja jest wywoływana jako część wyrażenia.
suma: = oblicz_sal ('b644')
Procedura nazywana jest instrukcją w PL / SQL.
oblicz_bonus ('b644');
10) Wyjaśnij dwie wirtualne tabele dostępne w czasie wykonywania wyzwalacza bazy danych.
Kolumny tabeli nazywane są TO.nazwa_kolumny i TERAZ.nazwa_kolumny.
W przypadku wyzwalaczy związanych z INSERT dostępne są tylko wartości NOW.nazwa_kolumny.
W przypadku wyzwalaczy związanych z DELETE, wartości THEN.nazwa_kolumny są dostępne tylko.
W przypadku wyzwalaczy związanych z aktualizacją dostępne są obie kolumny tabeli.
11) Jakie zasady należy stosować do wartości NULL podczas dokonywania porównań?
1) NULL nigdy nie jest PRAWDA ani FAŁSZ
2) NULL nie może być równe lub nierówne innym wartościom
3) Jeśli wartość w wyrażeniu ma wartość NULL, to samo wyrażenie przyjmuje wartość NULL, z wyjątkiem operatora konkatenacji (||)
12) Jak kompilowany jest proces PL SQL?
Proces kompilacji obejmuje procesy sprawdzania składni, wiązania i generowania kodu p.
Sprawdzanie składni sprawdza kody PL SQL pod kątem błędów kompilacji. Po poprawieniu wszystkich błędów zmiennym przechowującym dane przypisywany jest adres pamięci. Nazywa się Wiązanie. Kod P to lista instrukcji dla silnika PL SQL. Kod P jest przechowywany w bazie danych dla nazwanych bloków i jest używany przy następnym uruchomieniu.
13) Rozróżnij błędy składniowe i błędy czasu wykonania.
Błąd składni można łatwo wykryć za pomocą kompilatora PL / SQL. Na przykład niepoprawna pisownia.
Błąd wykonania jest obsługiwany za pomocą sekcji obsługi wyjątków w bloku PL / SQL. Na przykład instrukcja SELECT INTO, która nie zwraca żadnych wierszy.
14) Wyjaśnij Commit, Rollback i Savepoint.
W przypadku instrukcji COMMIT prawdziwe są następujące warunki:
- Inni użytkownicy mogą zobaczyć zmiany danych wprowadzone przez transakcję.
- Blokady pozyskane w ramach transakcji zostają zwolnione.
- Praca wykonana w ramach transakcji staje się trwała.
Instrukcja ROLLBACK jest wydawana, gdy transakcja się kończy i co następuje.
- Praca wykonana w przejściu jest cofana, tak jakby nigdy nie została wydana.
- Wszystkie blokady zdobyte w wyniku transakcji są zwalniane.
Cofa całą pracę wykonaną przez użytkownika w transakcji. Dzięki SAVEPOINT tylko część transakcji może zostać cofnięta.
15) Zdefiniuj kursory niejawne i jawne.
Kursor jest domyślnie niejawny. Użytkownik nie może kontrolować ani przetwarzać informacji w tym kursorze.
Jeśli zapytanie zwraca wiele wierszy danych, program definiuje jawny kursor. Dzięki temu aplikacja może przetwarzać każdy wiersz sekwencyjnie, gdy kursor zwraca go.
16) Wyjaśnij błąd tabeli mutacji.
Występuje, gdy wyzwalacz próbuje zaktualizować wiersz, którego aktualnie używa. Jest to naprawiane za pomocą widoków lub tabel tymczasowych, więc baza danych wybiera jedną i aktualizuje drugą.
17) Kiedy wymagane jest oświadczenie o zgłoszeniu?
Instrukcja DECLARE jest używana przez anonimowe bloki PL SQL, na przykład w przypadku samodzielnych, niezabudowanych procedur. Jeśli jest używany, musi znajdować się jako pierwszy w samodzielnym pliku.
18) Ile wyzwalaczy można zastosować do tabeli?
Do jednej tabeli można zastosować maksymalnie 12 wyzwalaczy.
19) Jakie jest znaczenie SQLCODE i SQLERRM?
SQLCODE zwraca wartość liczby błędów dla ostatniego napotkanego błędu, podczas gdy SQLERRM zwraca komunikat o ostatnim błędzie.
20) Jeśli kursor jest otwarty, jak możemy znaleźć w bloku PL SQL?
można użyć zmiennej statusu kursora% ISOPEN.
21) Pokaż dwa wyjątki kursora PL / SQL.
Cursor_Already_Open
Invaid_cursor
22) Którzy operatorzy mają do czynienia z NULL?
NVL konwertuje NULL na inną określoną wartość.
var: = NVL (var2, 'Hi');
IS NULL i IS NOT NULL mogą być używane do sprawdzenia, czy wartość zmiennej wynosi NULL, czy nie.
23) Czy SQL * Plus ma również silnik PL / SQL?
Nie, SQL * Plus nie ma wbudowanego silnika PL / SQL. W ten sposób cały kod PL / SQL jest przesyłany bezpośrednio do silnika bazy danych. Jest to o wiele bardziej wydajne, ponieważ nie usuwa się każdego stwierdzenia osobno.
24) Jakie pakiety są dostępne dla programistów PL SQL?
Seria pakietów DBMS_, takich jak DBMS_PIPE, DBMS_DDL, DBMS_LOCK, DBMS_ALERT, DBMS_OUTPUT, DBMS_JOB, DBMS_UTILITY, DBMS_SQL, DBMS_TRANSACTION, UTL_FILE.
25) Wyjaśnij 3 podstawowe części wyzwalacza.
- Wyzwalająca instrukcja lub zdarzenie.
- Ograniczenie
- Akcja
26) Co to są funkcje znaków?
INITCAP, UPPER, SUBSTR, LOWER i LENGTH to wszystkie funkcje znakowe. Funkcje grupowe dają wyniki na podstawie grup wierszy, a nie pojedynczych wierszy. MAKS, MIN, ŚREDNIA, LICZBA i SUMA.
27) Wyjaśnij TTITLE i BTITLE.
Polecenia TTITLE i BTITLE, które kontrolują nagłówki i stopki raportów.
28) Pokaż atrybuty kursora PL / SQL.
% ISOPEN: Sprawdza, czy kursor jest otwarty, czy nie
% ROWCOUNT: liczba wierszy, które są aktualizowane, usuwane lub pobierane.
% FOUND: Sprawdza, czy kursor pobrał dowolny wiersz. To prawda, jeśli pobierane są wiersze
% NIE ZNALEZIONO: Sprawdza, czy kursor pobrał jakiś wiersz. Prawdą jest, że wiersze nie są pobierane.
29) Co to jest przecięcie?
Przecięcie jest iloczynem dwóch tabel i zawiera tylko pasujące wiersze.
30) Co to są sekwencje?
Sekwencje są używane do generowania numerów sekwencji bez narzutu blokowania. Wadą jest to, że numer sekwencji jest tracony, jeśli transakcja jest wycofywana.
31) W jaki sposób można odwołać się do wartości kolumn PRZED i PO wstawieniu i usunięciu wyzwalaczy?
Używając słowa kluczowego „nowa.nazwa kolumny”, wyzwalacze mogą odwoływać się do wartości kolumn według nowej kolekcji. Używając słowa kluczowego „stara.nazwa kolumny”, mogą odwoływać się do zmiennych kolumn ze starej kolekcji.
32) Jakie są zastosowania słów kluczowych SYSDATE i USER?
SYSDATE oznacza bieżącą datę systemową serwera. To jest pseudo kolumna. USER jest również pseudokolumną, ale odnosi się do bieżącego użytkownika zalogowanego do sesji. Służą do monitorowania zmian zachodzących w tabeli.
33) W jaki sposób ROWID pomaga w szybszym uruchomieniu zapytania?
ROWID to logiczny adres wiersza, a nie fizyczna kolumna. Składa się z numeru bloku danych, numeru pliku i numeru wiersza w bloku danych. W ten sposób czas we / wy zostaje zminimalizowany podczas pobierania wiersza i skutkuje szybszym zapytaniem.
34) Do czego służą łącza do baz danych?
Łącza do baz danych są tworzone w celu komunikacji między różnymi bazami danych lub różnymi środowiskami, takimi jak testy, programowanie i produkcja. Łącza do bazy danych są tylko do odczytu i umożliwiają dostęp do innych informacji.
35) Co robi pobieranie kursora?
Pobieranie kursora czyta zestaw wyników wiersz po wierszu.
36) Co robi zamknięcie kursora?
Zamknięcie kursora czyści prywatny obszar SQL, a także usuwa alokację pamięci
37) Wyjaśnij zastosowania pliku kontrolnego.
To jest plik binarny. Rejestruje strukturę bazy danych. Zawiera lokalizacje kilku plików dziennika, nazw i znaczników czasu. Mogą być przechowywane w różnych lokalizacjach, aby pomóc w odzyskaniu informacji, jeśli jeden plik zostanie uszkodzony.
38) Wyjaśnij spójność
Spójność pokazuje, że dane nie zostaną odzwierciedlone dla innych użytkowników, dopóki dane nie zostaną zatwierdzone, dzięki czemu zachowana jest spójność.
39) Różnica między blokami anonimowymi a podprogramami.
Anonimowe bloki to nienazwane bloki, które nie są nigdzie przechowywane, podczas gdy podprogramy są kompilowane i przechowywane w bazie danych. Są kompilowane w czasie wykonywania.
40) Różnią się między DEKODEM a CASE.
Instrukcje DECODE i CASE są bardzo podobne, ale CASE jest rozszerzoną wersją DECODE. DECODE nie pozwala zamiast tego na oświadczenia decyzyjne.
wybierz dekodowanie (totalsal = 12000, 'high', 10000, 'medium') jako decode_tesr z smp, gdzie smpno in (10,12,14,16);
Ta instrukcja zwraca błąd.
CASE jest używane bezpośrednio w PL SQL, ale DECODE jest używane w PL SQL tylko przez SQL.
41) Wyjaśnij transakcję autonomiczną.
Autonomiczna transakcja to niezależna transakcja transakcji głównej lub nadrzędnej. Nie jest zagnieżdżany, jeśli został uruchomiony przez inną transakcję.
Istnieje kilka sytuacji, w których można używać transakcji autonomicznych, takich jak rejestrowanie zdarzeń i inspekcja.
42) Rozróżnij SGA i PGA.
SGA oznacza globalny obszar systemu, podczas gdy PGA oznacza program lub globalny obszar procesu. PGA ma przydzielone tylko 10% rozmiaru pamięci RAM, ale SGA ma 40% rozmiaru pamięci RAM.
43) Jaka jest lokalizacja Pre_defined_functions.
Są przechowywane w standardowym pakiecie o nazwie „Funkcje, procedury i pakiety”
44) Wyjaśnij polimorfizm w PL SQL.
Cechą OOP jest polimorfizm. Jest to zdolność do tworzenia zmiennej, obiektu lub funkcji o wielu formach. PL / SQL obsługuje polimorfizm w postaci przeciążania jednostek programu w ramach funkcji składowej lub pakietu… Podczas przeładowywania należy unikać jednoznacznej logiki.
45) Jakie są zastosowania MERGE?
MERGE służy do łączenia wielu instrukcji DML w jedną.
Składnia: scal w nazwę tabeli
using (zapytanie)
on (warunek dołączenia)
kiedy nie jest dopasowany
[wstaw / aktualizuj / usuń] polecenie
kiedy dopasowany wtedy
[wstaw / aktualizuj / usuń] polecenie
46) Czy w rozproszonym systemie baz danych mogą być wykonywane jednocześnie 2 zapytania?
Tak, można je wykonywać jednocześnie. Jedno zapytanie jest zawsze niezależne od drugiego zapytania w rozproszonym systemie baz danych opartym na zatwierdzaniu dwufazowym.
47) Wyjaśnij Raise_application_error.
Jest to procedura pakietu DBMS_STANDARD, która umożliwia wysyłanie komunikatów o błędach zdefiniowanych przez użytkownika z wyzwalacza bazy danych lub zapisanego podprogramu.
48) Jaki parametr out jest używany w instrukcji eventhough return może być również używana w pl / sql?
Parametry out dopuszczają więcej niż jedną wartość w programie wywołującym. Parametr out nie jest zalecany w funkcjach. Procedury mogą być używane zamiast funkcji, jeśli wymaganych jest wiele wartości. Dlatego te procedury są używane do wykonywania parametrów wyjściowych.
49) Jak przekonwertowałbyś datę na format daty juliańskiej?
Możemy użyć ciągu formatu J:
SQL> wybierz to_char (to_date ('29 -Mar-2013 ',' dd-mon-yyyy '),' J ') jako julian z dual;
JULIAŃSKI
50) Wyjaśnij SPOOL
Polecenie buforowania może wydrukować dane wyjściowe instrukcji sql w pliku.
spool / tmp / sql_outtxt
wybierz smp_name, smp_id z smp, gdzie dept = 'accounts';
szpulować;
51) Wspomnij, z czego składa się pakiet PL / SQL?
Pakiet PL / SQL składa się z
- Tabela PL / SQL i rekordy typu TYPE
- Procedury i funkcje
- Kursory
- Zmienne (tabele, skalary, rekordy itp.) I stałe
- Nazwy wyjątków i pragmy odnoszące się do numeru błędu z wyjątkiem
- Kursory
52) Wspomnij, jakie są zalety pakietów PL / SQL?
Zapewnia kilka korzyści, takich jak
- Wymuszone ukrywanie informacji: Daje swobodę wyboru, czy dane mają być prywatne, czy publiczne
- Projektowanie od góry do dołu: możesz zaprojektować interfejs do kodu ukrytego w pakiecie, zanim faktycznie zaimplementujesz same moduły
- Trwałość obiektów : obiekty zadeklarowane w specyfikacji pakietu zachowują się jak dane globalne dla wszystkich obiektów PL / SQL w aplikacji. Możesz zmodyfikować pakiet w jednym module, a następnie odnieść te zmiany do innego modułu
- Projekt zorientowany obiektowo: pakiet daje programistom mocną kontrolę nad tym, jak moduły i struktury danych wewnątrz pakietu mogą być używane
- Zagwarantowanie integralności transakcji: zapewnia poziom integralności transakcji
- Poprawa wydajności: RDBMS automatycznie śledzi poprawność wszystkich obiektów programu przechowywanych w bazie danych i zwiększa wydajność pakietów.
53) Wspomnij, jakie są różne metody śledzenia kodu PL / SQL?
Kod śledzenia to kluczowa technika pomiaru wydajności kodu w czasie wykonywania. Różne metody śledzenia obejmują pliki
- DBMS_APPLICATION_INFO
- DBMS_TRACE
- DBMS_SESSION i DBMS_MONITOR
- narzędzia trcsess i tkproof
54) Wspomnij, co robi hierarchiczny profiler?
Hierarchiczny profiler mógł profilować wywołania wykonywane w PL / SQL, oprócz wypełnienia luki między lukami a oczekiwaniami dotyczącymi śledzenia wydajności. Efektywność hierarchicznego profilera obejmuje
- Wyraźne raportowanie zużycia czasu SQL i PL / SQL
- Raportuje liczbę różnych wywołań podprogramów wykonanych w PL / SQL oraz czas spędzony z każdym wywołaniem podprogramu
- Wiele interaktywnych raportów analitycznych w formacie HTML za pomocą narzędzia wiersza poleceń
- Bardziej efektywny niż konwencjonalny profiler i inne narzędzia do śledzenia
55) Wspomnij, na co pozwala Ci wiad. PLV?
Wiad. PLV umożliwia
- Przypisz indywidualną wiadomość tekstową do określonego wiersza w tabeli PL / SQL
- Pobiera tekst wiadomości według numeru
- Zastępuje automatycznie Twoje własne komunikaty dla standardowych komunikatów o błędach Oracle z przełącznikiem ograniczania
- Wsadowe ładowanie numerów wiadomości i tekstu z tabeli bazy danych bezpośrednio PLV msg Tabela PL / SQL
56) Wspomnij, co oferuje pakiet PLV (PL / Vision)?
- Wartość podstawienia zerowa
- Zestaw procedur asercji
- Różne narzędzia
- Zestaw stałych używanych w całej wizji PL
- Predefiniowane typy danych
- 57) Wspomnij, jakie jest zastosowanie PLVpr i PLVprsp?
- PLVprs: Jest to rozszerzenie do analizowania ciągów dla PL / SQL i jest to najniższy poziom funkcji analizowania ciągów
- PLVprsps: Jest to pakiet najwyższego poziomu służący do analizowania kodu źródłowego PL / SQL w osobnych atomach. Opiera się na innych pakietach analizujących, aby wykonać pracę.
58) Wyjaśnij, jak można skopiować plik do zawartości pliku i plik do tabeli PL / SQL z wyprzedzeniem PL / SQL?
Jednym wywołaniem programu - „ procedurą fcopy”, można skopiować całą zawartość jednego pliku do innego. Podczas kopiowania zawartości pliku bezpośrednio do tabeli PL / SQL można skorzystać z programu „ file2pstab” .
59) Wyjaśnij, w jaki sposób obsługa wyjątków jest wykonywana z wyprzedzeniem PL / SQL?
Do obsługi wyjątków PL / SQl zapewnia skuteczną wtyczkę PLVexc. PLVexc obsługuje cztery różne akcje obsługi wyjątków.
- Kontynuuj przetwarzanie
- Nagraj, a następnie kontynuuj
- Zatrzymaj przetwarzanie
- Nagraj, a następnie zatrzymaj przetwarzanie
W przypadku wyjątków, które pojawiają się ponownie, można użyć instrukcji RAISE.
60) Wspomnij, jaki problem można napotkać podczas zapisywania informacji dziennika do tabeli bazy danych w PL / SQL?
Podczas zapisywania informacji dziennika do tabeli bazy danych problem polega na tym, że informacje są dostępne tylko wtedy, gdy nowe wiersze zostaną zatwierdzone w bazie danych. Może to stanowić problem, ponieważ taki PLVlog jest zwykle wdrażany w celu śledzenia błędów, aw wielu takich przypadkach bieżąca transakcja zakończyłaby się niepowodzeniem lub w inny sposób wymagałaby wycofania.
61) Wspomnij, jaka funkcja jest używana do przesyłania dziennika tabeli PL / SQL do tabeli bazy danych?
Aby przesłać dziennik tabeli PL / SQL, używana jest funkcja tabeli dziennika bazy danych „PROCEDURA ps2db” .
62) Kiedy musisz użyć domyślnego punktu zapisu „przywracania do” PLVlog?
Domyślny punkt zapisu „rollback to” PLVlog jest używany, gdy użytkownicy włączyli działanie wycofywania i nie podali alternatywnego punktu zapisu w wywołaniu put_line. Domyślny punkt zapisu jest inicjowany na stałą c none.
63) Dlaczego PLVtab jest uważany za najłatwiejszy sposób dostępu do tabeli PL / SQL?
Tabela PL / SQL jest najbliższa tablicom w PL / SQL i aby uzyskać dostęp do tej tabeli, musisz najpierw zadeklarować typ tabeli, a następnie zadeklarować samą tabelę PL / SQL. Ale używając PLVtab, możesz uniknąć definiowania własnego typu tabeli PL / SQL i ułatwić dostęp do tabeli danych PL / SQL.
64) Wspomnij, co daje Ci PLVtab, kiedy pokazujesz zawartość tabel PL / SQL?
PLVtab umożliwia wykonywanie następujących czynności podczas wyświetlania zawartości tabel PL / SQL
- Wyświetl lub ukryj nagłówek tabeli
- Wyświetl lub pomiń numery wierszy dla wartości tabeli
- Pokaż przedrostek przed każdym wierszem tabeli
65) Wyjaśnij, jak możesz zapisać lub umieścić swoją wiadomość w tabeli?
Aby zapisać wiadomość w tabeli, możesz to zrobić na dwa sposoby
- Załaduj poszczególne wiadomości za pomocą wywołań procedury add_text
- Załaduj zestawy komunikatów z tabeli bazy danych za pomocą procedury load_from_dbms
66) Powiedz, jakie jest zastosowanie funkcji "procedura modułu" w PL / SQL?
„Procedura modułu” umożliwia konwersję wszystkich wierszy kodu w określonej jednostce programu za pomocą jednego wywołania procedury. Istnieją trzy argumenty za modułami
- module_in
- cor_in
- Last_module_in
67) Wspomnij, co robi PLVcmt i PLVrb w PL / SQL?
PL / Vision oferuje dwa pakiety ułatwiające zarządzanie przetwarzaniem transakcji w aplikacji PL / SQL. To jest PLVcmt i PLVrb.
- PLVcmt: Pakiet PLVcmt zawiera logikę i złożoność przetwarzania zatwierdzeń
- PLVrb: zapewnia interfejs programistyczny do wycofywania działań w PL / SQL