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
- 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).
- 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