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

Langage SQL Discussion :

Prob SQL dynamique


Sujet :

Langage SQL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 11
    Par défaut Prob SQL dynamique
    Bonjour,
    J'ai un souci avec du SQl Dynamique.
    J'ai un package, qui contient une procédure (avec une année en entrée).
    Cette procédure a pour but d'alimenter une table.

    Voici le code, ce sera peut-être plus simple à comprendre :
    --
    as
    procedure creat_table (annee_fin IN INTEGER) is
    ordre VARCHAR2(2000);
    i_datfin DATE := to_date('3112'||to_char(annee_fin, '9999'), 'DDMMRRRR');
    fin_annee DATE := to_date('3112'||to_char(sysdate, 'RRRR'), 'DDMMRRRR');
    begin
    ordre := 'truncate table a.coef_voisins';
    execute immediate ordre;
    ordre := 'insert into a.coef_voisins
    select agt_matricule,
    nvl(recup_dernier_coef2 (agt_matricule,:1), 0) old_coef,
    nvl(recup_dernier_coef2 (agt_matricule,:2), 0) new_coef,
    nvl(recup_college (agt_matricule,:3), ''X'') old_college
    from ad.agents
    where (agt_date_embauche <= :4
    and (agt_date_depart is null or agt_date_depart > :5))';

    execute immediate ordre using i_datfin, fin_annee, i_datfin,i_datfin, fin_annee;
    commit;
    end creat_table;
    end;

    --

    Ce code fonctionne lorsque je le "sors" du package pour le coller dans TOAD, mais lorsque j'appelle cette procédure à partir du package, j'ai une erreur 904 "colonne invalide".
    les "recup---" sont des fonctions, lorsque je les remplace par des valeurs fixes, ça fonctionne.

    Je sais qu'à l'heure actuelle, je n'aurais pas besoin de SQl dynamique pour faire ça, mais ça va se compliqer, et là j'en aurais besoin.

    Si vous avez des pistes, je suis preneur, je crois avoir tout tenté.
    Merci d'avance pour votre aide.

  2. #2
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Par défaut
    Si au lieu de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    execute immediate ordre using i_datfin, fin_annee, i_datfin,i_datfin, fin_annee;
    tu fais un dbms_output.put_line(ordre) et que tu exécutes la requêtes obtenues est-ce-que TOAD ne t'indiques pas où est l'erreur ?


    Laly.
    In the heart of the truly greats, perfection is never achieved but endlessly pursued.

    Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2004
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 11
    Par défaut
    Bonjour,
    En fait, il s'agissait d'un problème de propriétaire des fonctions.
    En effet, je n'étais pas le proprio des fonctions.

    Si qqun a déjà eu ce genre de problème et a réussi à le résoudre, je suis preneur.

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

Discussions similaires

  1. Pb :SQl dynamique et refcursor
    Par anthony8 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 21/10/2004, 09h39
  2. Appel de function en SQL Dynamique
    Par dkd dans le forum Oracle
    Réponses: 22
    Dernier message: 28/09/2004, 18h01
  3. SQL dynamique : pb de syntaxe
    Par Pasiphae dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/08/2004, 16h50
  4. SQL dynamique
    Par Etienne1 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/08/2004, 10h18
  5. SQL Dynamique - Materialized view
    Par Simeans2004 dans le forum SQL
    Réponses: 15
    Dernier message: 10/06/2004, 17h56

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