Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

Funkcja z klauzulą RETURNS

Termin Definicja
Funkcja z klauzulą RETURNS

Funkcja z klauzulą RETURNS definiuje typ danych zwracanych przez funkcję zdefiniowaną przez użytkownika.

Co określa klauzula RETURNS

Klauzula RETURNS jest elementem definicji funkcji zapisanej w języku SQL lub w języku proceduralnym używanym przez konkretny system bazodanowy. Określa, jaki rodzaj wyniku funkcja przekazuje po zakończeniu wykonywania. Dzięki temu silnik bazy danych może sprawdzić zgodność instrukcji zwracającej wartość z deklaracją funkcji oraz udostępnić wynik innym instrukcjom SQL, zapytaniom lub aplikacji korzystającej z bazy.

W najprostszym wariancie po słowie RETURNS podaje się typ danych, na przykład typ całkowity, tekstowy, logiczny albo datę. Jeżeli funkcja ma obliczyć sumę dwóch wartości, jej deklaracja może wskazywać typ całkowity jako typ wyniku. Samo RETURNS nie wykonuje obliczenia i nie definiuje parametrów wejściowych. Parametry są określane osobno, natomiast ciało funkcji zawiera instrukcje prowadzące do uzyskania wartości zwracanej.

Typ skalarny, rekord i wynik tabelaryczny

Funkcja może zwracać pojedynczą wartość skalarną. Taki wynik ma jeden określony typ, więc wywołanie funkcji może wystąpić w wyrażeniu, warunku, sortowaniu lub na liście kolumn zapytania. Przykładowo funkcja zwracająca liczbę może być użyta do obliczeń, a funkcja zwracająca tekst może służyć do formatowania informacji wyświetlanej przez aplikację. W każdym przypadku wartość oddawana przez ciało funkcji musi odpowiadać zadeklarowanemu typowi albo dać się poprawnie przekonwertować zgodnie z regułami danego silnika.

Niektóre systemy pozwalają zadeklarować zwracanie struktury złożonej, rekordu lub zestawu kolumn. Wtedy definicja opisuje nie tylko ogólną kategorię wyniku, lecz także jego strukturę: nazwy pól, ich kolejność i typy. Wynik tabelaryczny może zawierać wiele wierszy, dlatego sposób jego użycia różni się od funkcji zwracającej jedną wartość. Warianty takie jak zwracanie zbioru, tabeli lub typu rekordowego nie są identyczne we wszystkich bazach danych, więc poprawna składnia i zachowanie zależą od dokumentacji używanego silnika.

RETURNS a wykonanie funkcji

W deklaracji funkcji trzeba odróżnić typ wyniku od instrukcji zwracającej wynik. Klauzula RETURNS mówi, co funkcja ma oddać, natomiast instrukcja zwrotu, występująca w odpowiednim języku funkcji, przekazuje konkretną wartość. Jeżeli funkcja deklaruje wynik liczbowy, a jej ciało zwraca tekst albo nie zwraca wartości w wymaganej ścieżce wykonania, definicja może zostać odrzucona podczas tworzenia lub funkcja zakończy się błędem przy wywołaniu. Zależnie od silnika kontrola następuje w różnym momencie.

Istotna jest także możliwość zwrócenia wartości pustej, czyli NULL. NULL nie jest zwykłym tekstem ani liczbą zero, lecz oznacza brak wartości lub nieznaną wartość. Funkcja może mieć typ zwracany, a mimo to w określonych warunkach oddawać NULL, o ile reguły danego systemu i logika funkcji na to pozwalają. Kod wywołujący powinien uwzględniać taki przypadek, ponieważ porównania i działania arytmetyczne z NULL podlegają regułom logiki trójwartościowej.

Zmiana deklaracji RETURNS może wpływać na sposób wywoływania funkcji, typy wynikowe zapytań i zgodność aplikacji z bazą. Nie jest to wyłącznie opis dla dokumentacji. Typ wyniku staje się częścią interfejsu funkcji, dlatego jego modyfikacja wymaga sprawdzenia zależnych widoków, zapytań, procedur i kodu aplikacyjnego. Przy zwracaniu wielu kolumn trzeba dodatkowo zweryfikować, czy odbiorca korzysta z właściwych nazw, kolejności oraz typów pól.

Znaczenie deklaracji wyniku przy pracy z kodem SQL

Poprawnie określona klauzula RETURNS ułatwia analizę funkcji, ponieważ od razu wskazuje kontrakt jej działania. Programista może ustalić, czy wywołanie powinno dostarczyć jedną wartość, rekord czy zbiór wierszy, a następnie dobrać odpowiedni sposób użycia w zapytaniu. Deklaracja ogranicza również ryzyko niejawnego zwracania danych o przypadkowym typie, szczególnie gdy funkcja wykonuje konwersje, obsługuje wartości NULL albo korzysta z kilku ścieżek warunkowych.

Podczas diagnozowania problemu z aplikacją korzystającą z bazy warto sprawdzić pełną definicję funkcji: parametry, klauzulę RETURNS, instrukcje zwrotu oraz zapytanie wywołujące. Błąd może wynikać z niezgodności typu, oczekiwania jednego wiersza zamiast wielu, niewłaściwego mapowania kolumn albo różnicy składni między silnikami baz danych. Sama nazwa RETURNS nie wystarcza do przeniesienia funkcji między systemami, ponieważ szczegóły deklarowania typów złożonych, tabelarycznych i zbiorów są zależne od implementacji.

W praktyce podczas naprawy laptopa lub komputera PC problem ujawniający się jako błąd funkcji bazodanowej może być skutkiem uszkodzonego środowiska programistycznego, niezgodnych bibliotek klienta, błędnej konfiguracji połączenia albo niepoprawnie wdrożonego skryptu SQL. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i ich podzespołów, a przy problemach z oprogramowaniem można rozpocząć diagnostykę od odtworzenia komunikatu błędu, ustalenia używanego silnika bazy oraz porównania deklarowanego typu wyniku z wartością faktycznie zwracaną przez funkcję.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę