Budowa oprogramowania dla bazy danych PL/SQL

0.0(0)
Studied by 1 person
call kaiCall Kai
Locked
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/65

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 3:31 PM on 6/24/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

66 Terms

1
New cards

1. Anonimowy blok PL/SQL to program:

a) nazwany, składowany w bazie danych

b) nienazwany, który nie może być składowany w bazie danych

c) nazwany, ale nieskładowany w bazie

d) wykonywany wyłącznie po stronie klienta SQL*Plus

b) nienazwany, który nie może być składowany w bazie danych

2
New cards

2. Który operator służy do przypisania wartości zmiennej w PL/SQL:

a) =
b) ==
c) :=
d) =>

c) :=

3
New cards

3. Co zostanie wydrukowane?

DECLARE
  x number := 5;
BEGIN
  dbms_output.put_line(x * 2 + 1);
END;

a) 11
b) 12
c) 10
d) nic, błąd wykonania

a) 11

4
New cards

4. Uzupełnij XXX, aby deklaracja była poprawna: X VARCHAR2 XXX := 'ABC'; (maks. 200 znaków)

a) OF 200
b) (200)
c) [200]
d) 200

b) (200)

5
New cards

5. Co zostanie wydrukowane?

DECLARE
  x varchar2(10) := '321';
  y varchar2(10);
BEGIN
  y := '123';
  dbms_output.put_line(x||y);
END;

a) 444
b) 321123
c) błąd wykonania
d) 123321

b) 321123

6
New cards

6. Poprawna deklaracja zmiennej V1 to:

a) V1 VARCHAR2(20) := "abc";
b) V1 VARCHAR(20) := 'abc';
c) V1 VARCHAR3(20);
d) V1 VARCHAR2 20 := 'abc';

b) V1 VARCHAR(20) := 'abc';

7
New cards

Procedury i funkcje

9. Które zdanie o procedurach jest prawdziwe:

a) procedura zawsze musi zwracać pojedynczy wynik
b) od procedury nie wymaga się zwrócenia jakiegokolwiek wyniku
c) procedura nie może być składowana w bazie danych
d) procedura nie może przyjmować parametrów

b) od procedury nie wymaga się zwrócenia jakiegokolwiek wyniku

8
New cards

10. Parametr typu OUT wewnątrz procedury zachowuje się jak:

a) stała
b) zmienna niezainicjalizowana
c) zmienna zainicjalizowana
d) kursor

b) zmienna niezainicjalizowana

9
New cards

11. Parametr typu IN OUT wewnątrz procedury zachowuje się jak:

a) stała
b) zmienna niezainicjalizowana
c) zmienna zainicjalizowana
d) wyjątek

c) zmienna zainicjalizowana

10
New cards

12. Wartość domyślna parametru jest wykorzystywana, gdy:

a) parametr ma typ NUMBER
b) przy wywołaniu parametr zostanie pominięty
c) parametr jest typu OUT
d) procedura zwraca NULL

b) przy wywołaniu parametr zostanie pominięty

11
New cards

13. Przy deklaracji parametrów procedur i funkcji:

a) podajemy pełny zakres, np. NUMBER(10)
b) NIE podajemy zakresów, np. NUMBER
c) musimy podać wartość domyślną
d) zakres jest obowiązkowy tylko dla VARCHAR2

b) NIE podajemy zakresów, np. NUMBER

12
New cards

14. Funkcja PL/SQL:

a) nie zwraca wartości
b) zawsze zwraca precyzyjnie zdefiniowany, pojedynczy wynik
c) może być tworzona tylko w pakietach
d) nie może być wołana w poleceniu SELECT

b) zawsze zwraca precyzyjnie zdefiniowany, pojedynczy wynik

13
New cards

15. W sekcji wykonywalnej funkcji musi znajdować się przynajmniej jedna instrukcja:

a) COMMIT
b) EXIT
c) RETURN
d) RAISE

c) RETURN

14
New cards

16. Pętla podstawowa LOOP ... END LOOP bez instrukcji wyjścia jest:

a) wykonywana raz
b) nieskończona
c) niepoprawna składniowo
d) pomijana przez kompilator

b) nieskończona

15
New cards

17. Która instrukcja pozwala opuścić pętlę po warunku:

a) BREAK WHEN
b) EXIT WHEN warunek;
c) STOP WHEN
d) RETURN WHEN

b) EXIT WHEN warunek;

16
New cards

18. W pętli FOR i IN 1..N LOOP:

