Thursday, October 18, 2018

Używanie zmiennych i wyświetlanie komunikatów


Jeśli w kodzie chcemy użyć jakichś zmiennych, musimy do bloku dodać sekcję declare. Umieszczamy w nim deklaracje zmiennych, możemy również poza ich deklaracją zainicjalizować je. W poniższym przykładzie powołałem do życia zmienną x będącą liczbą całkowitą i zainicjalizowałem ją wartością 13.

do
$$
declare
x integer:=13;
begin
raise notice 'x=%',x;
end $$;

Stworzoną zmienną wyświetlam następnie w komunikacie. Zwróć uwagę na sposób przekazania wartości do komunikatu. Nie konkatenujemy zmiennej (jak byśmy to zrobili np. w języku PL/SQL dla Oracle), a w miejscu w którym ma się pojawić używamy znaku "%". Następnie po treści komunikatu podajemy wartości które mają zostać podstawione.


W ten sam sposób możemy przekazać również więcej zmiennych, a PostgreSQL przypisze je do kolejnych znaków % wg. kolejności podania:

do
$$
declare
x integer:=1;
y integer:=2;
begin
raise notice '% %',x,y;
end $$;


Jeśli podamy mniej wartości niż wymieniliśmy znaków %, zostaniemy ostrzeżeni odpowiednim komunikatem, a program nie uruchomi się.
Wartości do zmiennych przypisujemy z użyciem ":=". Możemy to zrobić zarówno w sekcji deklaracji, od razu na poziomie deklaracji zmiennej, lub później w bloku.

Do przypisywania wartości do zmiennych można również używać funkcji z SQL:

do
$$
declare
dzisiaj date:=current_date;
dzien text;
miesiac text;
rok text;
begin
dzien:=date_part('day',dzisiaj);
miesiac:=date_part('month',dzisiaj);
rok:=date_part('year',dzisiaj);
raise notice 'dzisiaj jest %. Dzien: %, miesiąc: %, rok: %',dzisiaj,dzien,miesiac,rok;
end $$;


Ćwiczenia

  1. Napisz program który poprzez zmienne przyjmie wzrost podany w metrach i masę podaną kilogramach. Program ma obliczyć BMI wg wzoru: bmi=masa/(wzrost*wzrost).
  2. Napisz program który obliczy ilość dni od Twojego urodzenia do teraz. Aby obliczyć ilość dni pomiędzy dwoma datami należy odjąć mniejszą od większej.

No comments:

Post a Comment

Bezpłatny kurs PL/pgSQL by Andrzej Klusiewicz

Cześć  :) Oddaję w Wasze ręce wersję 1.0.0.0.0.(0) swojego tutoriala dotyczącego języka PL/pgSQL - czyli proceduralnego języka przetwarza...