Funcions Definides Pel Usuari (Udf)
-
Upload
marc-giribet -
Category
Documents
-
view
710 -
download
1
description
Transcript of Funcions Definides Pel Usuari (Udf)
![Page 1: Funcions Definides Pel Usuari (Udf)](https://reader033.fdocuments.es/reader033/viewer/2022061120/546d30bcaf7959ea368b7c60/html5/thumbnails/1.jpg)
Funcions definides pel Funcions definides pel usuari (UDF)usuari (UDF)
Departament: InformàticaCicle: Desenvolupament d’Aplicacions InformàtiquesCrèdit: C8, Àmbit de quarta generacióCurs: SegonPer: Marc Giribet Arnó
![Page 2: Funcions Definides Pel Usuari (Udf)](https://reader033.fdocuments.es/reader033/viewer/2022061120/546d30bcaf7959ea368b7c60/html5/thumbnails/2.jpg)
Que son les funcions?Que son les funcions?
Una funció definida pel usuari pren cero o més paràmetres de entrada i retorna un valor escalar o una taula.
Els paràmetres d’entrada poder ser qualsevol tipus de dades, tret de timestamp, cursors o taules.
Les funcions definides pel usuari no admeten paràmetres de sortida.
![Page 3: Funcions Definides Pel Usuari (Udf)](https://reader033.fdocuments.es/reader033/viewer/2022061120/546d30bcaf7959ea368b7c60/html5/thumbnails/3.jpg)
Tipus de funcionsTipus de funcionsFuncions escalars
◦Retornen un únic valor escalarFuncions tabulars
◦Retornen un conjunt de resultats complet
◦Similar a una taulaFuncions en línea
◦Son un cas especial de les Tabulars◦Consten de una única instrucció
SELECT
![Page 4: Funcions Definides Pel Usuari (Udf)](https://reader033.fdocuments.es/reader033/viewer/2022061120/546d30bcaf7959ea368b7c60/html5/thumbnails/4.jpg)
Funcions EscalarsFuncions EscalarsEs creen amb la instrucció CREATE
FUNCTION.
CREATE FUNCTION nomFunció (paràmetres)RETURNS tipusDeDadesDeRetorn ASBEGINcosFuncióRETURN expresióEscalar END
![Page 5: Funcions Definides Pel Usuari (Udf)](https://reader033.fdocuments.es/reader033/viewer/2022061120/546d30bcaf7959ea368b7c60/html5/thumbnails/5.jpg)
Funcions EscalarsFuncions EscalarsExemple: CREATE FUNCTION ultimoDia ( @Date varchar(20) ) RETURNS datetime AS BEGIN --Comprobació si es una data IF ISDATE(@Date) = 1 BEGIN --es determina el primer dia del mes SET @Date = DATEADD(day,-DAY(@Date)+1,@Date) --es determina l'ultim dia del mes SET @Date = DATEADD(day,-1,DATEADD(month,1,@Date)) END ELSE SET @Date = '1/1/1980' RETURN @Date END
![Page 6: Funcions Definides Pel Usuari (Udf)](https://reader033.fdocuments.es/reader033/viewer/2022061120/546d30bcaf7959ea368b7c60/html5/thumbnails/6.jpg)
Funcions EscalarsFuncions EscalarsCridem la funció:select *,dbo.ultimoDia(ord_date)as Ultimo_Dia_Mes from
sales
Resultat
![Page 7: Funcions Definides Pel Usuari (Udf)](https://reader033.fdocuments.es/reader033/viewer/2022061120/546d30bcaf7959ea368b7c60/html5/thumbnails/7.jpg)
Funcions TabularsFuncions TabularsBEGIN y END delimiten el cos de
la funció.La clàusula RETURNS especifica
table como el tipus de dades retornat.
La clàusula RETURNS defineix un nom per a la taula i el seu format.
![Page 8: Funcions Definides Pel Usuari (Udf)](https://reader033.fdocuments.es/reader033/viewer/2022061120/546d30bcaf7959ea368b7c60/html5/thumbnails/8.jpg)
Funcions TabularsFuncions TabularsExemple:CREATE FUNCTION empleados(@tipo nvarchar(9))RETURNS @empleados TABLE(ID_Empleado varchar(10) PRIMARY KEY NOT NULL,[Nombre_Empleado] Nvarchar(61) NOT NULL)ASBEGINIF @tipo = 'Corto'INSERT @empleados SELECT emp_id, fnameFROM EmployeeELSE IF @tipo = 'Largo'INSERT @empleados SELECT emp_id,(fname + ' ' + lname) FROM EmployeeELSE INSERT @empleados SELECT 'ERROR','ERROR'RETURNEND
![Page 9: Funcions Definides Pel Usuari (Udf)](https://reader033.fdocuments.es/reader033/viewer/2022061120/546d30bcaf7959ea368b7c60/html5/thumbnails/9.jpg)
Funcions TabularsFuncions TabularsUtilitzem la funció:SELECT * FROM dbo.empleados('Corto')
SELECT * FROM dbo.empleados('Largo')
Resultat:Long Name Shor Name
![Page 10: Funcions Definides Pel Usuari (Udf)](https://reader033.fdocuments.es/reader033/viewer/2022061120/546d30bcaf7959ea368b7c60/html5/thumbnails/10.jpg)
Funcions en líneaFuncions en líneaEl contingut de la funció es una
instrucció SELECT.No s’utilitza BEGUIN ni ENDLa clàusula RETURNS especifica
table como el tipus de dades retornat.
El format es defineix pel conjunt de resultats.
![Page 11: Funcions Definides Pel Usuari (Udf)](https://reader033.fdocuments.es/reader033/viewer/2022061120/546d30bcaf7959ea368b7c60/html5/thumbnails/11.jpg)
EjempleCREATE FUNCTION fn_CustomerNamesInRegion
(@RegionParameter nvarchar(30) )
RETURNS table
AS
RETURN (
SELECT CustomerID, CompanyName
FROM Northwind.dbo.Customers
WHERE Region = @RegionParameter
)
![Page 12: Funcions Definides Pel Usuari (Udf)](https://reader033.fdocuments.es/reader033/viewer/2022061120/546d30bcaf7959ea368b7c60/html5/thumbnails/12.jpg)
Utilitzem la funció:SELECT * FROM dbo.fn_CustomerNamesInRegion('WA')
Resultat:
![Page 13: Funcions Definides Pel Usuari (Udf)](https://reader033.fdocuments.es/reader033/viewer/2022061120/546d30bcaf7959ea368b7c60/html5/thumbnails/13.jpg)
Modificació i eliminació de Modificació i eliminació de les funcions definides pel les funcions definides pel usuariusuari
Modificació de les funcions:◦ ALTER FUNCTION Nom funció <Nou contingut de la funció>
Eliminació de les funcions:◦ DROP FUNCTION nomFunció