a) konieczna jest inkrementacja indeksu
b) konieczna jest wcześniejsza deklaracja zmiennej i
c) nie jest konieczna deklaracja ani inkrementacja zmiennej indeksowej
d) zmienna i jest zawsze typu VARCHAR2

c) nie jest konieczna deklaracja ani inkrementacja zmiennej indeksowej

17
New cards

19. Słowo kluczowe REVERSE w pętli FOR powoduje, że zmienna indeksowa:

a) jest zwiększana o 2
b) jest zmniejszana o 1 przy każdym obejściu
c) jest losowa
d) pozostaje stała

b) jest zmniejszana o 1 przy każdym obejściu

18
New cards

20. Pętla WHILE sprawdza warunek poprawności:

a) na końcu pętli
b) na początku pętli
c) w połowie pętli
d) nigdy

b) na początku pętli

19
New cards

21. Poprawna instrukcja odczytu średniej pensji do zmiennej v_avg_sal:

a) select into v_avg_sal avg(salary) from employees
b) select avg(salary) from employees into v_avg_sal
c) select avg(salary) into v_avg_sal from employees
d) select avg(salary) from employees set v_avg_sal

c) select avg(salary) into v_avg_sal from employees

20
New cards

22. Polecenie SELECT INTO musi zwracać:

a) co najmniej 1 wiersz
b) dokładnie 1 wiersz
c) maksymalnie 2 wiersze
d) dowolną liczbę wierszy

b) dokładnie 1 wiersz

21
New cards

23. Gdy SELECT INTO nie zwróci żadnego wiersza, wystąpi wyjątek:

a) TOO_MANY_ROWS
b) NO_DATA_FOUND
c) ZERO_DIVIDE
d) INVALID_NUMBER

b) NO_DATA_FOUND

22
New cards

24. Gdy SELECT INTO zwróci więcej niż jeden wiersz, wystąpi wyjątek:

a) NO_DATA_FOUND
b) TOO_MANY_ROWS
c) VALUE_ERROR
d) DUP_VAL_ON_INDEX

b) TOO_MANY_ROWS

23
New cards

25. W programach PL/SQL bez żadnych zmian składniowych można umieszczać polecenia:

a) INSERT, UPDATE, DELETE, COMMIT, ROLLBACK
b) COMMIT, ROLLBACK, SELECT, GRANT, REVOKE
c) INSERT, UPDATE, DELETE, CREATE TABLE
d) SELECT, CREATE, DROP, ALTER

a) INSERT, UPDATE, DELETE, COMMIT, ROLLBACK

24
New cards

26. Których poleceń NIE można umieszczać bezpośrednio w PL/SQL:

a) INSERT, UPDATE
b) COMMIT, ROLLBACK
c) CREATE, ALTER, DROP, GRANT, REVOKE
d) SELECT INTO

c) CREATE, ALTER, DROP, GRANT, REVOKE

25
New cards

28. Poprawna deklaracja typu tablicowego dla liczb NUMBER(10):

a) type t_table is table of number(10) index by binary_integer
b) type t_table table_number(10);
c) t_table is type of table with number(10)
d) type t_table is array of number(10);

a) type t_table is table of number(10) index by binary_integer

26
New cards

29. Poprawna deklaracja typu nested table z rekordami o strukturze tabeli DEPARTMENTS:

a) TYPE T_DEPTS IS TABLE OF DEPARTMENTS%TYPE
b) TYPE T_DEPTS IS TABLE OF DEPARTMENTS%ROWTYPE
c) T_DEPTS IS TABLE OF DEPARTMENTS%ROWTYPE
d) TYPE T_DEPTS TABLE DEPARTMENTS%ROWTYPE

b) TYPE T_DEPTS IS TABLE OF DEPARTMENTS%ROWTYPE

27
New cards

27. Aby wykonać polecenie DDL (np. DROP TABLE) wewnątrz PL/SQL, należy użyć:
a) execute 'DROP TABLE JOB_GRADES'
b) execute immediate 'DROP TABLE JOB_GRADES'
c) execute 'DROP TABLE JOB_GRADES' immediately
d) run immediate 'DROP TABLE JOB_GRADES'

b) execute immediate 'DROP TABLE JOB_GRADES'

28
New cards

30. Atrybut zwracający łączną liczbę elementów tablicy PL/SQL to:

a) .length
b) .size
c) .count
d) .total

c) .count

29
New cards

