Link to home
Start Free TrialLog in
Avatar of vishal_neo
vishal_neo

asked on

pl/sql script error when launche via ksh

Hi experts,

when i launch the script an an aix machine, i got some errors:
test.sql[2]: --:  not found.
test.sql[3]: --:  not found.
test.sql[62]: tracefile:  not found.
test.sql[64]: VIDE:  not found.
test.sql[65]: 0403-057 Syntax error at line 65 : `(' is not expected.

when i launch the same script with some modification (like hard-code &1 and &2 with relevant values, the script works)

so any guess?
thx
---------------------------------------------------------------------------------------------------------
----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;
/

Open in new window

Avatar of woolmilkporc
woolmilkporc
Flag of Germany image

Hi,
how exactly do you start the script? Seems as if the shell tries to interpret it, and not PL/SQL.
wmp
 
Try this:
 

#!/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

Open in new window

can you paste you shell script here...
Or if you are acctually creating the procedure do this:
 

#!/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

Open in new window

PS: Or just executing it....
Avatar of vishal_neo
vishal_neo

ASKER

Hey xperts,
Actually thr was a pblm in a config file.
The path of a server was wrong

thx 4 ur consideration.
ASKER CERTIFIED SOLUTION
Avatar of ee_auto
ee_auto

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial