Création table de temps

La requête suivante permet de créer une table d’heure avec SQL server :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
CREATE TABLE [Clock]
(
    ClTime time,
    ClHourMinuteStr VARCHAR(5),
    ClHourStr VARCHAR(2),
    ClHour int,
    ClMinuteStr VARCHAR(2),
    ClMinute int
);
 
 
BEGIN
    DECLARE @heureStr VARCHAR(2);
    DECLARE @minuteStr VARCHAR(2);
    DECLARE @heureMinute VARCHAR(5);
    DECLARE @idHeureMinute INTEGER;
    DECLARE @hour integer = 0;
    DECLARE @hourMax integer = 23;
    DECLARE @minute integer = 0;
    DECLARE @minuteMax integer = 59;
 
    BEGIN
 
        WHILE @hour <= @hourMax
        BEGIN
   
            SET @heureStr = REPLACE(STR(@hour, 2), SPACE(1), '0')
   
            WHILE @minute <= @minuteMax
            BEGIN
       
                SET @minuteStr = REPLACE(STR(@minute, 2), SPACE(1), '0')
           
                SET @heureMinute = @heureStr + ':' + @minuteStr;

                INSERT INTO [Clock]
                SELECT convert(time, @heureMinute), @heureMinute, @heureStr, @hour, @minuteStr, @minute;
       
           
              SET @minute = @minute + 1 ;
       
            END

            SET @minute = 0;
            SET @hour = @hour+1;
   
        END
   
 
    END

END;

Création calendrier

La requête suivante permet de générer une table « Calendar » avec Sql Server du 01/01/1900 au 12/31/2999 :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
SELECT
    convert(date , d ) as CalDate,
    DATEPART(YEAR, d) as CalYear,
    DATEPART(QUARTER,  d) as CalQuarter,
    DATEPART(MONTH,  d) as CalMonth,
    DATENAME(MONTH,    d) as CalMonthName,
    DATEPART(WEEK,     d) as CalWeekOfYear,
    CONVERT(CHAR(10),  d, 101) as CalDateStr,
    DATEPART(WEEKDAY,  d) as CalDayOfWeek,
    DATEPART(DAY,  d) as CalDayOfMonth,
    DATEPART(dy, d) as CalDayOfYear,
    CONVERT(VARCHAR(10), DATENAME(WEEKDAY, d)) as CalDayName,
    DATEPART(YEAR, d)*100+REPLACE(STR(DATEPART(MONTH,  d), 4), SPACE(1), '0') as CalYearMonth,
    DATEPART(YEAR, d)*10000+REPLACE(STR(DATEPART(MONTH,  d), 4), SPACE(1), '0')*100+DATEPART(DAY,  d) as CalYearDay,
    CASE WHEN REPLACE(STR(DATEPART(MONTH,  d), 4), SPACE(1), '0')*100+DATEPART(DAY,  d) IN (101, 501, 508, 714,815, 1101, 1225) THEN 1 ELSE 0  END as CalIsPublicHoliday,
    case when DATEPART(WEEKDAY,  d) in (6, 7) THEN 1 else 0 end as CalIsWeekEnd
    into dbo.Calendar
from
(
SELECT d = DATEADD(DAY, rn - 1, '19000101')
  FROM
  (
    SELECT TOP (DATEDIFF(DAY, '19000101', '29991231'))
      rn = ROW_NUMBER() OVER (ORDER BY s1.[object_id])
    FROM sys.all_objects AS s1
    CROSS JOIN sys.all_objects AS s2
    ORDER BY s1.[object_id]
  ) A
) b;

create index IdxRefCalendar on dbo.[REF-Calendar](CalDate);

TestDisk : récupération partitions et données d’un disque dur

LE logiciel à mettre dans ces petits papiers !

Après que mon NAS ait craché logiciellement pour je ne sais quelle raison, il m’a été nécessaire de récupéré le contenu d’un de mes disques dur de 1To en RAID-1 (miroir).
Lire la suite

Configuration Java/Firefox pour BO XI 3.1

Utiliser BO et plus particulièrement Infoview avec les versions actuelles des navigateurs n’est pas des plus aisée… Effectivement comme la version XI 3.1 est un peu old school, elle n’est plus compatible avec IE 7+ et Firefox 6+ et bien évidement java 7 n’est pas non plus supporté. Du coup pour pouvoir continuer de développer avec InfoView il faut jouer de persévérance dans l’installation et le configuration de java + Firefox. C’est ce que l’on va tenter de voir dans cet article.
Lire la suite

Export des procédures/fonctions/package d’une instance Oracle

Après avoir galéré plusieurs heures afin de pouvoir exporter facilement chaque procédure / package / fonction d’une instance Oracle dans un fichier il me semblait nécessaire de créer un post sur le sujet.

Première chose à savoir : où se trouve le contenu de ces objets ?
2 réponse à cette question :

  • dans la table USER_SOURCE pour le schéma courant
  • dans la table DBA_SOURCE pour le schéma SYSTEM afin d’avoir un listing exhaustif de tous les objets

Lire la suite

Activation/désactivation d’indexe

Avant quand je voulais désactivé un indexe, je le supprimai car il me semblait que s’était impossible de le désactiver (comme une contrainte avec l’option DISABLE).

Et puis finalement il y avait bien une option pour ne pas avoir à supprimer un indexe juste pour le désactiver.
Lire la suite

Incompatibilité Talend avec Java 7

Après plusieurs discussions ouvertes sur le forum de DVP dans la catégorie ETL/Talend, les versions Talend for Data Integration antérieures à 5.2 ne sont pas compatibles avec la version 7 de java.
C’était déjà le cas pour pour la version entreprise concernant la Web Application de gestion « Administration Center » (en tout cas pour l’avoir tester avec la version 4.1.3). Mais après pour ce problème c’était surtout dû à la non compatibilité Tomcat/Talend.
Lire la suite

Ajouter une année à une date

Pour ajouter une année à une date on aurait tendance à faire :

1
select sysdate + 365 AS ANNEE_SUP from dual;

Ou :

1
select ADD_MONTHS(sysdate, 12) AS ANNEE_SUP from dual;

Mais en fin de compte la bonne syntaxe est :

1
select sysdate + interval '1' year AS ANNEE_SUP  from dual;

Lire la suite