31. Atrybut sprawdzający, czy i-ty element tablicy istnieje:

a) tablica.has(i)
b) tablica.exists(i)
c) tablica.isset(i)
d) tablica.check(i)

b) tablica.exists(i)

30
New cards

32. Poprawna deklaracja rekordu o strukturze tabeli DEPARTMENTS:

a) v_dept_record DEPARTMENTS%STRUCTURE;
b) v_dep_record ROW%DEPARTMENTS;
c) v_dept_record DEPARTMENTS%ROWTYPE;
d) v_dept_record RECORD OF DEPARTMENTS;

c) v_dept_record DEPARTMENTS%ROWTYPE;

31
New cards

33. Poprawna deklaracja zmiennej Z o typie kolumny SALARY z tabeli EMPLOYEES:

a) Z TYPE OF EMPLOYEES.SALARY%TYPE;
b) Z TYPE OF EMPLOYEES.SALARY;
c) Z EMPLOYEES.SALARY%TYPE;
d) Z EMPLOYEES.SALARY TYPE;

c) Z EMPLOYEES.SALARY%TYPE;

32
New cards

34. Główną zaletą stosowania %TYPE zamiast typu wprost jest to, że:

a) zmienna zajmuje mniej pamięci
b) zmienna dziedziczy typ i precyzję kolumny, więc zmiana definicji kolumny nie psuje kodu
c) kod wykonuje się szybciej
d) można pominąć sekcję DECLARE

b) zmienna dziedziczy typ i precyzję kolumny, więc zmiana definicji kolumny nie psuje kodu

33
New cards

35. Identyfikator kursora niejawnego to:

a) SQL
b) SQL_CURSOR
c) CURSOR%SQL
d) SQL%NOTFOUND

a) SQL

34
New cards

36. Który atrybut kursora pozwala sprawdzić liczbę przetworzonych wierszy:

a) %count
b) %rownumber
c) %rowcount
d) %rows

c) %rowcount

35
New cards

38. Poprawna deklaracja kursora C_EMP:

a) c_emp is select * from employees;
b) cursor c_emp is select * from employees;
c) select * from employees is cursor c_emp;
d) cursor c_emp as (select * from employees);

b) cursor c_emp is select * from employees;

36
New cards

39. Które zdanie dot. kursorów jest prawdziwe:

a) kursor może być związany wyłącznie z poleceniem INSERT
b) kursor może być związany jedynie z poleceniem SELECT
c) kursor może być związany jedynie z tabelą
d) kursor nie może mieć parametrów

b) kursor może być związany jedynie z poleceniem SELECT

37
New cards

40. Aby wyjść z pętli po pobraniu wszystkich wierszy kursora jawnego, stosujemy:

a) EXIT WHEN c_emp%FOUND;
b) EXIT WHEN c_emp%NOTFOUND;
c) EXIT WHEN c_emp%ROWCOUNT;
d) EXIT WHEN c_emp%ISOPEN;

b) EXIT WHEN c_emp%NOTFOUND;

38
New cards

41. Pętle kursorowe (FOR r IN c_emp LOOP):

a) wymagają ręcznego otwarcia i zamknięcia kursora
b) nie wymagają ręcznego otwierania, pobierania i zamykania — robione jest to automatycznie
c) nie pozwalają na użycie kursorów sparametryzowanych
d) wymagają ręcznego FETCH

b) nie wymagają ręcznego otwierania, pobierania i zamykania — robione jest to automatycznie

39
New cards

42. Klauzula WHERE CURRENT OF nazwa_kursora pozwala na:

a) zablokowanie wszystkich wierszy tabeli
b) modyfikację lub usunięcie wiersza aktualnie wskazywanego przez kursor
c) otwarcie kursora
d) deklarację kursora sparametryzowanego

b) modyfikację lub usunięcie wiersza aktualnie wskazywanego przez kursor

40
New cards

43. Klauzula FOR UPDATE w definicji kursora:

a) sortuje wiersze
b) nakłada blokadę wyłączną na przetwarzane wiersze
c) automatycznie zatwierdza transakcję
d) zamyka kursor

b) nakłada blokadę wyłączną na przetwarzane wiersze

41
New cards

44. Gdy nie stosujemy pętli kursorowej, kursor jawny:

a) jest automatycznie otwierany i zamykany
b) nie jest automatycznie otwierany ani zamykany
c) jest automatycznie zamykany, ale nie otwierany
d) nie wymaga instrukcji FETCH

