Advertisement
Guest User

Untitled

a guest
Jun 3rd, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.86 KB | None | 0 0
  1. SET SERVEROUTPUT ON;
  2. DECLARE
  3. c_course VARCHAR2(40) := 'ITB7325 Advanced Database';
  4. c_code VARCHAR2(7);
  5. c_desc VARCHAR2(30);
  6. blank_space NUMBER(2);
  7. num NUMBER(2);
  8. BEGIN
  9. blank_space := INSTR(c_course,' ');
  10. num := LENGTH(c_course);
  11. c_code := SUBSTR(c_course,1,(blank_space-1));
  12. c_desc := SUBSTR(c_course,(blank_space+1),(num-blank_space));
  13.  
  14. --Display the date
  15. DBMS_OUTPUT.PUT_LINE('Course Code: '||c_code);
  16. DBMS_OUTPUT.PUT_LINE('Course Name: '||c_desc);
  17. DBMS_OUTPUT.PUT_LINE('blank_space : '||blank_space);
  18.  
  19. END;
  20. /
  21. SET SERVEROUTPUT OFF;
  22.  
  23. -----------------FOR LOOP------------------
  24.  
  25. DROP TABLE count_table;
  26.  
  27. CREATE TABLE count_table (
  28. counter NUMBER
  29. );
  30.  
  31.  
  32. SET SERVEROUTPUT ON;
  33. DECLARE
  34. loop_count BINARY_INTEGER := 1;
  35. BEGIN
  36. DELETE FROM count_table;
  37. LOOP
  38. INSERT INTO count_table VALUES (loop_count);
  39. loop_count := loop_count + 1;
  40.  
  41. IF loop_count >=6 THEN
  42. EXIT;
  43. END IF;
  44. END LOOP;
  45. SYS.DBMS_OUTPUT.PUT_LINE('LOOP Finished');
  46. END;
  47. /
  48. SET SERVEROUTPUT OFF;
  49.  
  50. SELECT * FROM count_table;
  51.  
  52. --------------------WHILE LOOP--------------------
  53.  
  54. SET SERVEROUTPUT ON;
  55. DECLARE
  56. loop_count BINARY_INTEGER := 1;
  57. BEGIN
  58. DELETE FROM count_table;
  59. WHILE loop_count < 6 LOOP
  60. INSERT INTO count_table VALUES (loop_count);
  61. loop_count := loop_count + 1;
  62. END LOOP;
  63. SYS.DBMS_OUTPUT.PUT_LINE('LOOP Finished');
  64. END;
  65. /
  66. SET SERVEROUTPUT OFF;
  67.  
  68. SELECT * FROM count_table;
  69.  
  70. --------------------FOR ... LOOP------------------------
  71.  
  72. SET SERVEROUTPUT ON;
  73. DECLARE
  74. loop_count BINARY_INTEGER := 1;
  75. BEGIN
  76. DELETE FROM count_table;
  77. FOR loop_count IN 1..5 LOOP
  78. INSERT INTO count_table VALUES (loop_count);
  79. loop_count := loop_count + 1;
  80. END LOOP;
  81. SYS.DBMS_OUTPUT.PUT_LINE('LOOP Finished');
  82. END;
  83. /
  84. SET SERVEROUTPUT OFF;
  85.  
  86. SELECT * FROM count_table;
  87.  
  88. -----------------Implicit Cursor---------------------
  89. SET SERVEROUTPUT ON;
  90. DECLARE
  91. username member.musername%TYPE;
  92. password member.mpassword%TYPE;
  93. BEGIN
  94. SELECT musername,mpassword
  95. INTO username,password
  96. FROM member
  97. WHERE ID = 1;
  98. SYS.DBMS_OUTPUT.PUT_LINE('Username: '||username||' password: '||password);
  99. END;
  100. /
  101. SET SERVEROUTPUT OFF;
  102.  
  103. ---------------Explicit Cursor------------------
  104. SET SERVEROUTPUT ON;
  105. DECLARE
  106. --1.Declare the cursor with query
  107. CURSOR member_cursor IS
  108. SELECT musername,memail,mpassword FROM member;
  109. username member.musername%TYPE;
  110. email member.memail%TYPE;
  111. password member.mpassword%TYPE;
  112. BEGIN
  113. --2.open the cursor
  114. OPEN member_cursor;
  115. --3.Fetch the data rows
  116. LOOP
  117. FETCH member_cursor into username,email,password;
  118. EXIT WHEN member_cursor%NOTFOUND; --no more rows
  119. SYS.DBMS_OUTPUT.PUT_LINE('Username: '||username||' password: '||password||' email:'||email);
  120. END LOOP;
  121. CLOSE member_cursor;
  122. END;
  123. /
  124. SET SERVEROUTPUT OFF;
  125.  
  126. ------------Explicit Cursor with RowType----------
  127. SET SERVEROUTPUT ON;
  128. DECLARE
  129. --1.Declare the cursor with query
  130. CURSOR member_cursor IS
  131. SELECT * FROM member;
  132. member_row member_cursor%ROWTYPE;
  133. BEGIN
  134. --2.open the cursor
  135. OPEN member_cursor;
  136. --3.Fetch the data rows
  137. LOOP
  138. FETCH member_cursor INTO member_row;
  139. EXIT WHEN member_cursor%NOTFOUND; --no more rows
  140. SYS.DBMS_OUTPUT.PUT_LINE('Username: '||member_row.musername||' password: '||member_row.mpassword||' email:'||member_row.memail);
  141. END LOOP;
  142. CLOSE member_cursor;
  143. END;
  144. /
  145. SET SERVEROUTPUT OFF;
  146.  
  147. --------------------Explicit Cursor For Loop------------------------
  148.  
  149. SET SERVEROUTPUT ON;
  150. DECLARE
  151. --1.Declare the cursor with query
  152. CURSOR member_cursor IS
  153. SELECT * FROM member;
  154. member_row member_cursor%ROWTYPE;
  155. BEGIN
  156. --2.For loop no need open
  157. FOR member_row IN member_cursor LOOP
  158. SYS.DBMS_OUTPUT.PUT_LINE('Username: '||member_row.musername||' password: '||member_row.mpassword||' email:'||member_row.memail);
  159. END LOOP;
  160. END;
  161. /
  162. SET SERVEROUTPUT OFF;
  163.  
  164. --------------------Exception-----------------------
  165.  
  166. SET SERVEROUTPUT ON;
  167. DECLARE
  168. m_id NUMBER := &m_id;
  169. CURSOR member_cursor IS
  170. SELECT * FROM member WHERE id>m_id;
  171. member_row member_cursor%ROWTYPE;
  172. e_foreign_key_error EXCEPTION;
  173. PRAGMA EXCEPTION_INIT (e_foreign_key_error, -2291);
  174. e_my_exception EXCEPTION;
  175. e_id member.id%TYPE;
  176. BEGIN
  177. --2.For loop no need open
  178. FOR member_row IN member_cursor LOOP
  179. IF member_row.mmobile IS NULL THEN
  180. e_id := member_row.id;
  181. RAISE e_my_exception;
  182. END IF;
  183. SYS.DBMS_OUTPUT.PUT_LINE('Username: '||member_row.musername||' password: '||member_row.mpassword||' email:'||member_row.memail);
  184. END LOOP;
  185. EXCEPTION
  186. WHEN NO_DATA_FOUND THEN
  187. SYS.DBMS_OUTPUT.PUT_LINE('No data was found');
  188. WHEN e_foreign_key_error THEN
  189. SYS.DBMS_OUTPUT.PUT_LINE('Field Not found in parent table');
  190. WHEN e_my_exception THEN
  191. SYS.DBMS_OUTPUT.PUT_LINE('Member '||e_id||' is missing their last name');
  192. WHEN OTHERS THEN
  193. SYS.DBMS_OUTPUT.PUT_LINE('Encountered the following error');
  194. SYS.DBMS_OUTPUT.PUT_LINE(SQLERRM);
  195. END;
  196. /
  197. SET SERVEROUTPUT OFF;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement