Les Allergies
Alimentaires
Posez votre question Signaler

Oracle: manipulation du curseur avec oracle

hammag - Dernière réponse le 11 sept. 2009 à 17:01
bonjour,
voici mon problème :
je cherche à remplir avec des données une table TAB2, cette dernière table contient un champ id que je doit le récuperer dans une autre table TAB1.
j'ai cherché sur le web et j'ai trouvé que le curseur est la réponse à ma question. Donc, j'ai essayé avec cette requête :
[CODE]
DECLARE id varchar(10); CURSOR curseur1 IS SELECT oprid FROM TAB1;
BEGIN
OPEN curseur1;
LOOP
FETCH curseur1 INTO id;
insert into TAB2 ('xxx', id, 'yyy')
EXIT WHEN curseur1%NOTFOUND;
END LOOP;
END;
/CODE
mais ca marche pas,
svp, j'ai besoin d'aide:help:
Lire la suite 

Oracle: manipulation du curseur avec oracle »

6 réponses
Réponse
+0
moins plus
Salut,

Corrige ceci:
insert into TAB2 ('xxx', id, 'yyy') ;
(point-virgule à la fin)

Sinon, pourquoi ne pas utiliser simplement un
insert into TAB2 (col1, col2, col3) select ('xxx', id, 'yyy') from TAB1
où col1, col2 et col3 sont les noms des 3 colonnes conernées ?

++
Ajouter un commentaire
Réponse
+0
moins plus
[Edit]

insert into TAB2 (col1, col2, col3) select ('xxx', oprid, 'yyy') from TAB1
Ajouter un commentaire
Réponse
+0
moins plus
non, en fait je veux copier juste un champ de la table TAB1 : id,
les deux autre champs ne sont pas dans TAB1.
Ajouter un commentaire
Réponse
+0
moins plus
Justement c'est pour cela que je les ai mis entre quotes. Ce ne sont pas des colonnes de TAB1 mais des constantes. On peut très bien avoir une table TAB1 ayant une seule colonne (oprid) et faire un select retournant 3 colonnes comme ci-dessus
Ajouter un commentaire
Réponse
+0
moins plus
ok merci,

mais cette fois j'ai l'erreur :
Error report:
SQL Error: ORA-00907: Parenthèse de droite absente
00907. 00000 - "missing right parenthesis"
*Cause:

pourtant la requête est bone :

insert into TAB2 (col1, col2, col3) select ('xxx', oprid, 'yyy') from TAB1;



?
Ajouter un commentaire
Réponse
+0
moins plus
oups, on va s'occuper des parenthèses, il y en a trop :

insert into TAB2 (col1, col2, col3) select 'xxx', oprid, 'yyy' from TAB1;

:-)
Ajouter un commentaire
Ce document intitulé « oracle: manipulation du curseur avec oracle » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?