Advertisement
Guest User

Untitled

a guest
Jun 11th, 2019
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 2.73 KB | None | 0 0
  1. 1.
  2. SET verify off
  3. DECLARE
  4. v_countryid VARCHAR2(20):= 'CA';
  5. v_country_record countries%ROWTYPE;
  6. BEGIN
  7. SELECT *
  8. INTO v_country_record
  9. FROM countries
  10. WHERE country_id=UPPER(v_countryid);
  11.  
  12. DBMS_OUTPUT.put_line('country id: '|| v_country_record.country_id||' region: '|| v_country_record.region_id);
  13. END;
  14.  
  15.  
  16. 2.DECLARE
  17. TYPE dept_table_type IS TABLE OF
  18. departments.department_name%TYPE
  19. INDEX BY PLS_INTEGER;
  20. my_dept_table dept_table_type;
  21. f_loop_count NUMBER(2):=10;
  22. v_deptno NUMBER(4):=0;
  23. BEGIN
  24. FOR i IN 1..f_loop_count
  25. LOOP
  26. v_deptno:=v_deptno+10;
  27. SELECT department_name
  28. INTO my_dept_table(i)
  29. FROM departments
  30. WHERE department_id = v_deptno;
  31. END LOOP;
  32. FOR i IN 1..f_loop_count
  33. LOOP
  34. DBMS_OUTPUT.put_line(my_dept_table(i));
  35. END LOOP;
  36. END;
  37.  
  38. 3.
  39. DECLARE
  40. TYPE dept_table_type IS TABLE OF departments%ROWTYPE
  41. INDEX BY PLS_INTEGER;
  42. my_dept_table dept_table_type;
  43. f_loop_count NUMBER(2):=10;
  44. v_deptno NUMBER(4):=0;
  45. BEGIN
  46. FOR i IN 1..f_loop_count
  47. LOOP
  48. v_deptno := v_deptno + 10;
  49. SELECT *
  50. INTO my_dept_table(i)
  51. FROM departments
  52. WHERE department_id = v_deptno;
  53. END LOOP;
  54. FOR i IN 1..f_loop_count
  55. LOOP
  56. DBMS_OUTPUT.put_line('Dept no: '||
  57. my_dept_table(i).department_id ||' Manager id: '||
  58. my_dept_table(i).manager_id
  59. ||' Location id: '|| my_dept_table(i).location_id);
  60. END LOOP;
  61. END;
  62.  
  63. 4.DECLARE
  64. TYPE table_ename IS TABLE OF employees.last_name%TYPE
  65. INDEX BY BINARY_INTEGER;
  66. TYPE table_dept IS TABLE OF employees.department_id%TYPE
  67. INDEX BY BINARY_INTEGER;
  68. tename table_ename;
  69. tdept table_dept;
  70. i BINARY_INTEGER := 0;
  71. CURSOR namedept IS SELECT last_name,department_id FROM
  72. employees WHERE employee_id < 115;
  73. track NUMBER :=15;
  74. BEGIN
  75. FOR emprec IN namedept
  76. LOOP
  77. i := i+1;
  78. tename(i) := emprec.last_name;
  79. tdept(i):=emprec.department_id;
  80. END LOOP;
  81. FOR i IN 1..track
  82. LOOP
  83. DBMS_OUTPUT.put_line('employee name: '||tename(i)||
  84. ' department id: '||tdept(i));
  85. END LOOP;
  86. END;
  87.  
  88. 5.
  89. CREATE TYPE typ_item1 AS OBJECT
  90. (prodid NUMBER(5), price NUMBER(7,2));
  91. /
  92. CREATE TYPE typ_item_nst1
  93. AS TABLE OF typ_item;
  94. /
  95. CREATE TABLE porder1(
  96. orderid NUMBER(5),
  97. supplier NUMBER(5),
  98. requester NUMBER(4),
  99. ordered DATE,
  100. items typ_item_nst)
  101. nested TABLE items store AS item_stor_tab1;
  102.  
  103. 6.
  104. truncate TABLE pOrder;
  105. BEGIN
  106. INSERT INTO pOrder
  107. (ordid, supplier, requester, ordered, items)
  108. VALUES (1000, 12345, 9876, SYSDATE,
  109. typ_item_nst(typ_item(99,129.00)));
  110. END;
  111. BEGIN
  112. INSERT INTO pOrder
  113. (ordid, supplier, requester, ordered, items)
  114. VALUES (1001, 12346, 9877, sysdate-1, NULL);
  115. UPDATE pOrder
  116. SET items=typ_item_nst(typ_item(100,130.00))
  117. WHERE ordid=1000;
  118. END;
  119. SELECT * FROM pOrder;
  120. BEGIN
  121. UPDATE pOrder SET
  122. items=typ_item_nst(typ_item(100,130.00),typ_item(110, 140.00))
  123. WHERE ordid=1000;
  124. END;
  125.  
  126. SELECT * FROM pOrder;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement