Advertisement
MagnusArias

DB2 | Funkcje / xQuery

May 7th, 2018
317
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 1.37 KB | None | 0 0
  1. CREATE OR REPLACE FUNCTION FUNCTION1 (a DECIMAL(12,2), h DECIMAL (12,2) )
  2.     RETURNS DECIMAL(12,2)
  3.     NO EXTERNAL ACTION
  4. F1: BEGIN ATOMIC
  5.     -- ######################################################################
  6.     -- # Returns count of all tables created by DB2ADMIN and VARNAME
  7.     -- ######################################################################
  8.     RETURN a*h/2;
  9. END
  10.  
  11. SELECT FUNCTION1(1.2356,1) FROM SYSibm.SYSDUMMY1;
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19. CREATE OR REPLACE FUNCTION FUNCTION2 (urodziny VARCHAR(128), koszt_poczatkowy DECIMAL (8,2))
  20.     RETURNS DECIMAL(8,2)
  21.     NO EXTERNAL ACTION
  22. F2: BEGIN ATOMIC
  23.     -- koszt = poczatkowy (1 + (nominalna_stopa / liczba_kapitalizacji) ) ^ (liczba_kapitalizacji * czas_trwania)
  24.     -- koszt = 7.00*( 1 + ( 0.05 / 365.25 ) ) ^ (365.25 * (2017-1995)
  25.    
  26.     DECLARE daysto INTEGER;
  27.     DECLARE ctr INTEGER;
  28.     DECLARE ret DECIMAL(16,5);
  29.     DECLARE per DECIMAL(16,10);
  30.     DECLARE odsetR DECIMAL(8,2);
  31.    
  32.     SET odsetR=5.0;
  33.     SET per = (odsetR/365)/100;
  34.     SET daysto = (days(CURRENT DATE) - days(DATE(urodziny)));
  35.     SET ctr = 0;
  36.     SET ret = 0;
  37.    
  38.     WHILE ctr < daysto DO
  39.         SET ctr = ctr+1;
  40.         SET ret = (ret + koszt_poczatkowy) + (ret + koszt_poczatkowy)*per;
  41.     END WHILE;
  42.    
  43.  
  44.     RETURN ret;
  45. END
  46.  
  47.  
  48.  
  49.  
  50. XQUERY
  51. db2-fn:xmlcolumn('CUSTOMER.INFO')/customerinfo[addr/city='Toronto']/name;
  52.  
  53. XQUERY
  54. db2-fn:xmlcolumn('CUSTOMER.INFO')/customerinfo/addr[city='Toronto']/../name/text();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement