Esempi sulle funzioni
This commit is contained in:
36
funzioni/FUNZIONE_1.sql
Normal file
36
funzioni/FUNZIONE_1.sql
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
-- Funzione GetPrzArt V.1
|
||||||
|
CREATE OR REPLACE FUNCTION Uf_GetPrzArt
|
||||||
|
(V_CodArt DETTLISTINI.CODART%TYPE,
|
||||||
|
V_IdList DETTLISTINI.IDLIST%TYPE)
|
||||||
|
RETURN NUMBER
|
||||||
|
AS
|
||||||
|
CURSOR C_PrzList(I_IdList IN DETTLISTINI.IDLIST%TYPE, I_CodArt IN DETTLISTINI.CODART%TYPE) IS
|
||||||
|
SELECT PREZZO
|
||||||
|
FROM DETTLISTINI
|
||||||
|
WHERE CODART = I_CodArt AND
|
||||||
|
IDLIST = I_IdList;
|
||||||
|
|
||||||
|
V_RetVal NUMBER;
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
OPEN C_PrzList(V_IdList,V_CodArt);
|
||||||
|
|
||||||
|
FETCH C_PrzList INTO V_RetVal;
|
||||||
|
|
||||||
|
IF C_PrzList%NOTFOUND THEN
|
||||||
|
CLOSE C_PrzList;
|
||||||
|
RETURN NULL;
|
||||||
|
ELSE
|
||||||
|
CLOSE C_PrzList;
|
||||||
|
RETURN v_RetVal;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS
|
||||||
|
THEN
|
||||||
|
IF C_PrzList%ISOPEN THEN
|
||||||
|
CLOSE C_PrzList;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
END Uf_GetPrzArt;
|
||||||
38
funzioni/FUNZIONE_2.sql
Normal file
38
funzioni/FUNZIONE_2.sql
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
-- Funzione Uf_GetFattArt V.1
|
||||||
|
CREATE OR REPLACE FUNCTION Uf_GetFattArt
|
||||||
|
(CodArt_I ARTICOLI.CODART%TYPE,
|
||||||
|
Tipo_Vend NUMBER) -- 1 = Totale; 2 = Normale; 3 = Promo
|
||||||
|
RETURN NUMBER
|
||||||
|
AS
|
||||||
|
v_RetVal NUMBER;
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
IF Tipo_Vend = 3 THEN
|
||||||
|
SELECT NVL(SUM(QTA * Prezzo),0) INTO v_RetVal
|
||||||
|
FROM DETTSCONTRINI
|
||||||
|
WHERE CODART = CodArt_I
|
||||||
|
AND INPROMO = 'Si';
|
||||||
|
ELSIF Tipo_Vend = 2 THEN
|
||||||
|
SELECT NVL(SUM(QTA * Prezzo),0) INTO v_RetVal
|
||||||
|
FROM DETTSCONTRINI
|
||||||
|
WHERE CODART = CodArt_I
|
||||||
|
AND INPROMO = 'No';
|
||||||
|
ELSE
|
||||||
|
SELECT NVL(SUM(QTA * Prezzo),0) INTO v_RetVal
|
||||||
|
FROM DETTSCONTRINI
|
||||||
|
WHERE CODART = CodArt_I;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
RETURN v_RetVal;
|
||||||
|
|
||||||
|
EXCEPTION
|
||||||
|
WHEN NO_DATA_FOUND
|
||||||
|
THEN
|
||||||
|
RETURN(0);
|
||||||
|
DBMS_OUTPUT.PUT_LINE ('Articolo non trovato o non venduto');
|
||||||
|
WHEN OTHERS
|
||||||
|
THEN
|
||||||
|
RETURN(-1);
|
||||||
|
DBMS_OUTPUT.PUT_LINE ('Errore Esecuzione Uf_GetPrzArt');
|
||||||
|
|
||||||
|
END Uf_GetFattArt;
|
||||||
Reference in New Issue
Block a user