---------------------------------------------------------------------------------------------------------
----Procedure extraction_parc_nrahd.sql
----Réalise l'extraction des éléments de parc correspondants aux critères passés en paramètres
----param1 : nom du fichier csv pour le stockage des résultats
----param2 : id_user_req
---------------------------------------------------------------------------------------------------------
DECLARE
---------------------------------------------------------------------------------------------------------
----Variables Globales
---------------------------------------------------------------------------------------------------------
TYPE REC_EXTRACT IS RECORD (
support varchar2(64),
code_op varchar2(10),
libelle_op varchar2(30),
code_offre varchar2(20),
nom_offre varchar2(50),
idExterne varchar2(20),
----Composante Portabilité
code_op_interconnexion varchar2(10),
libelle_op_interconnexion varchar2(30),
idExterne_Porta varchar2(20),
zobpq_Porta varchar2(5),
----Composante GTR
idParc_GTR varchar2(9),
idExterne_GTR varchar2(20),
code_offre_GTR varchar2(20),
nom_offre_GTR varchar2(80),
support_GTR varchar2(64),
date_debut_GTR varchar2(32),
date_fin_GTR varchar2(32),
--cplt
nra_deg varchar2(32),
insee_deg varchar2(32),
nra_adsl varchar2(32),
insee_adsl varchar2(12)
);
TYPE T_REC_EXTRACT IS TABLE of REC_EXTRACT INDEX BY PLS_INTEGER;
TAB_RE T_REC_EXTRACT;
TYPE ParcElemType IS REF CURSOR;
parcElem ParcElemType;
clauseSelect varchar2(4000);
clauseWhere varchar2(4000);
clauseFrom varchar2(4000);
clauseOrder varchar2(4000);
TNAME varchar2(255);
nomFichier varchar2(100);
nbRows NATURAL := 1000;
i BINARY_INTEGER := 0;
-- Identifiant de fichier d'extraction
tracefile UTL_FILE.FILE_TYPE;
VIDE INTEGER;
NRA varchar2(3);
INSEE varchar2(5);
---------------------------------------------------------------------------------------------------------
-- Fonctions et Procedures
---------------------------------------------------------------------------------------------------------
------------- verifyClose
-- Ferme le curseur et le fichier de trace si ils sont ouverts
procedure verifyClose IS
begin
if (parcElem%ISOPEN) then CLOSE parcElem; end if;
VI_FILE.FFLUSH(tracefile);
VI_FILE.FCLOSE(tracefile);
end verifyClose;
BEGIN
DBMS_OUTPUT.ENABLE(800000);
nomFichier := reqAsynchrone.getNomFichier('&2');
-- Creation alias vers le répertoire du fichier à mapper.
BEGIN
--EXECUTE IMMEDIATE 'CREATE OR REPLACE DIRECTORY DEPOT_DIR_NRAHD AS ''@ASYNCHRONE_REP_DEPOT_FICHIER@'' ';
EXECUTE IMMEDIATE 'CREATE OR REPLACE DIRECTORY DEPOT_DIR_NRAHD AS ''/data/flf/vigvig/files/ext_nra/entree/'' ';
EXCEPTION WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('INFO - Creation alias DEPOT_DIR_NRAHD impossible : ');
DBMS_OUTPUT.PUT_LINE(dbms_utility.format_error_stack);
END;
-- Définition du nom de la table temporaire à partir du digest du nom du fichier en entrée
TNAME := 'EXT_' || LTRIM(TO_CHAR(DBMS_UTILITY.GET_HASH_VALUE(UPPER(REPLACE(substr(nomFichier,instr(nomFichier,'/',-1)),'.','')),1000000000,POWER(2,30)),RPAD('X',29,'X')||'X'));
-- Suppression préventive de la table virtuelle
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE ' || TNAME || ' ';
EXCEPTION WHEN OTHERS THEN
NULL;
END;
-- Creation de la table virtuelle spécifique au nom du fichier.
EXECUTE IMMEDIATE 'CREATE TABLE ' || TNAME ||
'(SUPPORT VARCHAR2(64)) ORGANIZATION EXTERNAL (TYPE ORACLE_LOADER DEFAULT DIRECTORY DEPOT_DIR_NRAHD ACCESS PARAMETERS '||
'( records delimited by newline nobadfile nodiscardfile nologfile fields missing field values are null (support char(10)) ) LOCATION ( '''||nomFichier||''' )) PARALLEL CACHE REJECT LIMIT UNLIMITED';
clauseSelect := 'SELECT NRAHD.SUPPORT,P.CODE_OPERATEUR,P.LIBELLE_OPERATEUR,P.CODE_OFFRE_PARC,P.NOM_OFFRE,P.ID_EXTERNE,'||
'P_PORT.CODE_OPERATEUR,P_PORT.LIBELLE_OPERATEUR,P_PORT.ID_EXTERNE,P_PORT.Z0BPQ,'||
'P_GTR.ID_PARC,P_GTR.ID_EXTERNE,P_GTR.CODE_OFFRE_PARC,P_GTR.NOM_OFFRE,P_GTR.SUPPORT_FT,P_GTR.DATE_DEBUT,P_GTR.DATE_FIN,'||
'P_GTR.NRA_deg,P_GTR.INSEE_deg,P_GTR.NRA_dsl,P_GTR.INSEE_dsl ';
clauseFrom := 'FROM (SELECT O.CODE_OPERATEUR,O.LIBELLE_OPERATEUR,OP.CODE_OFFRE_PARC,OP.NOM_OFFRE,PA.ID_EXTERNE,PA.SUPPORT_FT '||
'FROM PARC@ASYNCHRONE_DBLINK_PARC@ PA, OFFRE_PARC@ASYNCHRONE_DBLINK_PARC@ OP, OPERATEUR@ASYNCHRONE_DBLINK_PARC@ O WHERE '||
'PA.ID_OFFRE_PARC = OP.ID_OFFRE_PARC(+) AND PA.ID_OPERATEUR = O.ID_OPERATEUR(+) AND PA.DATE_FIN IS NULL ) P, '||
'(SELECT O.CODE_OPERATEUR,O.LIBELLE_OPERATEUR,PA.ID_EXTERNE,CPP.Z0BPQ,PA.ID_EXTERNE_PARENT '||
'FROM PARC@ASYNCHRONE_DBLINK_PARC@ PA, OPERATEUR@ASYNCHRONE_DBLINK_PARC@ O, CPT_PARC_PORTABILITE@ASYNCHRONE_DBLINK_PARC@ CPP '||
' WHERE PA.ID_PARC = CPP.ID_PARC '||
' AND PA.ID_OPERATEUR = O.ID_OPERATEUR(+) '||
' AND PA.DATE_FIN IS NULL) P_PORT, '||
'(SELECT PA.ID_PARC,PA.ID_EXTERNE,OP.CODE_OFFRE_PARC,OP.NOM_OFFRE,PA.SUPPORT_FT,PA.DATE_DEBUT,PA.DATE_FIN,PA.ID_EXTERNE_PARENT, '||
' cpd.code_insee as INSEE_deg,cpa.code_insee as INSEE_dsl,cpd.Nra as NRA_deg,cpa.nra as NRA_dsl '||
'FROM PARC@ASYNCHRONE_DBLINK_PARC@ PA, OFFRE_PARC@ASYNCHRONE_DBLINK_PARC@ OP, OPERATEUR@ASYNCHRONE_DBLINK_PARC@ O, CPT_PARC_ADSL@ASYNCHRONE_DBLINK_PARC@ cpa, CPT_PARC_DEGROUPAGE@ASYNCHRONE_DBLINK_PARC@ cpd '||
'WHERE PA.ID_OFFRE_PARC = OP.ID_OFFRE_PARC(+) '||
'AND PA.ID_PARC NOT IN ( SELECT CPP.ID_PARC from CPT_PARC_PORTABILITE CPP) '||
'AND PA.ID_OPERATEUR = O.ID_OPERATEUR(+) '||
'AND OP.ID_DOMAINE = 3 '||
'AND PA.DATE_FIN IS NULL '||
'AND PA.ID_PARC = cpa.id_parc(+) ' ||
'AND PA.ID_PARC = cpd.id_parc(+)) P_GTR, ' ||TNAME||' NRAHD ';
clauseWhere := 'WHERE NRAHD.SUPPORT = P.SUPPORT_FT(+) '||
'AND P.ID_EXTERNE = P_PORT.ID_EXTERNE_PARENT(+) '||
'AND P.ID_EXTERNE = P_GTR.ID_EXTERNE_PARENT(+) ';
clauseOrder := 'ORDER BY P.CODE_OPERATEUR, P.CODE_OFFRE_PARC';
-- Défini le fichier d'export de la table avec une capacité d'écriture allant jusqu'à 3000 caractères par champs.
--tracefile := VI_FILE.FOPEN('@ASYNCHRONE_REP_STOCKAGE@', '&1', 'w',3000);
tracefile := VI_FILE.FOPEN('/data/flf/viopar/files/archives/extractions', '&1', 'w',3000);
VI_FILE.put_line(tracefile,'Support_ft de l''élément HD;Code opérateur de l''élément HD;Libelle opérateur de l''élément HD;Code offre parc de l''élément HD;Nom offre de l''élément HD;Id_externe de l''élément HD;Code opérateur d''interconnexion;Libellé opérateur d''interconnexion;Id_externe de l''élément de portabilité;Z0BPQ;Identifiant interne parc de l''accès GTR;Identifiant externe de l''accès de GTR;Code offre de l''accès GTR (qui identifie le type de GTR);Libellé de l''offre de l''accès GTR (qui identifie le type de GTR);ND de l''accès de GTR;Date de début de l''accès GTR;Date de fin de l''accès GTR;NRA Degroupage;INSEE Degroupage;NRA ADSL;INSEE ADSL');
OPEN parcElem FOR (clauseSelect || clauseFrom || clauseWhere || clauseOrder);
LOOP
FETCH parcElem BULK COLLECT INTO TAB_RE LIMIT nbRows;
EXIT WHEN TAB_RE.COUNT = 0;
FOR i IN TAB_RE.FIRST .. TAB_RE.LAST LOOP
IF TAB_RE(i).nra_deg is not null THEN
NRA := TAB_RE(i).nra_deg ;
ELSIF TAB_RE(i).nra_adsl is not null THEN
NRA := TAB_RE(i).nra_adsl;
Else
NRA := VIDE;
END IF;
IF TAB_RE(i).insee_deg is not null THEN
INSEE := TAB_RE(i).insee_deg;
ELSIF TAB_RE(i).insee_adsl is not null THEN
INSEE := TAB_RE(i).insee_adsl;
Else
INSEE := VIDE;
END IF;
VI_FILE.put_line(tracefile,TAB_RE(i).support||';'||TAB_RE(i).code_op||';'||TAB_RE(i).libelle_op||';'||TAB_RE(i).code_offre||';'||TAB_RE(i).nom_offre||';'||TAB_RE(i).idExterne||';'||
TAB_RE(i).code_op_interconnexion||';'||TAB_RE(i).libelle_op_interconnexion||';'||TAB_RE(i).idExterne_Porta||';'||TAB_RE(i).zobpq_Porta||';'||
TAB_RE(i).idParc_GTR||';'||TAB_RE(i).idExterne_GTR||';'||TAB_RE(i).code_offre_GTR||';'||TAB_RE(i).nom_offre_GTR||';'||TAB_RE(i).support_GTR||';'||TAB_RE(i).date_debut_GTR||';'||TAB_RE(i).date_fin_GTR||';'||
NRA||';'||INSEE);
END LOOP;
VI_FILE.FFLUSH(tracefile);
TAB_RE.delete;
END LOOP;
verifyClose;
EXCEPTION
WHEN utl_file.invalid_path THEN
verifyClose;
RAISE_APPLICATION_ERROR(-20001, 'Ouverture du fichier csv impossible invalid_path');
WHEN utl_file.invalid_mode THEN
verifyClose;
RAISE_APPLICATION_ERROR(-20002, 'Ouverture du fichier csv impossible invalid_mod');
WHEN utl_file.invalid_operation THEN
verifyClose;
RAISE_APPLICATION_ERROR(-20003, 'Ouverture du fichier csv impossible invalid_operation');
WHEN utl_file.write_error THEN
verifyClose;
RAISE_APPLICATION_ERROR(-20004, 'Ecriture sur le fichier csv impossible write_error');
WHEN utl_file.internal_error THEN
verifyClose;
RAISE_APPLICATION_ERROR(-20005, 'Utilisation du fichier csv impossible internal_error');
WHEN utl_file.invalid_maxlinesize THEN
verifyClose;
RAISE_APPLICATION_ERROR(-20006, 'I/O fichier csv impossible invalid_maxlinesize');
WHEN OTHERS THEN
verifyClose;
RAISE;
END;
/
BEGIN
-- Suppression de la table virtuelle.
EXECUTE IMMEDIATE 'DROP TABLE EXT_' || LTRIM(TO_CHAR(DBMS_UTILITY.GET_HASH_VALUE(UPPER(REPLACE(substr(reqAsynchrone.getNomFichier('&2'),instr(reqAsynchrone.getNomFichier('&2'),'/',-1)),'.','')),1000000000,POWER(2,30)),RPAD('X',29,'X')||'X')) || ' ';
EXCEPTION WHEN OTHERS THEN
NULL;
END;
/
#!/bin/ksh
#
# Set Oracle environment
ORACLE_SID=ORCL #<- This is the database instance name.
ORAENV_ASK=NO
. /usr/local/bin/oraenv
SQL_DIR=/home/myuser/sql
cd $SQL_DIR
sqlplus username/password @extraction_parc_nrahd.sql
#!/bin/ksh
#
# Set Oracle environment
ORACLE_SID=ORCL #<- This is the database instance name.
ORAENV_ASK=NO
. /usr/local/bin/oraenv
SQL_DIR=/home/myuser/sql
cd $SQL_DIR
sqlplus username/password <<EOF
---------------------------------------------------------------------------------------------------------
----Procedure extraction_parc_nrahd.sql
----Réalise l'extraction des éléments de parc correspondants aux critères passés en paramètres
----param1 : nom du fichier csv pour le stockage des résultats
----param2 : id_user_req
---------------------------------------------------------------------------------------------------------
DECLARE
---------------------------------------------------------------------------------------------------------
----Variables Globales
---------------------------------------------------------------------------------------------------------
TYPE REC_EXTRACT IS RECORD (
support varchar2(64),
code_op varchar2(10),
libelle_op varchar2(30),
code_offre varchar2(20),
nom_offre varchar2(50),
idExterne varchar2(20),
----Composante Portabilité
code_op_interconnexion varchar2(10),
libelle_op_interconnexion varchar2(30),
idExterne_Porta varchar2(20),
zobpq_Porta varchar2(5),
----Composante GTR
idParc_GTR varchar2(9),
idExterne_GTR varchar2(20),
code_offre_GTR varchar2(20),
nom_offre_GTR varchar2(80),
support_GTR varchar2(64),
date_debut_GTR varchar2(32),
date_fin_GTR varchar2(32),
--cplt
nra_deg varchar2(32),
insee_deg varchar2(32),
nra_adsl varchar2(32),
insee_adsl varchar2(12)
);
TYPE T_REC_EXTRACT IS TABLE of REC_EXTRACT INDEX BY PLS_INTEGER;
TAB_RE T_REC_EXTRACT;
TYPE ParcElemType IS REF CURSOR;
parcElem ParcElemType;
clauseSelect varchar2(4000);
clauseWhere varchar2(4000);
clauseFrom varchar2(4000);
clauseOrder varchar2(4000);
TNAME varchar2(255);
nomFichier varchar2(100);
nbRows NATURAL := 1000;
i BINARY_INTEGER := 0;
-- Identifiant de fichier d'extraction
tracefile UTL_FILE.FILE_TYPE;
VIDE INTEGER;
NRA varchar2(3);
INSEE varchar2(5);
---------------------------------------------------------------------------------------------------------
-- Fonctions et Procedures
---------------------------------------------------------------------------------------------------------
------------- verifyClose
-- Ferme le curseur et le fichier de trace si ils sont ouverts
procedure verifyClose IS
begin
if (parcElem%ISOPEN) then CLOSE parcElem; end if;
VI_FILE.FFLUSH(tracefile);
VI_FILE.FCLOSE(tracefile);
end verifyClose;
BEGIN
DBMS_OUTPUT.ENABLE(800000);
nomFichier := reqAsynchrone.getNomFichier('&2');
-- Creation alias vers le répertoire du fichier à mapper.
BEGIN
--EXECUTE IMMEDIATE 'CREATE OR REPLACE DIRECTORY DEPOT_DIR_NRAHD AS ''@ASYNCHRONE_REP_DEPOT_FICHIER@'' ';
EXECUTE IMMEDIATE 'CREATE OR REPLACE DIRECTORY DEPOT_DIR_NRAHD AS ''/data/flf/vigvig/files/ext_nra/entree/'' ';
EXCEPTION WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('INFO - Creation alias DEPOT_DIR_NRAHD impossible : ');
DBMS_OUTPUT.PUT_LINE(dbms_utility.format_error_stack);
END;
-- Définition du nom de la table temporaire à partir du digest du nom du fichier en entrée
TNAME := 'EXT_' || LTRIM(TO_CHAR(DBMS_UTILITY.GET_HASH_VALUE(UPPER(REPLACE(substr(nomFichier,instr(nomFichier,'/',-1)),'.','')),1000000000,POWER(2,30)),RPAD('X',29,'X')||'X'));
-- Suppression préventive de la table virtuelle
BEGIN
EXECUTE IMMEDIATE 'DROP TABLE ' || TNAME || ' ';
EXCEPTION WHEN OTHERS THEN
NULL;
END;
-- Creation de la table virtuelle spécifique au nom du fichier.
EXECUTE IMMEDIATE 'CREATE TABLE ' || TNAME ||
'(SUPPORT VARCHAR2(64)) ORGANIZATION EXTERNAL (TYPE ORACLE_LOADER DEFAULT DIRECTORY DEPOT_DIR_NRAHD ACCESS PARAMETERS '||
'( records delimited by newline nobadfile nodiscardfile nologfile fields missing field values are null (support char(10)) ) LOCATION ( '''||nomFichier||''' )) PARALLEL CACHE REJECT LIMIT UNLIMITED';
clauseSelect := 'SELECT NRAHD.SUPPORT,P.CODE_OPERATEUR,P.LIBELLE_OPERATEUR,P.CODE_OFFRE_PARC,P.NOM_OFFRE,P.ID_EXTERNE,'||
'P_PORT.CODE_OPERATEUR,P_PORT.LIBELLE_OPERATEUR,P_PORT.ID_EXTERNE,P_PORT.Z0BPQ,'||
'P_GTR.ID_PARC,P_GTR.ID_EXTERNE,P_GTR.CODE_OFFRE_PARC,P_GTR.NOM_OFFRE,P_GTR.SUPPORT_FT,P_GTR.DATE_DEBUT,P_GTR.DATE_FIN,'||
'P_GTR.NRA_deg,P_GTR.INSEE_deg,P_GTR.NRA_dsl,P_GTR.INSEE_dsl ';
clauseFrom := 'FROM (SELECT O.CODE_OPERATEUR,O.LIBELLE_OPERATEUR,OP.CODE_OFFRE_PARC,OP.NOM_OFFRE,PA.ID_EXTERNE,PA.SUPPORT_FT '||
'FROM PARC@ASYNCHRONE_DBLINK_PARC@ PA, OFFRE_PARC@ASYNCHRONE_DBLINK_PARC@ OP, OPERATEUR@ASYNCHRONE_DBLINK_PARC@ O WHERE '||
'PA.ID_OFFRE_PARC = OP.ID_OFFRE_PARC(+) AND PA.ID_OPERATEUR = O.ID_OPERATEUR(+) AND PA.DATE_FIN IS NULL ) P, '||
'(SELECT O.CODE_OPERATEUR,O.LIBELLE_OPERATEUR,PA.ID_EXTERNE,CPP.Z0BPQ,PA.ID_EXTERNE_PARENT '||
'FROM PARC@ASYNCHRONE_DBLINK_PARC@ PA, OPERATEUR@ASYNCHRONE_DBLINK_PARC@ O, CPT_PARC_PORTABILITE@ASYNCHRONE_DBLINK_PARC@ CPP '||
' WHERE PA.ID_PARC = CPP.ID_PARC '||
' AND PA.ID_OPERATEUR = O.ID_OPERATEUR(+) '||
' AND PA.DATE_FIN IS NULL) P_PORT, '||
'(SELECT PA.ID_PARC,PA.ID_EXTERNE,OP.CODE_OFFRE_PARC,OP.NOM_OFFRE,PA.SUPPORT_FT,PA.DATE_DEBUT,PA.DATE_FIN,PA.ID_EXTERNE_PARENT, '||
' cpd.code_insee as INSEE_deg,cpa.code_insee as INSEE_dsl,cpd.Nra as NRA_deg,cpa.nra as NRA_dsl '||
'FROM PARC@ASYNCHRONE_DBLINK_PARC@ PA, OFFRE_PARC@ASYNCHRONE_DBLINK_PARC@ OP, OPERATEUR@ASYNCHRONE_DBLINK_PARC@ O, CPT_PARC_ADSL@ASYNCHRONE_DBLINK_PARC@ cpa, CPT_PARC_DEGROUPAGE@ASYNCHRONE_DBLINK_PARC@ cpd '||
'WHERE PA.ID_OFFRE_PARC = OP.ID_OFFRE_PARC(+) '||
'AND PA.ID_PARC NOT IN ( SELECT CPP.ID_PARC from CPT_PARC_PORTABILITE CPP) '||
'AND PA.ID_OPERATEUR = O.ID_OPERATEUR(+) '||
'AND OP.ID_DOMAINE = 3 '||
'AND PA.DATE_FIN IS NULL '||
'AND PA.ID_PARC = cpa.id_parc(+) ' ||
'AND PA.ID_PARC = cpd.id_parc(+)) P_GTR, ' ||TNAME||' NRAHD ';
clauseWhere := 'WHERE NRAHD.SUPPORT = P.SUPPORT_FT(+) '||
'AND P.ID_EXTERNE = P_PORT.ID_EXTERNE_PARENT(+) '||
'AND P.ID_EXTERNE = P_GTR.ID_EXTERNE_PARENT(+) ';
clauseOrder := 'ORDER BY P.CODE_OPERATEUR, P.CODE_OFFRE_PARC';
-- Défini le fichier d'export de la table avec une capacité d'écriture allant jusqu'à 3000 caractères par champs.
--tracefile := VI_FILE.FOPEN('@ASYNCHRONE_REP_STOCKAGE@', '&1', 'w',3000);
tracefile := VI_FILE.FOPEN('/data/flf/viopar/files/archives/extractions', '&1', 'w',3000);
VI_FILE.put_line(tracefile,'Support_ft de l''élément HD;Code opérateur de l''élément HD;Libelle opérateur de l''élément HD;Code offre parc de l''élément HD;Nom offre de l''élément HD;Id_externe de l''élément HD;Code opérateur d''interconnexion;Libellé opérateur d''interconnexion;Id_externe de l''élément de portabilité;Z0BPQ;Identifiant interne parc de l''accès GTR;Identifiant externe de l''accès de GTR;Code offre de l''accès GTR (qui identifie le type de GTR);Libellé de l''offre de l''accès GTR (qui identifie le type de GTR);ND de l''accès de GTR;Date de début de l''accès GTR;Date de fin de l''accès GTR;NRA Degroupage;INSEE Degroupage;NRA ADSL;INSEE ADSL');
OPEN parcElem FOR (clauseSelect || clauseFrom || clauseWhere || clauseOrder);
LOOP
FETCH parcElem BULK COLLECT INTO TAB_RE LIMIT nbRows;
EXIT WHEN TAB_RE.COUNT = 0;
FOR i IN TAB_RE.FIRST .. TAB_RE.LAST LOOP
IF TAB_RE(i).nra_deg is not null THEN
NRA := TAB_RE(i).nra_deg ;
ELSIF TAB_RE(i).nra_adsl is not null THEN
NRA := TAB_RE(i).nra_adsl;
Else
NRA := VIDE;
END IF;
IF TAB_RE(i).insee_deg is not null THEN
INSEE := TAB_RE(i).insee_deg;
ELSIF TAB_RE(i).insee_adsl is not null THEN
INSEE := TAB_RE(i).insee_adsl;
Else
INSEE := VIDE;
END IF;
VI_FILE.put_line(tracefile,TAB_RE(i).support||';'||TAB_RE(i).code_op||';'||TAB_RE(i).libelle_op||';'||TAB_RE(i).code_offre||';'||TAB_RE(i).nom_offre||';'||TAB_RE(i).idExterne||';'||
TAB_RE(i).code_op_interconnexion||';'||TAB_RE(i).libelle_op_interconnexion||';'||TAB_RE(i).idExterne_Porta||';'||TAB_RE(i).zobpq_Porta||';'||
TAB_RE(i).idParc_GTR||';'||TAB_RE(i).idExterne_GTR||';'||TAB_RE(i).code_offre_GTR||';'||TAB_RE(i).nom_offre_GTR||';'||TAB_RE(i).support_GTR||';'||TAB_RE(i).date_debut_GTR||';'||TAB_RE(i).date_fin_GTR||';'||
NRA||';'||INSEE);
END LOOP;
VI_FILE.FFLUSH(tracefile);
TAB_RE.delete;
END LOOP;
verifyClose;
EXCEPTION
WHEN utl_file.invalid_path THEN
verifyClose;
RAISE_APPLICATION_ERROR(-20001, 'Ouverture du fichier csv impossible invalid_path');
WHEN utl_file.invalid_mode THEN
verifyClose;
RAISE_APPLICATION_ERROR(-20002, 'Ouverture du fichier csv impossible invalid_mod');
WHEN utl_file.invalid_operation THEN
verifyClose;
RAISE_APPLICATION_ERROR(-20003, 'Ouverture du fichier csv impossible invalid_operation');
WHEN utl_file.write_error THEN
verifyClose;
RAISE_APPLICATION_ERROR(-20004, 'Ecriture sur le fichier csv impossible write_error');
WHEN utl_file.internal_error THEN
verifyClose;
RAISE_APPLICATION_ERROR(-20005, 'Utilisation du fichier csv impossible internal_error');
WHEN utl_file.invalid_maxlinesize THEN
verifyClose;
RAISE_APPLICATION_ERROR(-20006, 'I/O fichier csv impossible invalid_maxlinesize');
WHEN OTHERS THEN
verifyClose;
RAISE;
END;
/
BEGIN
-- Suppression de la table virtuelle.
EXECUTE IMMEDIATE 'DROP TABLE EXT_' || LTRIM(TO_CHAR(DBMS_UTILITY.GET_HASH_VALUE(UPPER(REPLACE(substr(reqAsynchrone.getNomFichier('&2'),instr(reqAsynchrone.getNomFichier('&2'),'/',-1)),'.','')),1000000000,POWER(2,30)),RPAD('X',29,'X')||'X')) || ' ';
EXCEPTION WHEN OTHERS THEN
NULL;
END;
/
exit
EOF
how exactly do you start the script? Seems as if the shell tries to interpret it, and not PL/SQL.
wmp