Gérer la suppression de table SQL DB2 i

Pour éviter des erreurs de création avec DROP TABLE dans l’utilisation de RUNSQLSTM, vous pouvez utiliser ce bout de code:

 

BEGIN
   DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
      BEGIN END;
   DROP TABLE RNPROW;
END;  

Faking Create Or Replace Table – IT Jungle

The new CREATE OR REPLACE feature of SQL has been most helpful to me. It works for aliases, functions, masks, permissions, procedures, sequences, triggers, variables and views. It would be nice if it worked for tables, especially when I’m developing a new application. Here’s a workaround. The trick is to use a dynamic compound statement.

Source: www.itjungle.com/2015/01/20/fhg012015-story01/

 

Clef NIR, Numéro d’Inscription au Répertoire

Voici une requête exemple qui peut vous permettre de calculer la clef NIR en SQL:

SELECT
CASE SUBSTR( NIR, 6, 2)
  WHEN '2B'
    THEN substr( DIGITS( 97 - MOD( CAST( SUBSTR( NIR, 1, 5) CONCAT '18'
         CONCAT SUBSTR( NIR, 8, 6) AS BIGINT ), 97)), 18, 2)
  WHEN '2A'
    THEN SUBSTR( DIGITS( 97 - MOD( CAST( SUBSTR( NIR, 1, 5)
         CONCAT '19' CONCAT SUBSTR( NIR, 8, 6) AS BIGINT), 97)), 18, 2)
  ELSE   SUBSTR( DIGITS( 97 - MOD( CAST( NIR AS BIGINT), 97)), 18, 2) END AS NIR_COMPLET

 

SQL DB2:NUMÉRIQUE en DATE

Souvent dans les fichiers (anciens), les dates sont stockées sous le format YYYYMMDD afin de les tester entre elles.

Mais depuis un certain temps déjà, sont apparues les formats DATE. Et en SQL, il n’y a pas de mot clef pour transformer les formats NUMÉRIQUE en DATE (Par contre, il existe pour les passer de CHAR en DATE).
Voici un petit code trouvé sur le net pour le faire:

DATE(TIMESTAMP_FORMAT( char( DATE_NUMERIQUE), 'YYYYMMDD'))