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

PL/SQL Oracle Discussion :

Problème de syntaxe?


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 106
    Par défaut Problème de syntaxe?
    Bonjour,
    j'ai un problème avec mon code qui ne veut pas tourner???

    declare
    cursor listeTables IS
    SELECT F.FDC_TAB_COD TABLE_SOURCE,
    F.FDC_PAR_COD PARTITION_SOURCE,
    DECODE (F.FDC_PAR_COD, 'NONE', F.FDC_TAB_COD, F.FDC_PAR_COD) TABLE_CIBLE
    FROM ADMID.TSUIVI F
    WHERE F.FDC_PRJ_COD IN ('TEST')
    AND F.FDC_TRT_COD IN ('EN COURS');

    begin
    for tableAlim in listeTables
    loop

    SELECT
    count(*)
    FROM EREPD.EP_CAM_F PARTITION (tableAlim.PARTITION_SOURCE) S, ERTVD.FC_ORG_V T
    WHERE T.ORG_NUM_OLD = S.ORG_CLE_NUM;

    end loop;
    end;
    Bizarrement j'ai testé la requete du select du curseur qui marche, de même pour la requête dans le loop. Je passe peut-être à coté d'une bête erreur de syntaxe sans m'en rendre compte?

    (j'ai simplifié la requete du loop pour plus de lisibilité, car il y a un insert select)

    Voici l'erreur:
    ORA-06550: line 17, column 47:
    PL/SQL: ORA-00933: SQL command not properly ended
    ORA-06550: line 15, column 6:
    PL/SQL: SQL Statement ignored

    => sur TSUIVI?

    Quelqu'un aurait une idée?
    Merci
    Cordialement
    PB

  2. #2
    Membre confirmé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2006
    Messages : 142
    Par défaut
    Bonjour,

    effectivement vu le message cela est une erreur de syntaxe. Vérifie, mais je ne suis pas sûr qu'on puisse mettre des alias de colonne dans le select de déclaration du curseur.

    Cdlt.

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 106
    Par défaut
    Merci pour ta réponse rapide,
    j'ai enlevé les alias de la requête du curseur.
    Malheureusement, le pb se situerait maintenant au niveau du WHERE dans la requete du curseur...???
    (comme d'hab qd on résout un probleme y en a toujours un autre)

    declare
    cursor listeTables IS
    SELECT F.FDC_TAB_COD TABLE_SOURCE,
    F.FDC_PAR_COD PARTITION_SOURCE
    FROM ADMID.TSUIVI F
    WHERE F.FDC_PRJ_COD IN ('TEST')
    AND F.FDC_TRT_COD IN ('EN COURS');
    edit: ok, maintenant le pb est au niveau du begin...

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 316
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT 
    count(*)
    FROM EREPD.EP_CAM_F PARTITION (tableAlim.PARTITION_SOURCE) S, ERTVD.FC_ORG_V T
    WHERE T.ORG_NUM_OLD = S.ORG_CLE_NUM;
    il manquerait pas un into en PL/SQL par hasard ?

  5. #5
    Membre confirmé
    Inscrit en
    Avril 2009
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 106
    Par défaut
    j'ai essayé en ajoutant le into:
    declare

    nb_lignes NUMBER(10);

    cursor listeTables IS
    SELECT F.FDC_TAB_COD, F.FDC_PAR_COD
    FROM ADMID.TSUIVI F
    WHERE F.FDC_PRJ_COD IN ('TEST')
    AND F.FDC_TRT_COD IN ('EN COURS');

    begin
    FOR tableAlim in listeTables
    loop

    SELECT
    count(*)
    FROM EREPD.EP_CAM_F PARTITION (tableAlim.FDC_PAR_COD) S, ERTVD.FC_ORG_V T
    WHERE T.ORG_NUM_OLD = S.ORG_CLE_NUM into nb_lignes;

    end loop;
    end;
    mais sans succès

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 316
    Par défaut
    Le into est apres le select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT 
    count(*) into nb_lignes
    FROM EREPD.EP_CAM_F PARTITION (tableAlim.FDC_PAR_COD) S, ERTVD.FC_ORG_V T
    WHERE T.ORG_NUM_OLD = S.ORG_CLE_NUM ;

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

Discussions similaires

  1. Problème de syntaxe - elements['x'].value
    Par Equus dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/02/2005, 11h22
  2. [Interbase] Problème de syntaxe SQL
    Par navis84 dans le forum InterBase
    Réponses: 4
    Dernier message: 22/12/2004, 17h07
  3. Problème de syntaxe
    Par Mister_FX dans le forum ASP
    Réponses: 5
    Dernier message: 30/06/2004, 10h01
  4. Problème de syntaxe ADO ...
    Par bendev dans le forum ASP
    Réponses: 2
    Dernier message: 15/04/2004, 14h38
  5. Réponses: 2
    Dernier message: 08/03/2004, 15h10

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