Rechercher : dans
Par :

Oracle: manipulation du curseur avec oracle

Dernière réponse le 11 sep 2009 à 17:01:09 hammag, le 11 sep 2009 à 15:48:20 
 Signaler ce message aux modérateurs

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:

Configuration: Windows XP
Firefox 3.0.13

Meilleures réponses pour « oracle: manipulation du curseur avec oracle » dans :
Oracle - Cycle de vie des curseurs VoirLa bonne compréhension du cycle de vie et du fonctionnement des curseurs, permet d’optimiser les applications exécutant des requêtes SQL. Les étapes lors de l’exécution d’un curseur sont les suivantes : Ouverture d’un curseur : une structure...
Changer l'aspect du curseur en CSS VoirLa propriété cursor permet de changer l'aspect du curseur sur un élément d'une page web. Le client affichera automatiquement le curseur de son ordinateur qui correspond au type de curseur que vous aurez choisi. Exemples Liste des attributs...
Connexion à une base Oracle en php Voir1. Périmètre Cet article est un exemple de connexion à une base Oracle par le biais d'un script php. Cet article ne traite pas la configuration de votre serveur Oracle, et de votre client Oracle. Nous partons du principe que vous pouvez accéder à...
Oracle - Les séquences VoirCet article s'appuie sur la version 8.1.6 d'Oracle. Une séquence est un objet de base de données Oracle, au même titre qu'une table, une vue, etc... Autrement dit, il appartient à un utilisateur, on peut le manipuler, le modifier, à condition...
Oracle - Introduction au SGBD Oracle VoirIntroduction au SGBD Oracle Oracle est un SGBD (système de gestion de bases de données) édité par la société du même nom (Oracle Corporation - http://www.oracle.com), leader mondial des bases de données. La société Oracle Corporation a été créée en...
Oracle - Les fichiers d'une base Oracle VoirLes fichiers physiques d'une base Oracle Les fichiers physiques d'une base Oracle permettent de stocker de manière persistante les données manipulées par Oracle, tandis que la mémoire sert à optimiser la vitesse de fonctionnement de la base de...

1

sandul, le 11 sep 2009 à 16:30:59

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 ?

++

Répondre à sandul

2

sandul, le 11 sep 2009 à 16:32:23

[Edit]

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

Répondre à sandul

3

hammag, le 11 sep 2009 à 16:44:39

Non, en fait je veux copier juste un champ de la table TAB1 : id,
les deux autre champs ne sont pas dans TAB1.

Répondre à hammag

4

sandul, le 11 sep 2009 à 16:47:42

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

Répondre à sandul

5

hammag, le 11 sep 2009 à 16:54:11

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;



?

Répondre à hammag

6

 sandul, le 11 sep 2009 à 17:01:09

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;

:-)

Répondre à sandul
Collection CommentÇaMarche.net