Esempi sui package
This commit is contained in:
11
package/PACKAGE_1.sql
Normal file
11
package/PACKAGE_1.sql
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
|
||||||
|
CREATE OR REPLACE PACKAGE GestClienti
|
||||||
|
AS
|
||||||
|
|
||||||
|
PROCEDURE Sp_SelStorSpese (CODFID_I IN CARDS.CODFIDELITY%TYPE,
|
||||||
|
RECORDSET_P OUT SYS_REFCURSOR);
|
||||||
|
|
||||||
|
FUNCTION Uf_GetMonteBollini(CODFID_I IN CARDS.CODFIDELITY%TYPE)
|
||||||
|
RETURN NUMBER;
|
||||||
|
|
||||||
|
END GestClienti;
|
||||||
44
package/PACKAGE_2.sql
Normal file
44
package/PACKAGE_2.sql
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
CREATE OR REPLACE PACKAGE BODY GestClienti
|
||||||
|
AS
|
||||||
|
|
||||||
|
--CORPO DELLA PROCEDURA Sp_SelStorSpese
|
||||||
|
PROCEDURE Sp_SelStorSpese(CODFID_I IN CARDS.CODFIDELITY%TYPE,
|
||||||
|
RECORDSET_P OUT SYS_REFCURSOR)
|
||||||
|
IS
|
||||||
|
BEGIN
|
||||||
|
OPEN RECORDSET_P FOR
|
||||||
|
|
||||||
|
SELECT
|
||||||
|
A.DATA,
|
||||||
|
A.IDDEPOSITO,
|
||||||
|
A.CASSA,
|
||||||
|
A.SCONTRINO,
|
||||||
|
A.BOLLINI,
|
||||||
|
B.CODFIDELITY,
|
||||||
|
B.NOME || ' ' || B.COGNOME AS Nominativo
|
||||||
|
FROM SCONTRINI A JOIN CLIENTI B
|
||||||
|
ON a.CODFID = B.CODFIDELITY
|
||||||
|
WHERE B.CODFIDELITY = CODFID_I
|
||||||
|
ORDER BY A.DATA DESC;
|
||||||
|
|
||||||
|
END Sp_SelStorSpese;
|
||||||
|
|
||||||
|
--CORPO DELLA FUNZIONE Uf_GetMonteBollini
|
||||||
|
FUNCTION Uf_GetMonteBollini(CODFID_I IN CARDS.CODFIDELITY%TYPE)
|
||||||
|
RETURN NUMBER
|
||||||
|
IS
|
||||||
|
V_RetVal number;
|
||||||
|
BEGIN
|
||||||
|
SELECT BOLLINI INTO V_RetVal
|
||||||
|
FROM CARDS WHERE CODFIDELITY = CODFID_I;
|
||||||
|
|
||||||
|
RETURN V_RetVal;
|
||||||
|
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS
|
||||||
|
THEN
|
||||||
|
RETURN 0;
|
||||||
|
END Uf_GetMonteBollini;
|
||||||
|
|
||||||
|
|
||||||
|
END GestClienti;
|
||||||
45
package/PACKAGE_3.sql
Normal file
45
package/PACKAGE_3.sql
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
--Esempio Creazione Package Articolato
|
||||||
|
|
||||||
|
CREATE OR REPLACE PACKAGE GestArt
|
||||||
|
AS
|
||||||
|
|
||||||
|
TYPE articoli_type IS RECORD
|
||||||
|
(CodArt ARTICOLI.CODART%TYPE,
|
||||||
|
Descrizione ARTICOLI.DESCRIZIONE%TYPE,
|
||||||
|
Um ARTICOLI.UM%TYPE,
|
||||||
|
PzCart ARTICOLI.PZCART%TYPE,
|
||||||
|
CodStat ARTICOLI.CODSTAT%TYPE,
|
||||||
|
PesoNetto ARTICOLI.PESONETTO%TYPE,
|
||||||
|
Iva ARTICOLI.IDIVA%TYPE,
|
||||||
|
Stato ARTICOLI.IDSTATOART%TYPE,
|
||||||
|
IdFamAss ARTICOLI.IDFAMASS%TYPE,
|
||||||
|
Reparto FAMASSORT.DESCRIZIONE%TYPE,
|
||||||
|
QtaMag NUMBER
|
||||||
|
);
|
||||||
|
|
||||||
|
TYPE Info_Articolo IS REF CURSOR RETURN articoli_type;
|
||||||
|
|
||||||
|
PROCEDURE Sp_SelArticolo(CODART_I IN ARTICOLI.CODART%TYPE,
|
||||||
|
ARTICOLO_O OUT Info_Articolo);
|
||||||
|
|
||||||
|
PROCEDURE Sp_SelArticolo(Parametro IN ARTICOLI.DESCRIZIONE%TYPE, Tipo IN NUMBER,
|
||||||
|
RECORDSET_P OUT SYS_REFCURSOR);
|
||||||
|
|
||||||
|
PROCEDURE Sp_DelArticolo(CODART_I IN ARTICOLI.CODART%TYPE);
|
||||||
|
|
||||||
|
PROCEDURE Sp_InsArticolo(CODART_I IN ARTICOLI.CODART%TYPE,
|
||||||
|
DESCRIZIONE_I IN ARTICOLI.DESCRIZIONE%TYPE, UM_I IN ARTICOLI.UM%TYPE,
|
||||||
|
CODSTAT_I IN ARTICOLI.CODSTAT%TYPE, PZCART_I IN ARTICOLI.PZCART%TYPE,
|
||||||
|
PESONETTO_I IN ARTICOLI.PESONETTO%TYPE, IDIVA_I IN ARTICOLI.IDIVA%TYPE,
|
||||||
|
IDSTATO_I IN ARTICOLI.IDSTATOART%TYPE, IDFAMASS_I IN ARTICOLI.IDFAMASS%TYPE);
|
||||||
|
|
||||||
|
FUNCTION Uf_GetQtaMag(CODART_I IN ARTICOLI.CODART%TYPE)
|
||||||
|
RETURN NUMBER;
|
||||||
|
|
||||||
|
FUNCTION IsArtPresent(CODART_I IN ARTICOLI.CODART%TYPE)
|
||||||
|
RETURN BOOLEAN;
|
||||||
|
|
||||||
|
FUNCTION Uf_GetVenMese(CODART_I IN ARTICOLI.CODART%TYPE, MeseRif_I NUMBER, AnnoRif_I NUMBER)
|
||||||
|
RETURN NUMBER;
|
||||||
|
|
||||||
|
END GestArt;
|
||||||
171
package/PACKAGE_4.sql
Normal file
171
package/PACKAGE_4.sql
Normal file
@@ -0,0 +1,171 @@
|
|||||||
|
--PACKAGE GestArt
|
||||||
|
CREATE OR REPLACE PACKAGE BODY GestArt
|
||||||
|
AS
|
||||||
|
tSQL varchar2(300);
|
||||||
|
|
||||||
|
--CORPO DELLA PROCEDURA IsArtPresent
|
||||||
|
PROCEDURE Sp_InsArticolo(CODART_I IN ARTICOLI.CODART%TYPE,
|
||||||
|
DESCRIZIONE_I IN ARTICOLI.DESCRIZIONE%TYPE, UM_I IN ARTICOLI.UM%TYPE,
|
||||||
|
CODSTAT_I IN ARTICOLI.CODSTAT%TYPE, PZCART_I IN ARTICOLI.PZCART%TYPE,
|
||||||
|
PESONETTO_I IN ARTICOLI.PESONETTO%TYPE, IDIVA_I IN ARTICOLI.IDIVA%TYPE,
|
||||||
|
IDSTATO_I IN ARTICOLI.IDSTATOART%TYPE, IDFAMASS_I IN ARTICOLI.IDFAMASS%TYPE)
|
||||||
|
IS
|
||||||
|
V_IfExists BOOLEAN;
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
V_IfExists := IsArtPresent(CODART_I);
|
||||||
|
|
||||||
|
IF V_IfExists = TRUE THEN
|
||||||
|
UPDATE ARTICOLI
|
||||||
|
SET
|
||||||
|
DESCRIZIONE = DESCRIZIONE_I,
|
||||||
|
UM = UM_I,
|
||||||
|
CODSTAT = CODSTAT_I,
|
||||||
|
PZCART = PZCART_I,
|
||||||
|
PESONETTO = PESONETTO_I,
|
||||||
|
IDIVA = IDIVA_I,
|
||||||
|
IDSTATOART = IDSTATO_I,
|
||||||
|
IDFAMASS = IDFAMASS_I
|
||||||
|
WHERE CODART = CODART_I;
|
||||||
|
ELSE
|
||||||
|
INSERT INTO ARTICOLI
|
||||||
|
VALUES(CODART_I,DESCRIZIONE_I,UM_I,CODSTAT_I,PZCART_I,
|
||||||
|
PESONETTO_I,IDIVA_I,IDSTATO_I,SYSDATE,IDFAMASS_I);
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
END Sp_InsArticolo;
|
||||||
|
|
||||||
|
--CORPO DELLA FUNZIONE Uf_GetQtaMag
|
||||||
|
FUNCTION Uf_GetQtaMag(CODART_I IN ARTICOLI.CODART%TYPE)
|
||||||
|
RETURN NUMBER
|
||||||
|
AS
|
||||||
|
V_RetVal NUMBER;
|
||||||
|
BEGIN
|
||||||
|
SELECT (ACQUISTATO - RESO - VENDUTO - USCITE - SCADUTI) INTO V_RetVal
|
||||||
|
FROM MOVIMENTI
|
||||||
|
WHERE
|
||||||
|
CODART = CODART_I;
|
||||||
|
|
||||||
|
RETURN V_RetVal;
|
||||||
|
|
||||||
|
EXCEPTION
|
||||||
|
WHEN NO_DATA_FOUND THEN
|
||||||
|
RETURN 0;
|
||||||
|
WHEN TOO_MANY_ROWS THEN
|
||||||
|
RAISE_APPLICATION_ERROR (-20001, 'Errore Calcolo Magazzino Articolo ' || CODART_I);
|
||||||
|
RETURN 0;
|
||||||
|
|
||||||
|
END Uf_GetQtaMag;
|
||||||
|
|
||||||
|
--CORPO DELLA FUNZIONE Uf_GetVenMese
|
||||||
|
FUNCTION Uf_GetVenMese(CODART_I IN ARTICOLI.CODART%TYPE, MeseRif_I NUMBER, AnnoRif_I NUMBER)
|
||||||
|
RETURN NUMBER
|
||||||
|
AS
|
||||||
|
V_RetVal NUMBER;
|
||||||
|
BEGIN
|
||||||
|
SELECT SUM(VALORE) INTO V_RetVal
|
||||||
|
FROM VW_SCONTRINI
|
||||||
|
WHERE
|
||||||
|
CODART = CODART_I AND
|
||||||
|
EXTRACT(MONTH FROM DATA) = MeseRif_I AND
|
||||||
|
EXTRACT(YEAR FROM DATA) = AnnoRif_I;
|
||||||
|
|
||||||
|
RETURN V_RetVal;
|
||||||
|
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS THEN
|
||||||
|
RETURN 0;
|
||||||
|
|
||||||
|
END Uf_GetVenMese;
|
||||||
|
|
||||||
|
--CORPO DELLA FUNZIONE IsArtPresent
|
||||||
|
FUNCTION IsArtPresent(CODART_I IN ARTICOLI.CODART%TYPE)
|
||||||
|
RETURN BOOLEAN
|
||||||
|
IS
|
||||||
|
V_Count_Art number;
|
||||||
|
BEGIN
|
||||||
|
SELECT COUNT(*) INTO V_Count_Art
|
||||||
|
FROM ARTICOLI WHERE CODART = CODART_I;
|
||||||
|
|
||||||
|
IF (V_Count_Art > 0) THEN
|
||||||
|
RETURN TRUE;
|
||||||
|
ELSE
|
||||||
|
RETURN FALSE;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
EXCEPTION
|
||||||
|
WHEN OTHERS
|
||||||
|
THEN
|
||||||
|
RETURN FALSE;
|
||||||
|
END IsArtPresent;
|
||||||
|
|
||||||
|
--CORPO DELLA PROCEDURA Sp_SelArticolo
|
||||||
|
PROCEDURE Sp_SelArticolo(CODART_I IN ARTICOLI.CODART%TYPE,
|
||||||
|
ARTICOLO_O OUT Info_Articolo)
|
||||||
|
IS
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
OPEN ARTICOLO_O FOR
|
||||||
|
SELECT
|
||||||
|
A.CODART,
|
||||||
|
A.DESCRIZIONE,
|
||||||
|
A.UM,
|
||||||
|
A.PZCART,
|
||||||
|
A.CODSTAT,
|
||||||
|
A.PESONETTO,
|
||||||
|
A.IDIVA AS IVA,
|
||||||
|
A.IDSTATOART AS STATO,
|
||||||
|
A.IDFAMASS,
|
||||||
|
TRIM(B.DESCRIZIONE) AS REPARTO,
|
||||||
|
Uf_GetQtaMag(A.CODART) AS QtaMag
|
||||||
|
FROM ARTICOLI A JOIN FAMASSORT B
|
||||||
|
ON A.IDFAMASS = B.ID
|
||||||
|
WHERE CODART = CODART_I;
|
||||||
|
|
||||||
|
END Sp_SelArticolo;
|
||||||
|
|
||||||
|
--CORPO DELLA PROCEDURA Sp_SelArticolo
|
||||||
|
PROCEDURE Sp_SelArticolo(Parametro IN ARTICOLI.DESCRIZIONE%TYPE, Tipo IN NUMBER,
|
||||||
|
RECORDSET_P OUT SYS_REFCURSOR)
|
||||||
|
IS
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
tSQL := 'SELECT
|
||||||
|
CODART,
|
||||||
|
DESCRIZIONE,
|
||||||
|
UM,
|
||||||
|
PZCART,
|
||||||
|
CODSTAT,
|
||||||
|
PESONETTO,
|
||||||
|
IDIVA AS IVA,
|
||||||
|
IDSTATOART AS STATO,
|
||||||
|
IDFAMASS
|
||||||
|
FROM ARTICOLI ';
|
||||||
|
|
||||||
|
IF Tipo = 1 THEN --CASO CODART
|
||||||
|
OPEN RECORDSET_P FOR
|
||||||
|
tSQL || ' WHERE CODART = :1'
|
||||||
|
USING PARAMETRO;
|
||||||
|
ELSIF TIPO = 2 THEN --CASO DESCRIZIONE
|
||||||
|
OPEN RECORDSET_P FOR
|
||||||
|
tSQL || ' WHERE DESCRIZIONE LIKE :1'
|
||||||
|
USING PARAMETRO;
|
||||||
|
ELSIF TIPO = 3 THEN --CASE BARCODE
|
||||||
|
OPEN RECORDSET_P FOR
|
||||||
|
tSQL || ' CODART IN (SELECT CODART FROM BARCODE WHERE BARCODE = :1)'
|
||||||
|
USING PARAMETRO;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
END Sp_SelArticolo;
|
||||||
|
|
||||||
|
--CORPO DELLA PROCEDURA Sp_DelArticolo
|
||||||
|
PROCEDURE Sp_DelArticolo(CODART_I IN ARTICOLI.CODART%TYPE)
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
IF IsArtPresent(CODART_I) THEN
|
||||||
|
DELETE FROM ARTICOLI WHERE CODART = CODART_I;
|
||||||
|
END IF;
|
||||||
|
END;
|
||||||
|
|
||||||
|
END GestArt;
|
||||||
Reference in New Issue
Block a user