Advertisement
Guest User

help1

a guest
Mar 23rd, 2017
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 5.71 KB | None | 0 0
  1. Oracle CURSOR
  2.  
  3. CREATE OR REPLACE PROCEDURE lolec11(usp IN VARCHAR2)
  4. AS
  5. jmeno VARCHAR2(50);
  6. poc int;
  7.  
  8. CURSOR jmeno_list IS SELECT z.jmeno FROM Zakaznik z ORDER BY z.jmeno ASC;
  9.  
  10. CURSOR nakup_list IS SELECT COUNT(n.zID),z.jmeno FROM Zakaznik z, Nakup n WHERE z.zID = n.zID
  11. GROUP BY z.jmeno ORDER BY COUNT(n.zID) DESC;
  12.  
  13. CURSOR rek_list IS SELECT COUNT(r.nID),z.jmeno FROM  Zakaznik z, Nakup n, Reklamace r WHERE
  14. z.zID = n.zID AND r.nID = n.nID GROUP BY z.jmeno ORDER BY COUNT(r.nID) DESC;
  15.  
  16. BEGIN
  17.   IF(usp = 'jmeno') THEN
  18.    OPEN jmeno_list;
  19.     LOOP
  20.      FETCH jmeno_list INTO jmeno;
  21.      EXIT WHEN jmeno_list%NOTFOUND;
  22.         DBMS_OUTPUT.PUT_LINE(jmeno);
  23.      END LOOP;
  24.     CLOSE jmeno_list;
  25.   END IF;
  26.  
  27.   IF(usp = 'nakup') THEN
  28.    OPEN nakup_list;
  29.     LOOP
  30.      FETCH nakup_list INTO poc,jmeno;
  31.      EXIT WHEN nakup_list%NOTFOUND;
  32.         DBMS_OUTPUT.PUT_LINE(jmeno || ' ' || poc);
  33.      END LOOP;
  34.     CLOSE nakup_list;
  35.   END IF;
  36.  
  37.  
  38.    IF(usp = 'reklamace') THEN
  39.    OPEN rek_list;
  40.     LOOP
  41.      FETCH rek_list INTO poc,jmeno;
  42.      EXIT WHEN rek_list%NOTFOUND;
  43.         DBMS_OUTPUT.PUT_LINE(jmeno || ' ' || poc);
  44.      END LOOP;
  45.     CLOSE rek_list;
  46.   END IF;
  47.  
  48. END;
  49.  
  50.  
  51.  
  52. vzorac
  53.  
  54. ALTER PROCEDURE VypisZakazniku (@rok_od int = -1, @rok_do int = -1)
  55. AS
  56. DECLARE @muzi VARCHAR(20)
  57. DECLARE @zeny VARCHAR(20)
  58. SET @muzi = 0
  59. SET @zeny = 0
  60. BEGIN
  61. IF @rok_od != -1 AND @rok_do != -1
  62. BEGIN
  63.  SELECT @muzi = SUM(n.cena)
  64.     FROM test.Nakup n
  65.     left join test.Zakaznik z ON n.zID = z.zID
  66.     WHERE z.pohlavi = 'muz' AND YEAR(n.den) BETWEEN @rok_od AND @rok_do
  67.  
  68.  SELECT @zeny = SUM(n.cena)
  69.     FROM test.Nakup n
  70.     left join test.Zakaznik z ON n.zID = z.zID
  71.     WHERE z.pohlavi = 'zena' AND YEAR(n.den) BETWEEN @rok_od AND @rok_do
  72.  
  73. print 'Muzi mezi roky ' + CAST(@rok_od AS VARCHAR) + ' a ' + CAST(@rok_do AS VARCHAR) + ' nakoupili za celkovou castku '
  74.         + @muzi + ' Kc. Zeny mezi roky ' + CAST(@rok_od AS VARCHAR) + ' a ' + CAST(@rok_do AS VARCHAR) + ' nakoupily za celkovou castku ' + @zeny + ' Kc.'
  75. END
  76.  
  77. IF @rok_od = -1 AND @rok_do != -1
  78. BEGIN
  79.  SELECT @muzi = SUM(n.cena)
  80.     FROM test.Nakup n
  81.     left join test.Zakaznik z ON n.zID = z.zID
  82.     WHERE z.pohlavi = 'muz' AND YEAR(n.den) <= @rok_do
  83.  
  84.  SELECT @zeny = SUM(n.cena)
  85.     FROM test.Nakup n
  86.     left join test.Zakaznik z ON n.zID = z.zID
  87.     WHERE z.pohlavi = 'zena' AND YEAR(n.den) <= @rok_do
  88.  
  89.     print 'Muzi do roku ' + CAST(@rok_do AS VARCHAR) + ' nakoupili za celkovou castku '
  90.         + @muzi + ' Kc. Zeny do roku ' + CAST(@rok_do AS VARCHAR) + ' nakoupily za celkovou castku ' + @zeny + ' Kc.'
  91. END
  92.  
  93. IF @rok_od != -1 AND @rok_do = -1
  94. BEGIN
  95.  SELECT @muzi = SUM(n.cena)
  96.     FROM test.Nakup n
  97.     left join test.Zakaznik z ON n.zID = z.zID
  98.     WHERE z.pohlavi = 'muz' AND YEAR(n.den) >= @rok_od
  99.  
  100.  SELECT @zeny = SUM(n.cena)
  101.     FROM test.Nakup n
  102.     left join test.Zakaznik z ON n.zID = z.zID
  103.     WHERE z.pohlavi = 'zena' AND YEAR(n.den) >= @rok_od
  104.  
  105.     print 'Muzi od roku ' + CAST(@rok_od AS VARCHAR) + ' nakoupili za celkovou castku '
  106.         + @muzi + ' Kc. Zeny od roku ' + CAST(@rok_od AS VARCHAR) + ' nakoupily za celkovou castku ' + @zeny + ' Kc.'
  107. END
  108.  
  109. IF @rok_od = -1 AND @rok_do = -1
  110. BEGIN
  111.  SELECT @muzi = SUM(n.cena)
  112.     FROM test.Nakup n
  113.     left join test.Zakaznik z ON n.zID = z.zID
  114.     WHERE z.pohlavi = 'muz'
  115.  
  116.  SELECT @zeny = SUM(n.cena)
  117.     FROM test.Nakup n
  118.     left join test.Zakaznik z ON n.zID = z.zID
  119.     WHERE z.pohlavi = 'zena'
  120.  
  121. print 'Muzi nakoupili za celkovou castku ' + @muzi + ' Kc. Zeny nakoupily za celkovou castku ' + @zeny + ' Kc.'
  122. END
  123.  
  124. END
  125.  
  126.  
  127.  
  128. EXECUTE VypisZakazniku 2013
  129.  
  130.  
  131.  
  132.  
  133. vzorac v oracle
  134.  
  135. CREATE OR REPLACE PROCEDURE VypisZakazniku(rok_od INT := -1, rok_do INT := -1)
  136. AS
  137. muz NUMBER;
  138. zena NUMBER;
  139.  
  140. BEGIN
  141.  
  142. IF (rok_od != -1 AND rok_do != -1) THEN
  143.   SELECT SUM(n.cena) INTO muz FROM NAKUP n,ZAKAZNIK z WHERE n.zid = z.zid
  144.   AND z.pohlavi = 'muz'
  145.   AND  EXTRACT(YEAR FROM n.den) BETWEEN rok_od AND rok_do;
  146.  
  147.   SELECT SUM(n.cena) INTO zena FROM NAKUP n, ZAKAZNIK z WHERE n.zid = z.zid
  148.   AND z.pohlavi = 'zena'
  149.   AND  EXTRACT(YEAR FROM n.den) BETWEEN rok_od AND rok_do;
  150.  
  151.   DBMS_OUTPUT.PUT_LINE('Muzi mezi roky ' || rok_od || ' a ' || rok_do || ' nakoupili za celkovou castku ' || muz || ' Kc. Zeny mezi roky ' || rok_od || ' a ' || rok_do || ' nakoupily za celkovou castku ' || zena || ' Kc.');
  152. END IF;
  153.  
  154.  
  155. IF (rok_od != -1 AND rok_do = -1) THEN
  156.   SELECT SUM(n.cena) INTO muz FROM NAKUP n, ZAKAZNIK z WHERE n.zid = z.zid
  157.   AND z.pohlavi = 'muz'
  158.   AND EXTRACT(YEAR FROM n.den) > rok_od;
  159.  
  160.    SELECT SUM(n.cena) INTO zena FROM NAKUP n, ZAKAZNIK z WHERE n.zid = z.zid
  161.   AND z.pohlavi = 'zena'
  162.   AND EXTRACT(YEAR FROM n.den) > rok_od;
  163.  
  164.  DBMS_OUTPUT.PUT_LINE('Muzi od roku ' || rok_od ||  ' nakoupili za celkovou castku ' || muz || ' Kc. Zeny od roku ' || rok_od || ' nakoupily za celkovou castku ' || zena || ' Kc.');
  165.  
  166. END IF;
  167.  
  168. IF (rok_od = -1 AND rok_do != -1) THEN
  169.   SELECT SUM(n.cena) INTO muz FROM NAKUP n, ZAKAZNIK z WHERE n.zid = z.zid
  170.   AND z.pohlavi = 'muz'
  171.   AND EXTRACT(YEAR FROM n.den) < rok_do;
  172.  
  173.   SELECT SUM(n.cena) INTO zena FROM NAKUP n, ZAKAZNIK z WHERE n.zid = z.zid
  174.   AND z.pohlavi = 'zena'
  175.   AND EXTRACT(YEAR FROM n.den) < rok_do;
  176.  
  177.   DBMS_OUTPUT.PUT_LINE('Muzi do roku ' || rok_do ||  ' nakoupili za celkovou castku ' || muz || ' Kc. Zeny do roku ' || rok_do || ' nakoupily za celkovou castku ' || zena || ' Kc.');
  178.  
  179. END IF;
  180.  
  181. IF (rok_od = -1 AND rok_do = -1) THEN
  182.   SELECT SUM(n.cena) INTO muz FROM NAKUP n, ZAKAZNIK z WHERE n.zid = z.zid
  183.   AND z.pohlavi = 'muz';
  184.  
  185.   SELECT SUM(n.cena) INTO zena FROM NAKUP n, ZAKAZNIK z WHERE n.zid = z.zid
  186.   AND z.pohlavi = 'zena';
  187.  
  188.   DBMS_OUTPUT.PUT_LINE('Muzi nakoupili za celkovou castku ' || muz || ' Kc. Zeny nakoupily za celkovou castku ' || zena || ' Kc.');
  189.  
  190. END IF;
  191.  
  192. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement