DECLARE EXTERNAL FUNCTION ASCII_CHAR INTEGER RETURNS CHAR(1) ENTRY_POINT 'IB_UDF_ascii_char' MODULE_NAME 'ib_udf'; DECLARE EXTERNAL FUNCTION LOWER CSTRING(80) RETURNS CSTRING(80) FREE_IT ENTRY_POINT 'IB_UDF_lower' MODULE_NAME 'ib_udf'; CREATE TABLE T_EXTERNAL EXTERNAL FILE 'C:\TEMP\EXPORT.TXT' ( CIV char( 1), NAME char(40), FIRSTNAME char(30), DESCRIPT char(60), RT char(2) ); CREATE PROCEDURE PS_TRANSFERT AS DECLARE VARIABLE CIV Char(1) ; DECLARE VARIABLE NAME Char(40); DECLARE VARIABLE FIRSTNAME Char(30); DECLARE VARIABLE DESCRIPT Char(60); DECLARE VARIABLE CRLF Char(2); BEGIN CRLF = ASCII_CHAR(13)||ASCII_CHAR(10);/*Pour éviter de le faire plusieurs fois dans la boucle*/ FOR SELECT CIVILID,NOM,PRENOM,DESCRIPT FROM CLIENT INTO :CIV, :NAME, :FIRSTNAME, :DESCRIPT DO BEGIN /*Insérer ici les Vérifications ou mises en forme */ NAME = LOWER(NAME);/*Lower nécessite d'être déclarer (contrairement à Upper)*/ INSERT INTO T_EXTERNAL (CIV,NAME,FIRSTNAME,DESCRIPT,RT) VALUES (:CIV,:NAME,:FIRSTNAME,:DESCRIPT,:CRLF); END END; EXECUTE PROCEDURE PS_TRANSFERT; DROP PROCEDURE PS_TRANSFERT; DROP TABLE T_EXTERNAL; DROP EXTERNAL FUNCTION ASCII_CHAR; DROP EXTERNAL FUNCTION LOWER;