b) nie jest automatycznie otwierany ani zamykany

42
New cards

45. Wskaż poprawne zdanie dot. wyjątków w PL/SQL:

a) nie istnieją wyjątki w PL/SQL
b) rozróżniamy dwa typy: predefiniowany i zdefiniowany przez programistę
c) rozróżniamy trzy typy: predefiniowany, niepredefiniowany i zdefiniowany przez programistę
d) wyjątki obsługuje się w sekcji EXCEPTION_HANDLER

c) rozróżniamy trzy typy: predefiniowany, niepredefiniowany i zdefiniowany przez programistę

43
New cards

46. Wyjątek predefiniowany to taki, który:

a) ma swój predefiniowany identyfikator i jest związany z błędem Oracle
b) ma identyfikator, ale nie jest związany z błędem Oracle
c) jest dostępny jedynie w pakietach
d) zawsze musi być zadeklarowany przez programistę

a) ma swój predefiniowany identyfikator i jest związany z błędem Oracle

44
New cards

47. Aby związać wyjątek z numerem błędu Oracle, używamy dyrektywy:

a) PRAGMA INIT_EXCEPTION
b) PRAGMA EXCEPTION_INIT
c) PRAGMA_EXCEPTION
d) PRAGMA BIND_EXCEPTION

b) PRAGMA EXCEPTION_INIT

45
New cards

48. Aby zgłosić wyjątek zdefiniowany przez programistę, używamy instrukcji:

a) THROW
b) RAISE
c) SIGNAL
d) EXIT

b) RAISE

46
New cards

49. Procedura RAISE_APPLICATION_ERROR przyjmuje numery błędów z zakresu:

a) od -1 do -999
b) od -20000 do -99999 (zarezerwowane)
c) od 0 do 20000
d) dowolne dodatnie

b) od -20000 do -99999 (zarezerwowane)

47
New cards

50. Funkcja zwracająca numer ostatniego błędu to:

a) SQLERRM
b) SQLCODE
c) SQLSTATE
d) SQLNUM

b) SQLCODE

48
New cards

51. Sekcja obsługi wyjątków rozpoczyna się od słowa kluczowego:

a) CATCH
b) HANDLER
c) EXCEPTION
d) WHEN

c) EXCEPTION

49
New cards

52. Klauzula WHEN OTHERS THEN w sekcji obsługi wyjątków:

a) obsługuje konkretny wyjątek predefiniowany
b) obsługuje wszystkie pozostałe (nieobsłużone wcześniej) wyjątki
c) jest obowiązkowa w każdym bloku
d) zawsze musi być na początku sekcji

b) obsługuje wszystkie pozostałe (nieobsłużone wcześniej) wyjątki

50
New cards

53. Wskaż prawdziwe zdanie dot. pakietów PL/SQL:

a) pakiet zawsze musi składać się ze specyfikacji i ciała
b) ciało pakietu może istnieć i być poprawne bez specyfikacji
c) specyfikacja pakietu może w niektórych przypadkach istnieć i być poprawna bez ciała
d) PL/SQL nie pozwala na tworzenie pakietów

c) specyfikacja pakietu może w niektórych przypadkach istnieć i być poprawna bez ciała

51
New cards

54. Polecenie tworzące specyfikację pakietu PKG_EMP_OPERATIONS:

a) CREATE OR REPLACE PACKAGE SPECIFICATION PKG_EMP_OPERATIONS IS PROCEDURE DELETE_EMP(P_EMPNO NUMBER); END;
b) CREATE OR REPLACE PACKAGE PKG_EMP_OPERATIONS IS PROCEDURE DELETE_EMP(P_EMPNO NUMBER); END;
c) CREATE OR REPLACE PACKAGE PKG_EMP_OPERATIONS BEGIN PROCEDURE DELETE_EMP(P_EMPNO NUMBER); END;
d) CREATE OR REPLACE PACKAGE SPEC PKG_EMP_OPERATIONS IS PROCEDURE DELETE_EMP(P_EMPNO NUMBER); END;

b) CREATE OR REPLACE PACKAGE PKG_EMP_OPERATIONS IS PROCEDURE DELETE_EMP(P_EMPNO NUMBER); END;

52
New cards

55. Przeciążanie (overloading) procedur i funkcji jest mechanizmem dostępnym jedynie w:

a) wyzwalaczach
b) funkcjach PL/SQL
c) pakietach
d) procedurach

c) pakietach

53
New cards

