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