Utiliser la fonction SIGN sous Oracle pour comparer des dates

Ce petit post a pour but d’expliquer l’utilisation de la fonction SIGN pour comparer des dates.

A la base, cette fonction permet de savoir si un nombre est négatif, égal à zéro ou positif :
SELECT SIGN(-11) FROM DUAL; La fonction retourne -1
SELECT SIGN(0) FROM DUAL; La fonction retourne 0
SELECT SIGN(11) FROM DUAL; La fonction retourne 1

Nous allons utiliser la fonction SIGN pour comparer 2 dates et savoir si la DATE1 est antérieure, égale ou postérieure à la DATE2.

Syntaxe :

La syntaxe est la suivante :
SELECT SIGN(DATE1-DATE2) FROM DUAL;
Si DATE1 est antérieure à DATE2, alors la fonction retourne -1.
Si DATE1 est postérieure à DATE2, alors la fonction retourne 1.
Si DATE1 est égale à DATE2, alors la fonction retourne 0.

Exemple de requête qui retourne toujours 0 :
SELECT SIGN(SYSDATE-SYSDATE) FROM DUAL;

Exemple :

Nous avons des immeubles avec des dates de construction d’un côté et de l’autre nous avons des états réglementaires (l’amiante concerne les immeubles construit avant le 01/07/1997, le plomb concerne les immeubles construit avant le 01/01/1949) qui doivent être réalisés en fonction de cette date de construction.

Pour obtenir la colonne "A_REALISER", on utilise la syntaxe suivante :
DECODE(SIGN(DATE_APPLICATION-DATE_CONSTRUCTION),-1,'NON',0,'OUI',1,'OUI') AS A_REALISER

Flyway / Liquibase des outils simples à utiliser

 

En tant que développeur on doit tous à un moment donné, créer des scripts SQL : que ce soit pour la structure de la base ou pour les données. Or quand il s’agit de la base on ne pense pas à versionner comme on le ferait pour du code. Actuellement, il existe de nombreuses solutions qui ont chacune leurs avantages et leurs inconvénients, personnellement je vais présenter Flyway et Liquibase, car j’ai pu les utiliser dans un contexte métier différent.

Little hardware, Big data 3/5

Après le Crawler et l'Analyser, voici la troisième partie de la série "Little hardware, Big data". Ce dossier porte sur un projet de moteur de recherche chronologique. Une version du projet est disponible en ligne sur http://histoires.xyz. Le site fonctionne sur un Raspberry Pi 2, le déploiement contient 13.293.159 documents et tourne à merveille :). Cet article présente les détails du troisième composant : l'API. Ce dernier, qui est un programme Java/Spring Boot, a pour objectif de mettre en place des services REST avec les fonctions de recherche, de statistiques, de synonymie, etc. indispensables au fonctionnement du site.

Distinguez vos différents serveur SQL en un coup d’oeil !

Suite au déroulement de nombreux projets, un développeur se trouve rapidement face à un Microsoft SQL Server Management Studio comprenant une dizaine ou plus, de serveurs de base de données enregistrés. Même si les noms donnés à ces derniers sont parlants, par exemple "ProjetXY_Recette", il est fréquent de perdre du temps en cherchant le bon nom dans une liste longue voire même d'ouvrir le mauvais serveur. Voici quelques astuces pour répondre à cette problématique organisationnelle...

Simplifier la connexion à un référentiel DataServices

Vous trouvez qu'il est compliqué de vous connecter à un référentiel SAP BO DataServices (BODS) ? Découvrez en 6 étapes comment éviter de ressaisir le mot de passe du référentiel BODS à chaque connexion en donnant les droits d’extraction de mot de passe à l’utilisateur qui se connecte au référentiel. Méthode  testée sur une plateforme BI 4.2 SP03 avec DataServices 4.2 SP08 et sur une autre plateforme BI 4.2 SP04 et DataServices 4.2 SP09.