56. Co umożliwia przeciążanie:

a) definiowanie kilku podprogramów o tej samej nazwie i różnej liście parametrów
b) definiowanie podprogramów o różnej nazwie i tej samej liście parametrów
c) automatyczne zatwierdzanie transakcji
d) wykonywanie DDL w PL/SQL

a) definiowanie kilku podprogramów o tej samej nazwie i różnej liście parametrów

54
New cards

57. Do składowych pakietu odwołujemy się notacją:

a) pakiet->składowa
b) pakiet.składowa
c) pakiet::składowa
d) pakiet#składowa

b) pakiet.składowa

55
New cards

58. Specyfikacja pakietu zawiera:

a) definicje (ciała) procedur i funkcji
b) deklaracje elementów dostępnych na zewnątrz (publicznych)
c) wyłącznie zmienne prywatne
d) sekcję BEGIN ... END

b) deklaracje elementów dostępnych na zewnątrz (publicznych)

56
New cards

59. Zdarzenia, z którymi możemy wiązać wyzwalacze DML to:

a) SELECT, INSERT, UPDATE
b) INSERT, UPDATE, DELETE
c) COMMIT, ROLLBACK, SAVEPOINT
d) CREATE, ALTER, DROP

b) INSERT, UPDATE, DELETE

57
New cards

61. Kwalifikatory :NEW i :OLD mogą być stosowane:

a) w każdym wyzwalaczu
b) tylko w wyzwalaczach wierszowych (FOR EACH ROW)
c) tylko w wyzwalaczach poleceniowych
d) tylko w wyzwalaczach INSTEAD OF

b) tylko w wyzwalaczach wierszowych (FOR EACH ROW)

58
New cards

62. W wyzwalaczu odpalonym przez polecenie INSERT, kwalifikator :OLD.kolumna jest:

a) równy nowej wartości
b) zawsze NULL
c) równy wartości domyślnej kolumny
d) niedostępny składniowo

b) zawsze NULL

59
New cards

63. Atrybuty INSERTING, UPDATING, DELETING pozwalają:

a) zatwierdzić transakcję
b) rozpoznać, która operacja DML spowodowała odpalenie wyzwalacza
c) zablokować wiersze
d) usunąć wyzwalacz

b) rozpoznać, która operacja DML spowodowała odpalenie wyzwalacza

60
New cards

64. Wyzwalacze INSTEAD OF są pomocne, gdy chcemy:

a) wykonać DDL w wyzwalaczu
b) zaimplementować operacje DML na perspektywach (widokach)
c) zablokować wszystkie operacje na tabeli
d) automatycznie zatwierdzać transakcję

b) zaimplementować operacje DML na perspektywach (widokach)

61
New cards

65. Procedura wbudowana umożliwiająca generowanie wyjątków powiązanych z numerami błędów w wyzwalaczu to:

a) RAISE_ERROR
b) RAISE_APPLICATION_ERROR
c) SIGNAL_ERROR
d) THROW_ERROR

b) RAISE_APPLICATION_ERROR

62
New cards

66. Aby sprawdzić, jakie wyzwalacze istnieją w schemacie, odpytujemy widok:

a) user_tables
b) user_triggers
c) user_views
d) dict_triggers

b) user_triggers

63
New cards

72. Program PL/SQL w kontekście transakcji:

a) automatycznie zatwierdza transakcję po wykonaniu procedury
b) nie jest jednostką przetwarzania transakcyjnego — aby zatwierdzić, trzeba użyć COMMIT
c) nie pozwala na sterowanie transakcjami
d) automatycznie wycofuje każdą zmianę

b) nie jest jednostką przetwarzania transakcyjnego — aby zatwierdzić, trzeba użyć COMMIT

64
New cards

73. Co wydrukuje program?

DECLARE
  x number;
  y number;
  z number;
BEGIN
  x := 10;
  y := x*2;
  z := x/2+2;
  dbms_output.put_line(z*2);
END;

a) -4
b) -16
c) 14
d) 8

c) 14

65
New cards

74. Co wydrukuje program?

DECLARE
  x varchar2(10) := '444';
  y varchar2(10);
BEGIN
  y := '333';
  dbms_output.put_line(x||y);
END;

a) 777
b) 444333
c) błąd wykonania
d) 333444

b) 444333

66
New cards

75. Ile wynosi wynik funkcji SILNIA(4) liczącej iloczyn 1..N:

a) 16
b) 24
c) 10
d) 120

b) 24