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 :

instantiation des objets réferencés


Sujet :

PL/SQL Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 40
    Points : 36
    Points
    36
    Par défaut instantiation des objets réferencés
    Bonsoir

    Je veux insérer dans une table qui référence deux autre table, et je travail avec oracle10g sous vista.
    je veux obtenir ce resultat:

    Mon isqlplus accepte l’insertion dans tdftx et tproduit, mais pas dans tquantite, la requete est difficile pour moi, ce code été refusé par isqlplus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    insert into tquantite (c, leproduit,ledftx) 
    SELECT5’,
    ref(p)
    from tproduit p
    where p.a='poto'
    ,ref(d)
    from tdftx d
    where d.e='1');
    il m’affiche ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT5’,
           *
    Erreur dans la ligne2: 
    ORA-00911: caractère non valide

    Je veux insérer dans tquantité le tuple ‘5’ , ‘poto’,’1’. Dont ‘5’ est la valeur de c , ‘poto’ est la référence pour le produit ‘poto’, et ‘1’ pour le dftx’1’.

    Merci pour votre collaboration.

  2. #2
    Invité
    Invité(e)
    Par défaut
    utilise les simpls quotes standards, à savoir : '
    Évite de passer par un éditeur pour écrire tes requêtes - il arrive que la mise en forme soit changer automatiquement, comme avec word.
    Et si tu essaies de faire un insert d'un nombre, tu n'as même pas besoin de le mettre entre quote,
    suffira.

  3. #3
    Membre du Club
    Inscrit en
    Janvier 2009
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Janvier 2009
    Messages : 68
    Points : 45
    Points
    45
    Par défaut
    si j'avais bien compris ton probleme je peux te donner ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into tquantité ( c , leproduit, ledftx) values (tquantité_t ('5', ( select leproduit(x) from tproduit x where x.A = 'poto' ), (select ledftx(y) from tdftx y where y.E = '1' )));
    sachant qu'il faut bien spécifier le type d'objet de la table tquantité apres values, si tu l'a fait comme suit: create type tquantité_t as object (..) alors tu peux utilisé la requête ci-dessus.

    bon courage.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 40
    Points : 36
    Points
    36
    Par défaut
    Merci Jerome pour votre réponse,
    j'ai changé les quotes, le message a changé aussi,mais toujours erroné,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ,ref(d)
    *
    erreur dans la ligne 6
    ORA-00933 la commande SQL ne se termine pas correctement
    j'insere avec '5' , parceque j'ai déclarer comme varchar2.
    merci encore

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 40
    Points : 36
    Points
    36
    Par défaut
    merci ra'uf ,
    mais votre requete ne marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    INSERT INTO tquantite ( c , leproduit, ledftx) VALUES (quantite ('5', ( SELECT leproduit(x) FROM tproduit x WHERE x.A = 'poto' ), (SELECT ledftx(y) FROM tdftx y WHERE y.E = '1' )))
                                                   *
     
    erreur dans la ligne 1:
    ORA-00947: nombre de valeurs insuffisant
    j'ai changé le type tquantite_t a quantite(mon type), mias l'erreur n'est pas la.
    merci pour votre aide.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par elfive Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ,ref(d)
    *
    erreur dans la ligne 6
    ORA-00933 la commande SQL ne se termine pas correctement
    Hello.
    Il y a aussi un problème de parenthèses ou d'écriture de requête dans ce que vous nous avez fourni.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 40
    Points : 36
    Points
    36
    Par défaut
    merci jerome pour vos "signes",
    j'ai réussi a créer un tuple,mais avec une seul reference:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    INSERT INTO tquantite (c, leproduit) 
    SELECT '5',
    ref(p)
    FROM tproduit p
    WHERE p.a='poto';
    comment peut-on fair plusieurs select(pour d'autre reference)?

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bon, le forum n'est pas là pour débugger vos requêtes et trouver vos erreurs de syntaxes, ni pour faire vos exercices de cours.
    Je vous conseille de consulter un ouvrage de référence sur le SQL Oracle, comme http://oracle.developpez.com/guide/developpement/sql/
    Cela sera peut-être plus formateur que de vous cracher la réponse.

  9. #9
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 40
    Points : 36
    Points
    36
    Par défaut
    Malheureusement jerome, votre dernier poste n’étais pas constructeur, ni utile pour résoudre mon problème.je me suis étonné, votre document ne contient pas des informations sur les objets référencés.

  10. #10
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 40
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par ra'uf Voir le message
    si j'avais bien compris ton probleme je peux te donner ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into tquantité ( c , leproduit, ledftx) values (tquantité_t ('5', ( select leproduit(x) from tproduit x where x.A = 'poto' ), (select ledftx(y) from tdftx y where y.E = '1' )));
    sachant qu'il faut bien spécifier le type d'objet de la table tquantité apres values, si tu l'a fait comme suit: create type tquantité_t as object (..) alors tu peux utilisé la requête ci-dessus.

    bon courage.
    enfin, j'ai bien éssayé votre requete, avec quelques changements, et voila, ca marche, voici la requete valide:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    INSERT INTO tquantite VALUES (quantite ('5', 
    ( SELECT ref(x) FROM tproduit x WHERE x.A = 'poto' ), 
    (SELECT ref(y) FROM tdftx y WHERE y.E = '1' )
    )
    );
    donc , merci bien le probleme est résolu.

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par elfive Voir le message
    Malheureusement jerome, votre dernier poste n’étais pas constructeur, ni utile pour résoudre mon problème.je me suis étonné, votre document ne contient pas des informations sur les objets référencés.
    À mon sens, il était constructif puisque vous avez chercher et trouver une solution par vous-même.

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

Discussions similaires

  1. Importer des objet 3d
    Par wikers dans le forum OpenGL
    Réponses: 4
    Dernier message: 25/02/2004, 15h43
  2. Réponses: 6
    Dernier message: 12/02/2004, 21h55
  3. [MFC] libération des objets GDI's
    Par Kevgeii dans le forum MFC
    Réponses: 5
    Dernier message: 01/02/2004, 10h37
  4. Créer des objets sur la pile ?
    Par Cornell dans le forum Langage
    Réponses: 8
    Dernier message: 03/03/2003, 11h47
  5. Importer des objets de 3dsMax
    Par Anonymous dans le forum OpenGL
    Réponses: 3
    Dernier message: 06/05/2002, 13h53

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