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

Oracle Discussion :

[Oracle reports] Placeholder


Sujet :

Oracle

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 100
    Points : 54
    Points
    54
    Par défaut [Oracle reports] Placeholder
    Bonjour,
    Je travaille sur un report dans lequel je dois affecter une valeur à un placeholder dans le trigger 'BEFORE REPORT'
    Voila son attribution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    :lp_where := 'AND AD.ASSET_ID not in (select asset_id from FA_RETIREMENTS FR where FR.book_type_code = :P_Book and to_date(to_char(TO_DATE( date_retired, '||'''DD/MM/RR'''||'), '||'''MON-RR'''||'), '||'''MON-RR'''||') <= (to_date(:P_PERIOD1, '||'''MON-RR'''||')))';
    J'appelle ensuite ce placeholder dans ma requete principale ($lp_where)
    Le problème c'est que dès que je lance mon report sous Oracle, il me sort une fatal SQL error
    Je suppose que cela est dû à une mauvaise utilisation des guillements
    J'ai testé cette requete en la plaçant directement dans la requete principale et ça marche parfaitement
    Voila, si quelqu'un a une idée
    Merci d'avance

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Pourquoi les ||
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    :lp_where := 'AND AD.ASSET_ID 
    not in (select asset_id 
              from FA_RETIREMENTS FR 
              where FR.book_type_code = :P_Book 
              and to_date(to_char(TO_DATE(date_retired, ''DD/MM/RR''), ''MON-RR''), ''MON-RR'') <= to_date(:P_PERIOD1, ''MON-RR'')
             )';
    Ensuite, le champ date_retired : C'est vraiement un type VARCHAR2?

    Dans la requete principale, il me semble que c'est &lp_where et pas $lp_where.

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 100
    Points : 54
    Points
    54
    Par défaut
    J'ai déjà essayé avec seulement deux guillements mais ça ne marchait pas c pour ça que j'ai utilisé les ||
    En ce qui concerne la requète principale, tu as raison c &lp_where et non $lp_where (simple erreur lors de la rédaction de ce message)
    J'ai testé la requete sous toad puis directement dans ma requete pincipale et ça marchait bien donc pas de problème avec date_retired donc ça ne vient pas de la ...

  4. #4
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Eh bien débugge le code.
    Garde qu'une seule ligne dans pl_where, puis tu rajoutes et tu verras ce qui plante.

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 100
    Points : 54
    Points
    54
    Par défaut
    C'est déja fait
    J'ai d'abord testé le programme sans la comparaison de date puis avec
    Sans la comparaison de date ça marchait bien mais dès que je rajoute la nouvelle restriction ça plante

  6. #6
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Question autre, quelle utilité le to_date(to_char(to_date()))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    trunc(date_retired, ''MM/RR'') <= to_date(:P_PERIOD1, ''MON-RR'')
    Si date_retired est bien un champ de type date.
    PERIOD1 : Quelle donnée dedans ?

  7. #7
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    100
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 100
    Points : 54
    Points
    54
    Par défaut
    Tu as vu juste
    J'étais encore en train de tester et l'erreur venait de P_PERIOD1
    C'est un paramètre de type VARCHAR2
    Il fallait mettre dans la requète:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    to_date('''||:P_PERIOD1||''','||'''MON-RR'''||')
    Merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Appeler un état de sortie Oracle Report
    Par aida2 dans le forum Reports
    Réponses: 4
    Dernier message: 23/04/2008, 14h28
  2. Réponses: 3
    Dernier message: 10/01/2008, 13h08
  3. Réponses: 1
    Dernier message: 15/07/2005, 12h21
  4. Réponses: 2
    Dernier message: 01/07/2005, 15h54
  5. concernant oracle report 6i
    Par nadia lydia dans le forum Oracle
    Réponses: 8
    Dernier message: 27/06/2005, 15h21

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