Advertisement
Guest User

Untitled

a guest
May 27th, 2015
254
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.82 KB | None | 0 0
  1. --Ciepłucha Łukasz 171907 sanjuro20@o2.pl
  2.  
  3.  
  4. ---ad1 Napisac funkcje liczba_dni(data in date) liczbe miesiecy, ktora uplynela miedzy podana data w premierze wejsciowym a data zegara systemowego.
  5. DECLARE
  6. stringDate varchar2(20) := '2015­4­28';
  7. currentDate DATE := SYSDATE;
  8. paramDate DATE := TO_DATE(stringDate, 'yyyy­mm­dd');
  9. subDate DATE;
  10. dataDiff NUMBER;
  11. BEGIN
  12. dataDiff := MONTHS_BETWEEN (paramDate, currentDate);
  13. CASE
  14. WHEN dataDiff < 0 THEN DBMS_OUTPUT.put_line('roynica miesiecz ' || (ROUND(­dataDiff,0)));
  15. WHEN dataDiff > 0 THEN DBMS_OUTPUT.put_line('data pozjniejsza od daty zegara systemowego');
  16. ELSE null;
  17. END CASE;
  18. END;
  19.  
  20.  
  21. ----------------------------------
  22.  
  23. CREATE OR REPLACE FUNCTION liczba_dni(inputDate in date) RETURN NUMBER AS
  24. dataDiff
  25. DECLARE
  26. currentDate DATE := SYSDATE;
  27. BEGIN
  28. dataDiff := MONTHS_BETWEEN (inputDate, currentDate);
  29. CASE
  30. WHEN dataDiff < 0 THEN RETURN dataDiff;
  31. WHEN dataDiff > 0 THEN DBMS_OUTPUT.put_line('data pozjniejsza od daty zegara systemowego');
  32. ELSE null;
  33. END CASE;
  34. END;
  35.  
  36. BEGIN
  37. dbms_output.put_line(liczba_dni(2015-04-28));
  38. END
  39.  
  40.  
  41.  
  42. ---ad2 napisz blok pl/sql w ktorym wykorzystany bedzie kursor który dla kazdego szefa pracownikow(kolumna mgr tabeli emp) wyswietli nazwisko pracownika,
  43. ---dzial w ktorym pracuje oraz nazwisko szefa luba samo nazwisko
  44.  
  45.  
  46.  
  47.  
  48.  
  49. ---ad3
  50. CREATE OR REPLACE PROCEDURE sprzedaz
  51. (
  52. rok IN varchar2,
  53. wartosc OUT NUMBER
  54. )
  55. AS
  56. BEGIN
  57. SELECT suma INTO wartosc FROM (SELECT to_char(ORDERDATE, 'YYYY') YEAR, SUM((od.UNITPRICE*od.QUANTITY-(od.unitprice*od.quantity*od.discount))) suma FROM orders o
  58. JOIN orderdetails od ON o.ORDERID = od.ORDERID
  59. GROUP BY to_char(ORDERDATE, 'YYYY')) WHERE YEAR LIKE rok;
  60. exception
  61. WHEN no_data_found THEN
  62. dbms_output.put_line ('W tym roku nie bylo sprzedazy');
  63. END;
  64. DECLARE
  65. YEAR NUMBER;
  66. BEGIN
  67. sprzedaz(1995, YEAR);
  68. dbms_output.put_line(YEAR);
  69. END;
  70.  
  71.  
  72.  
  73.  
  74. ---ad4
  75.  
  76. CREATE or REPLACE JAVA SOURCE NAMED "CAP"
  77. AS
  78. public class CAP{
  79. public static String CAP(String lancuch) {
  80. String lancuch1 = lancuch.substring(0, 1);
  81. lancuch = lancuch1.toUpperCase();
  82. lancuch1 = "...";
  83. lancuch = lancuch.concat(lancuch1);
  84. return lancuch;
  85. }
  86. }
  87. ----
  88.  
  89. create or replace function CAP (lancuch varchar2)
  90. RETURN varchar2 as LANGUAGE JAVA
  91. name 'CAP.CAP(String) return String';
  92.  
  93. ----
  94. SELECT CAP(loool) from dual;
  95.  
  96.  
  97.  
  98.  
  99. ---ad5
  100.  
  101. CREATE OR REPLACE PACKAGE ad5 IS
  102. numer emp.empno%TYPE DEFAULT 7788;
  103. nazwa emp.ename%TYPE;
  104. TYPE dane IS record(
  105. nazw emp.ename%TYPE,
  106. dep dept.dname%TYPE,
  107. pensja emp.sal%TYPE);
  108. FUNCTION pracownik RETURN dane;
  109. END ad5;
  110.  
  111. CREATE OR REPLACE PACKAGE body ad5 IS
  112. prac dane;
  113. FUNCTION employ RETURN dane AS
  114. BEGIN
  115. SELECT ename INTO prac.nazw FROM emp WHERE empno = numer;
  116. END;
  117. END;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement