CREATE FUNCTION SQL pour DT_SQL

BoTTom |
 
-- supression des fonctions pour recréation
 
DROP FUNCTION AF4TEST/TOCHAR6    ;
DROP FUNCTION AF4TEST/TOCHAR10   ;
DROP FUNCTION AF4TEST/TODATE6    ;
DROP FUNCTION AF4TEST/TODATE7    ;
DROP FUNCTION AF4TEST/TODATE8    ;
DROP FUNCTION AF4TEST/TOWEEK     ;
DROP FUNCTION AF4TEST/TOWEEK2    ;
 
-- création des fonctions DATE (déclaration SQL des fonctions dans *SRVPGM)
 
-- il faut indiquer le *SRVPGM et la procédure entre ( et )
--  elles retournent toutes NULL si l'un des paramètres est NULL
--  (style de paramètre GENERAL, n'ajoute pas de paramètres propres à SQL)
 
CREATE FUNCTION AF4TEST/TOCHAR6   (DEC(6 , 0) )
                          RETURNS  CHAR(8)
       EXTERNAL NAME 'AF4TEST/DT_SQL(DAT6_CHAR8)'
       PARAMETER STYLE GENERAL
       RETURNS NULL ON NULL INPUT  ;
 
CREATE FUNCTION AF4TEST/TOCHAR10   (DEC(6 , 0) )
                          RETURNS  CHAR(10)
       EXTERNAL NAME 'AF4TEST/DT_SQL(DAT6_CHAR10)'
       PARAMETER STYLE GENERAL
       RETURNS NULL ON NULL INPUT  ;
 
--
--  SQL sait lui même transformer (caster) la valeur retour
--
 
CREATE FUNCTION AF4TEST/TODATE6  (DEC(6 , 0) )
                          RETURNS  DATE CAST FROM CHAR(10)
       EXTERNAL NAME 'AF4TEST/DT_SQL(DAT6_CHAR10)'
       PARAMETER STYLE GENERAL
       RETURNS NULL ON NULL INPUT  ;
 
CREATE FUNCTION AF4TEST/TODATE7  (DEC(7 , 0) )
                          RETURNS  DATE CAST FROM CHAR(10)
       EXTERNAL NAME 'AF4TEST/DT_SQL(DAT7_CHAR10)'
       PARAMETER STYLE GENERAL
       RETURNS NULL ON NULL INPUT  ;


|
 
CREATE FUNCTION AF4TEST/TODATE8  (DEC(8 , 0) )
                          RETURNS  DATE CAST FROM CHAR(10)
       EXTERNAL NAME 'AF4TEST/DT_SQL(DAT8_CHAR10)'
       PARAMETER STYLE GENERAL  RETURNS NULL ON NULL INPUT ;
 
-- les deux fonctions WEEK à partir d'une DATE
 
CREATE FUNCTION AF4TEST/TOWEEK  (INDATE DATE)
                          RETURNS  DEC(4, 0)
       EXTERNAL NAME 'AF4TEST/DT_SQL(WEEK)'
       PARAMETER STYLE GENERAL
       RETURNS NULL ON NULL INPUT  ;
 
CREATE FUNCTION AF4TEST/TOWEEK2 (INDATE DATE)
                          RETURNS  DEC(2, 0)
       EXTERNAL NAME 'AF4TEST/DT_SQL(WEEK2)'
       PARAMETER STYLE GENERAL
       RETURNS NULL ON NULL INPUT  ;
 
  -- etc...




©AF400