1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
CREATE OR REPLACE PROCEDURE Proxi_Scan_Req_Lieu_Occ (LIEU_ADDR IN VARCHAR2,LIEU_ZIPCODE IN VARCHAR2,LIEU_CITY IN VARCHAR2,BAT_NAME IN VARCHAR2,BAT_ENTRY IN VARCHAR2,LIEU_ETAGE IN VARCHAR2,LIEU_NUM IN VARCHAR2,OCC_CELL_PH IN VARCHAR2,OCC_WORK_PH IN VARCHAR2,OCC_HOME_PH IN VARCHAR2,CLT_NAME IN VARCHAR2,OCC_LST_NAME IN VARCHAR2,OCC_FST_NAME IN VARCHAR2,GRP_NAME IN VARCHAR2, CR_LIEU_OCC OUT SYS_REFCURSOR) AS
--sSearchSpec VARCHAR2(10000);
sqlstring VARCHAR2(30000);
sqlstring2 VARCHAR2(30000);
BEGIN
IF (LIEU_ADDR IS NOT NULL) THEN
sqlstring := sqlstring || 'AND Lieu.ADDR = ' || '''' || LIEU_ADDR || ''' ';
END IF;
IF (LIEU_ZIPCODE IS NOT NULL) THEN
sqlstring := sqlstring || ' AND Lieu.ZIPCODE = ' || '''' || LIEU_ZIPCODE || ''' ';
END IF;
IF (LIEU_CITY IS NOT NULL) THEN
sqlstring := sqlstring || 'AND Lieu.CITY = ' || '''' || LIEU_CITY || ''' ';
END IF;
IF (OCC_LST_NAME IS NOT NULL) THEN
sqlstring := sqlstring || 'AND Occupant.LAST_NAME = ' || '''' || OCC_LST_NAME || ''' ';
END IF;
IF (OCC_FST_NAME IS NOT NULL) THEN
sqlstring := sqlstring || 'AND Occupant.FST_NAME = ' || '''' || OCC_FST_NAME || ''' ';
END IF;
IF (BAT_NAME IS NOT NULL) THEN
sqlstring := sqlstring || 'AND Batiment.NAME = ' || '''' || BAT_NAME || ''' ';
END IF;
IF (BAT_ENTRY IS NOT NULL) THEN
sqlstring := sqlstring || 'AND Entree.DESCRIPTOR = ' || '''' || BAT_ENTRY || ''' ';
END IF;
IF (LIEU_ETAGE IS NOT NULL) THEN
sqlstring := sqlstring || 'AND Lieu_Ext.X_ETAGE = ' || '''' || LIEU_ETAGE || ''' ';
END IF;
IF (LIEU_NUM IS NOT NULL) THEN
sqlstring := sqlstring || 'AND Lieu_Ext.X_NUM = ' || '''' || LIEU_NUM || ''' ';
END IF;
IF (OCC_CELL_PH IS NOT NULL) THEN
sqlstring := sqlstring || 'AND Occupant.CELL_PH_NUM = ' || '''' || OCC_CELL_PH || ''' ';
END IF;
IF (OCC_WORK_PH IS NOT NULL) THEN
sqlstring := sqlstring || 'AND Occupant.WORK_PH_NUM = ' || '''' || OCC_WORK_PH || ''' ';
END IF;
IF (OCC_HOME_PH IS NOT NULL) THEN
sqlstring := sqlstring || 'AND Occupant.HOME_PH_NUM = ' || '''' || OCC_HOME_PH || ''' ';
END IF;
IF (CLT_NAME IS NOT NULL) THEN
sqlstring := sqlstring || 'AND Client.NAME = ' || '''' || CLT_NAME || ''' ';
END IF;
IF (GRP_NAME IS NOT NULL) THEN
sqlstring := sqlstring || 'AND Groupe.NAME = ' || '''' || GRP_NAME || ''' ';
END IF;
OPEN CR_LIEU_OCC FOR
/* ******************** RECHERCHE DU LIEU/CONTACT ********************* */
SELECT
Lieu.ROW_ID "Lieu : Id",
FROM
S_ORG_EXT Groupe,
S_ADDR_PER Lieu,
S_ADDR_PER_CUTX Lieu_Ext,
S_CONTACT Occupant,
S_LST_OF_VAL Lov_Groupe,
...
S_DOC_AGREE Contrat,
S_ORG_EXT CLIENT
WHERE Lov_Groupe.TYPE = 'PROXI_CATEGORIE_GROUPE' -- LOV TYPE
...
AND Contrat.TARGET_OU_ID = CLIENT.ROW_ID -- Lien Contrat / Client
AND sqlstring2 = '''' || sqlstring || ''' ';
END Proxi_Scan_Req_Lieu_Occ;
/ |
Partager