Advertisement
tburton

Materiały na BD egz

Feb 8th, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 2.67 KB | None | 0 0
  1. INSERT INTO czytelnicy VALUES (1,'Haraszo','Andrzej',TO_DATE('2003/07/09', 'yyyy/mm/dd'));
  2.  
  3. ------------------------       SEKWENCJE
  4.  
  5. CREATE SEQUENCE sequence_name
  6.     START WITH start_num
  7.     INCREMENT BY increment_num
  8.     MAXVALUE maximum_value || NOMAXVALUE
  9.     MINVALUE minimum_value || NOMINVALUE
  10.     CACHE cache_num || NOCACHE
  11.     CYCLE | NOCYCLE
  12.     ORDER | NOORDER
  13. ;
  14.  
  15. INSERT INTO table_name VALUES (sequence_name.NEXTVAL, other_value);
  16.  
  17. ------------------------           PROCEDURY
  18.  
  19. CREATE OR REPLACE PROCEDURE emp_sal (dep_id NUMBER, sal_raise NUMBER)
  20. IS
  21. BEGIN
  22.     UPDATE employees SET salary = salary * sal_raise WHERE department_id = dep_id;
  23. END;
  24. /
  25.  
  26. EXECUTE emp_sal;
  27.  
  28. --------------------------          FUNKCJE
  29.  
  30.  
  31. CREATE OR REPLACE FUNCTION function_name
  32. (Parameter 1, Parameter 2) RETURN datatype
  33. IS
  34.     DECLARE variable, CONSTANT etc.
  35. BEGIN
  36.     Executable Statements
  37.     RETURN (RETURN VALUE)
  38. END;
  39.  
  40. -------- Funkcja 2.
  41.  
  42. CREATE OR REPLACE FUNCTION circle_area (radius NUMBER)
  43. RETURN NUMBER
  44. IS
  45.     pi CONSTANT NUMBER (7,3) := 3.141;
  46.     area NUMBER(7,3);
  47. BEGIN
  48.     area := pi * ( radius * radius );
  49.     RETURN area;
  50. END;
  51. /
  52.  
  53. BEGIN
  54. DBMS_OUTPUT.PUT_LINE(circle_area (25));
  55. END;
  56. /
  57.  
  58. -----------------------------      KURSORY
  59.  
  60. DECLARE
  61.     v_imie VARCHAR(30);
  62.     CURSOR demo IS
  63.     SELECT imie FROM pracownicy
  64.     WHERE id_pracownika < 105;
  65. BEGIN
  66.     OPEN demo;
  67.     LOOP
  68.         FETCH demo INTO v_imie;
  69.         DBMS_OUTPUT.PUT_LINE(v_imie);
  70.         EXIT WHEN demo%NOTFOUND;
  71.     END LOOP;
  72.     CLOSE demo;
  73. END;
  74.  
  75.  
  76. ----------- Kursor 2
  77.  
  78. DECLARE
  79.     zmienna TABELA%ROWTYPE;
  80. CURSOR nazwa_kursora
  81. IS
  82.     SELECT * FROM TABELA;
  83. BEGIN
  84. OPEN nazwa_kursora;
  85.     LOOP
  86.         FETCH nazwa_kursora INTO zmienna;
  87.         EXIT WHEN nazwa_kursora%NOTFOUND;
  88.             DBMS_OUTPUT.PUT_LINE('Wartosc kolumny: '|| zmienna.kolumna);
  89.     END LOOP;
  90.     DBMS_OUTPUT.PUT_LIBE('Zliczanie ile razy: '|| nazwa_kursora%rowcount)
  91.     CLOSE nazwa_kursora;
  92. END;
  93. /
  94.  
  95. --------------------------------          PRZEŁĄCZNIKI
  96.  
  97. CREATE OR REPLACE TRIGGER pracownicy
  98. BEFORE INSERT ON pracownicy
  99. FOR EACH ROW
  100. -- ENABLE
  101. DECLARE
  102.     imie VARCHAR(20) := 'Pawel';
  103. BEGIN
  104.     DBMS_OUTPUT.PUT_LINE ( imie || ', jestes zajebisty i dodales rekord');
  105. END;
  106. /
  107.  
  108. -------- Przełącznik 2.
  109.  
  110. CREATE OR REPLACE TRIGGER pracownicy
  111. BEFORE INSERT OR DELETE OR UPDATE ON pracownicy
  112. FOR EACH ROW
  113. -- ENABLE
  114. DECLARE
  115.     imie VARCHAR(20) := 'Pawel';
  116. BEGIN
  117.     IF INSERTING THEN
  118.         DBMS_OUTPUT.PUT_LINE ( imie || ', jestes zajebisty i dodales rekord');
  119.     ELSIF DELETING THEN
  120.         DBMS_OUTPUT.PUT_LINE ('Kuuurwa, ale odjebales ' || imie );
  121.     ELSIF UPDATING THEN
  122.         DBMS_OUTPUT.PUT_LINE ('No co, Ty bys tego nie naprawil ' || imie || '?' );
  123.     END IF;
  124. END;
  125. /
  126.  
  127. UPDATE pracownicy SET imie = 'Janek' WHERE imie = 'Franek';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement