języki rozszerzające SQL takie jak PL/sql, PL/pgSQL

języki rozszerzające SQL takie jak PL/sql, PL/pgSQL
PI
  • Rejestracja:prawie 13 lat
  • Ostatnio:6 miesięcy
  • Postów:227
0

Do czego są wykorzystywane języki rozszerzające SQL takie jak PL/sql, PL/pgSQL? Jakie problemy one rozwiązują(automatyzują?)?

V1
  • Rejestracja:ponad 10 lat
  • Ostatnio:ponad 8 lat
  • Postów:14
0

Służą one do programowania procedur składowanych. Dzięki nim możesz przenieść część obliczeń na serwer bazodanowy, np. jeżeli masz kilka aplikacji podpiętych od jednej bazy możesz nimi zaprogramować wspólne procedury.

edytowany 1x, ostatnio: Virus1902
Koziołek
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:16 dni
  • Lokalizacja:Stacktrace
  • Postów:6821
1

Pozwalają na tworzenie własnych procedur i funkcji. Przykładowo można napisać funkcję, która będzie formatować numer NIP przed wstawieniem go do bazy. Można za ich pomocą przenieść część logiki do bazy co czasami ma sens(np. gdy zaprogramowanie tego w normalnych językach jak Java czy php było by upierdliwe).


Sięgam tam, gdzie wzrok nie sięga… a tam NullPointerException
PI
  • Rejestracja:prawie 13 lat
  • Ostatnio:6 miesięcy
  • Postów:227
0

Czy takie programy działają tylko na dane wchodzące do bazy danych? Czy pisze się takie, które działają na już zebranych danych w bazie?

P0
  • Rejestracja:prawie 12 lat
  • Ostatnio:około 9 lat
  • Postów:57
0

Do jakieś kontrolki napisanej w danym języku możesz podpiąć wykonanie pewnej procedury która zmodyfikuje pewne dane znajdujące się już w bazie danych. Dodatkowo możesz wykorzystać triggery które umożliwią Ci wykonanie pewnej czynności w przypadku dodania/zmodyfikowania/usunięcia pewnych danych (np. usuwasz pewne dane z bazy a przy za pomocą triggera usuwasz powiązania z tą daną). Poprzez funkcje możesz wykonać skomplikowane obliczenia na bazie - np. przeliczanie pewnych statystyk.

Koziołek
Moderator
  • Rejestracja:prawie 18 lat
  • Ostatnio:16 dni
  • Lokalizacja:Stacktrace
  • Postów:6821
0

Na dane wchodzące, istniejące jak i zewnętrzne (dzieci nie róbcie tego w domu). Przykładowo:

Dane istniejące (aktualizacja wszystkich wartości np. nowe formatowanie):

Kopiuj
Update my_table set my_field = my_procedure(my_field);

Dane wchodzące (formatowanie danych wchodzących):

Kopiuj
insert into my_table (my_field) values(my_procedure(some_value));

Dane zewnętrzne (składania działa z tabelą DUAL):

Kopiuj
Select my_procedure() from DUAL

Gdzie my_procedure woła sobie np. REST-owy serwis za pomocą jakiejś dodatkowej biblioteki.


Sięgam tam, gdzie wzrok nie sięga… a tam NullPointerException

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.