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 :

Problème Création Procédure


Sujet :

Oracle

  1. #1
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2002
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 49
    Points : 55
    Points
    55
    Par défaut Problème Création Procédure
    Bonjour,
    Je rencontre des problèmes de compilation avec la procédure suivante :

    CREATE OR REPLACE
    PROCEDURE INSERT_AIRCRAFT
    IS
    CURSOR C_AIRCRAFT IS
    SELECT REGISTRATIN,STD_VERSION,AC_SUBTYPE_NAME,CREWSIZE_COCKPIT,CREWSIZE_CABIN
    FROM SCHEDOPS.AIRCRAFT;
    R_AC C_AIRCRAFT%ROWTYPE;
    BEGIN
    FOR R_AC IN C_AIRCRAFT LOOP
    INSERT INTO SAIRCRFTB (ACREGIAC,ACTYPEAC,ACDSC1AC,CKTNBRAC,CABNBRAC)
    VALUES (R_AC.REGISTRATION,R_AC.STD_VERSION,R_AC.AC_SUBTYPE_NAME,R_AC.CREWSIZE_COCKPIT,R_AC.CREWSIZE_CABIN);
    END LOOP;
    END INSERT_AIRCRAFT ;

    -> Résultat de la compilation :
    Error(4,14): PLS-00341: declaration of cursor 'C_AIRCRAFT' is incomplete or malformed
    Error(5,17): PL/SQL: SQL Statement ignored
    Error(6,31): PL/SQL: ORA-00942: table or view does not exist
    Error(7,12): PL/SQL: Item ignored
    Error(10,9): PL/SQL: SQL Statement ignored
    Error(11,103): PLS-00364: loop index variable 'R_AC' use is invalid
    Error(11,108): PL/SQL: ORA-00984: column not allowed here

    -> Je me doutes que les erreurs 6 à 11 sont générées par la première.
    Quelques infos pour la clarté :
    J'ai 2 schéma :
    CFR_ADMIN et SCHEDOPS.
    Je suis entrain de créer cette procédure pour CFR_ADMIN.
    Le but étant (vous l'aurez compris) de porter des infos de la table SCHEDOPS.AIRCRAFT dans CFR_ADMIN.SAIRCRFTB.
    J'utilise l'outil Oracle SQL DEVELOPER pour saisir et compiler cette procédure.

    Merci pour votre aide quelque soit !

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    1°) merci d'utiliser les balises CODE
    2°) le forum n'est pas dédié au débuggage
    3°) c'est l'erreur 6 la source du problème : la table n'existe pas donc le curseur est invalide et du coup le loop est incorrecte

  3. #3
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2002
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 49
    Points : 55
    Points
    55
    Par défaut
    Merci pour les informations.
    Pour le code, je ne le ferai plus, ou du moins j'utiliserai les bannières
    Pour le débuggage, désolé, je n'avais pas le sentiment que c'était réservé à autre chose. Dans le quel cas, où puis-je avoir du support pour ce genre de questions?
    Pour la table, je vais regarder dès que je peux y accéder.

    Bien à toi

    Yndigos

  4. #4
    Membre actif
    Inscrit en
    Mai 2004
    Messages
    297
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 297
    Points : 207
    Points
    207
    Par défaut
    Salut,

    Lance ce sql dans le schéma ou est situé ta procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT REGISTRATIN,STD_VERSION,AC_SUBTYPE_NAME,CREWSIZE_COCKPIT,CREWSIZE_CABIN 
    FROM SCHEDOPS.AIRCRAFT
    Si jamais cela ne marche pas, essaye de créer un databaselink entre les deux schémas ou bien vérifie que tu as bien les droits d'accéder d'un schéma à l'autre.


    ++

  5. #5
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Citation Envoyé par Yndigos
    je n'avais pas le sentiment que c'était réservé à autre chose.
    le forum est réservé aux questions pour lesquels on peut avoir une valeur ajoutée et qui éventuellement pourront servir à d'autre. Pour le débuggage, il suffit d'ouvrir les yeux, réfléchir un peu et se concentrer

  6. #6
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2002
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 49
    Points : 55
    Points
    55
    Par défaut
    Désolé,
    j'ai les yeux grands écarquillé depuis plusieurs heures sans comprendre mon erreur. J'ai beau piocher dans la doc, je coince...
    La requête alimentant le curseur est correcte et affiche des résultats lorsque je la lance seule.
    La requête d'insertion est correcte, à tout le moins lorsque je remplace les données dans les valeurs.

    La réponse de cosmos38240 me semble par contre être une piste.

    Si j'ai 2 schema dans ma Database.
    1 - Est-il possible de créer des procédures qui utilisent des données d'une table du schéma A pour insertion dans une table du schéma B?
    Si oui,
    2 - Il y a t'il des droits particuliers à mettre en place ?
    3 - Il y a t'il une syntaxe spécifique à employer ?

    Merci pour vos réponses.

    Yndigos

  7. #7
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2002
    Messages
    49
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Mai 2002
    Messages : 49
    Points : 55
    Points
    55
    Par défaut Résolution ...
    Pour ceux que çà intéresse :
    Il faut donner les droits "Select" sur la table du Schema A à l'utilisateur Schema B.

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

Discussions similaires

  1. [MySQL-5.6] Problème création procédure
    Par Nergal07 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 22/04/2014, 15h19
  2. Probléme de création procédure d'installation
    Par karim15 dans le forum WinDev
    Réponses: 1
    Dernier message: 11/03/2013, 14h08
  3. Problème création d'une procédure stockée
    Par kaouane dans le forum Connexion aux bases de données
    Réponses: 2
    Dernier message: 09/12/2010, 09h41
  4. Problème création procédure dans un schéma
    Par mercure07 dans le forum PostgreSQL
    Réponses: 0
    Dernier message: 11/02/2009, 14h01
  5. Problèmes création de procédures et de triggers
    Par missllyss dans le forum SQL
    Réponses: 2
    Dernier message: 06/11/2003, 10h42

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