Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 3.04 KB | None | 0 0
  1. SELECT * FROM student;
  2. CREATE OR REPLACE PROCEDURE AddStudent(
  3. p_login CHAR,
  4. p_fname VARCHAR2,
  5. p_lname VARCHAR2,
  6. p_tallness NUMBER) AS
  7. BEGIN
  8.     INSERT INTO student VALUES(p_login,p_fname,p_lname,p_tallness);
  9. END AddStudent;
  10.  
  11. EXECUTE AddStudent('zid003','John','Doe',199);
  12.  
  13. CREATE OR REPLACE FUNCTION FAddStudent(p_login CHAR, p_fname VARCHAR2, p_lname VARCHAR2, p_tallness NUMBER)
  14. RETURN VARCHAR AS
  15. v_return VARCHAR(50);
  16. BEGIN
  17.     INSERT INTO student VALUES(p_login,p_fname,p_lname,p_tallness);
  18.     v_return:='ok';
  19.     RETURN v_return;
  20.     EXCEPTION
  21.     WHEN OTHERS THEN
  22.      v_return:='error';
  23.     RETURN v_return;
  24. END;
  25.  
  26. EXECUTE DBMS_OUTPUT.put_line(FAddStudent('aho004','John','Doe',199));
  27.  
  28. SET serveroutput ON;
  29.  
  30.  
  31. CREATE TABLE Teacher (
  32. login CHAR(6) NOT NULL PRIMARY KEY,
  33. fname VARCHAR2(30) NOT NULL,
  34. lname VARCHAR2(50) NOT NULL,
  35. department INT NOT NULL,
  36. specialization VARCHAR2(30) NULL);
  37.  
  38.  
  39.  
  40. CREATE OR REPLACE PROCEDURE StudentBecomeTeacher(
  41. p_login teacher.login%TYPE,
  42. p_department teacher.department%TYPE) AS
  43. /*v_fname teacher.fname%type;
  44. v_lname teacher.lname%type;*/
  45. BEGIN
  46.     inser
  47.     DELETE FROM student WHERE login = p_login;
  48.     INSERT INTO Teacher(login,fname,lname,department) VALUES(p_login,v_fname,v_lname,p_department);
  49.     COMMIT;
  50.     WHEN OTHERS THEN
  51.     ROLLBACK;
  52. END StudentBecomeTeacher;
  53.  
  54. SELECT * FROM student;
  55. SELECT * FROM teacher;
  56. EXECUTE StudentBecomeTeacher('zid003',5);
  57.  
  58.  
  59.  
  60.  
  61. CREATE OR REPLACE PROCEDURE AddStudent2(
  62.  
  63. p_fname VARCHAR2,
  64. p_lname VARCHAR2) AS
  65. v_name CHAR(6);
  66. v_i int;
  67. BEGIN
  68.     v_i:=0;
  69.     v_name:=SUBSTR(p_lname,0,4)||'0'||CAST(v_i AS CHAR);
  70.     WHILE LoginExist(v_name)
  71.     LOOP
  72.         v_i:=v_i+1;
  73.         v_name:=SUBSTR(p_lname,0,4)||'0'||CAST(v_i AS CHAR);
  74.     END LOOP;
  75.     INSERT INTO student(login,fname,lname) VALUES(v_name,p_fname,p_lname);
  76. END AddStudent2;
  77.  
  78. EXECUTE AddStudent2('Stepan','Chvatik');
  79. SELECT * FROM student;
  80.  
  81. ALTER TABLE student add isTall int;
  82. ALTER TABLE student add CHECK(isTall=1 OR isTall=0);
  83.  
  84.  
  85.  
  86. CREATE OR REPLACE PROCEDURE IsStudentTall AS
  87. CURSOR c_student IS SELECT * FROM student;
  88. v_record student%ROWTYPE;
  89. BEGIN
  90.     OPEN c_student;
  91.     LOOP
  92.         FETCH c_student INTO v_record;
  93.         EXIT WHEN c_student%NOTFOUND;  
  94.             UPDATE student SET isTall = 0 WHERE login = v_record.login;
  95.             UPDATE student SET isTall = 1 WHERE login = v_record.login AND v_record.tallness > (SELECT AVG(tallness) FROM student);
  96.  
  97.     END LOOP;
  98.     CLOSE c_student;
  99. END IsStudentTall;
  100.  
  101. SELECT * FROM student;
  102. EXECUTE IsStudentTall;
  103. EXECUTE IsStudentTall('aho004');
  104.  
  105. CREATE OR REPLACE FUNCTION LoginExist(
  106. p_login CHAR)
  107. RETURN BOOLEAN AS
  108. v_return BOOLEAN;
  109. BEGIN
  110.     SELECT login FROM student WHERE login=p_login;
  111.     v_return:=TRUE;
  112.     RETURN v_return;
  113.     EXCEPTION
  114.     WHEN OTHERS THEN
  115.      v_return:=FALSE;
  116.     RETURN v_return;
  117. END;
  118. BEGIN
  119. IF(LoginExist('bush06'))
  120. THEN
  121.  DBMS_OUTPUT.put_line('je');
  122. ELSE
  123.     DBMS_OUTPUT.put_line('ne');
  124. END IF;
  125. END;
  126. EXECUTE DBMS_OUTPUT.put_line(LoginExist('buh06'));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement