IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Cognos Discussion :

[Framework 8.3] Problème d'opération sur des dates


Sujet :

Cognos

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 11
    Points : 10
    Points
    10
    Par défaut [Framework 8.3] Problème d'opération sur des dates
    Bonjour à tous,

    Je sollicite votre aide sur un problème qui m'ennuie depuis quelques jours.
    Je souhaite construire un modèle me permettant de suivre des traitements journaliers d'alimentation.
    Je dispose donc d'une table avec les champs nom du traitement, start_timestamp et end_timestamp (non modifiable car c'est une table d'audit de l'ETL).
    Je cherche à suivre l'évolution de la durée des traitements et c'est là qu'arrive mon problème : je calcule la durée en faisant end_timestamp - start_timestamp, ce qui fonctionne très bien quand je l'exécute dans SQL+ directement, mais pas dans le Framework !
    J'obtiens l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RQP-DEF-0177 Une erreur s'est produite lors de l'exécution de l'opération 'sqlPrepareWithOptions' état = '-120'.
    UDA-SQL-0458 Échec de l'opération PREPARE : il faudrait un traitement local des donnée, mais cette option n'a pas été activée.
    UDA-SQL-0492 La base de données ne prend pas en charge l'arithmétique Date/Heure, tel que décrit dans le standard ANSI. Impossible de poursuivre l'opération ; il faudrait que le traitement des données soit local
    Je ne comprends déjà pas pourquoi il bloque mais soit, je passe le traitement en local et cela fonctionne.
    Le problème : une fois en local, je ne peux pas utiliser les fonctions Oracle pour modifier le format du champ calculé, que je veux transformer en valeur numérique pour pouvoir l'afficher dans un graphique...

    L'idéal serait de ne pas avoir à utiliser un traitement local (qui prend plus de temps).
    A noter que je ne peux pas utiliser de fonction du type _days_between car il me faut une précision à la seconde. D'autre part, l'utilisation d'une procédure stockée est également impossible car je ne peux que faire des select dans la base.

    Merci d'avance si vous avez une solution à mon problème !

  2. #2
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    169
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 169
    Points : 121
    Points
    121
    Par défaut
    Bonjour,

    Tu peux d'abord utiliser la fonction extract() pour extraire la seconde, la minute, l'heure...et ensuite, tu fais le calcul.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    extract(second;end_timestamp) - extract(second;start_timestamp) +
    (extract(minute;end_timestamp) - extract(minute;start_timestamp))*60 +
    (extract(hour;end_timestamp) - extract(hour;start_timestamp))*3600
    J'avoue que c'est pas une solution parfaite, mais ça doit fonctionner

Discussions similaires

  1. opérations sur des dates
    Par lieto dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 20/04/2007, 10h30
  2. Problème de comptage sur des dates
    Par Oberown dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/04/2007, 17h04
  3. Opération sur des dates
    Par el_pilacho dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/01/2007, 11h06
  4. Opérations sur des dates
    Par loreleï85 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/10/2006, 17h01
  5. [MySQL] Problème de requête sur des dates
    Par dahu29 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/03/2006, 13h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo