MAJ d'une table sous SQL Server par insertion
Fermé
igo
-
11 juin 2003 à 12:11
batmat Messages postés 1871 Date d'inscription jeudi 1 novembre 2001 Statut Membre Dernière intervention 9 janvier 2008 - 11 juin 2003 à 15:22
batmat Messages postés 1871 Date d'inscription jeudi 1 novembre 2001 Statut Membre Dernière intervention 9 janvier 2008 - 11 juin 2003 à 15:22
A voir également:
- MAJ d'une table sous SQL Server par insertion
- Table ascii - Guide
- Table des matières word - Guide
- È maj - Guide
- Maj chrome - Accueil - Applications & Logiciels
- Ps3 media server - Télécharger - Divers Réseau & Wi-Fi
3 réponses
batmat
Messages postés
1871
Date d'inscription
jeudi 1 novembre 2001
Statut
Membre
Dernière intervention
9 janvier 2008
114
11 juin 2003 à 13:01
11 juin 2003 à 13:01
C koi comme langage de script ??? pasque en SQL pur, c pas possible... En PHP, en PL/SQL ça l'est mais après ya ptete d'autre solution
@++
Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?
@++
Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?
batmat
Messages postés
1871
Date d'inscription
jeudi 1 novembre 2001
Statut
Membre
Dernière intervention
9 janvier 2008
114
11 juin 2003 à 14:51
11 juin 2003 à 14:51
AAAAh ben alors t'es bien tombé, pasque le PL/SQL c mon dada :) Non sérieusement, j'en bouffe depuis un mois, alors ya pas de pb ;-p
Là chui au boulot, donc chpeux pas trop passer du temps à ton algo, déblaie donc au moins l'algo, répond moi avec le pseudo-code auquel tu penses, donne des précisions si tu le juges utile et je te dis comment coder ce soir (vers 19h00, désolé, chpeux pas avant, j'espère que c pas aujourd'hui)
@++
Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?
Là chui au boulot, donc chpeux pas trop passer du temps à ton algo, déblaie donc au moins l'algo, répond moi avec le pseudo-code auquel tu penses, donne des précisions si tu le juges utile et je te dis comment coder ce soir (vers 19h00, désolé, chpeux pas avant, j'espère que c pas aujourd'hui)
@++
Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?
Hello Batman,
Je te remercie pour ta disponibilité. J'ai trouvé et testé avec succès le code PL/SQL. Mais, je travaille sous SQL Server et il y a des nuances. Donc je suis en train de transcrire le code ci-dessus en SQL de SQL Server, ce qui n'est pas simple car je suis novice dans le PL/SQL, mais bon je commence à voir le bout du tunnel. Si j'y arrive, je te fais signe.
CREATE OR REPLACE PROCEDURE superProcedure
IS
enreg INFRA.nom_client%type;
mavar varchar2(10);
CURSOR c1
Is
select distinct(nom_client) from INFRA where nom_client NOT IN (select client from CLIENT);
BEGIN
select max(code) into mavar from CLIENT;
OPEN c1;
LOOP
FETCH c1 INTO enreg;
EXIT WHEN c1%NOTFOUND;
mavar:=mavar+1;
INSERT INTO CLIENT values (mavar, enreg);
END LOOP;
CLOSE c1;
COMMIT;
END;
/
SHOW ERROR;
EXECUTE superProcedure ;
Je te remercie pour ta disponibilité. J'ai trouvé et testé avec succès le code PL/SQL. Mais, je travaille sous SQL Server et il y a des nuances. Donc je suis en train de transcrire le code ci-dessus en SQL de SQL Server, ce qui n'est pas simple car je suis novice dans le PL/SQL, mais bon je commence à voir le bout du tunnel. Si j'y arrive, je te fais signe.
CREATE OR REPLACE PROCEDURE superProcedure
IS
enreg INFRA.nom_client%type;
mavar varchar2(10);
CURSOR c1
Is
select distinct(nom_client) from INFRA where nom_client NOT IN (select client from CLIENT);
BEGIN
select max(code) into mavar from CLIENT;
OPEN c1;
LOOP
FETCH c1 INTO enreg;
EXIT WHEN c1%NOTFOUND;
mavar:=mavar+1;
INSERT INTO CLIENT values (mavar, enreg);
END LOOP;
CLOSE c1;
COMMIT;
END;
/
SHOW ERROR;
EXECUTE superProcedure ;
batmat
Messages postés
1871
Date d'inscription
jeudi 1 novembre 2001
Statut
Membre
Dernière intervention
9 janvier 2008
114
11 juin 2003 à 15:22
11 juin 2003 à 15:22
Pour les curseurs, je te conseille plutot l'utilisation implicite (quoique moi jfais du vrai PL/SQL :-) sous Oracle, et je sais pas si cette fonctionnalité est sous SQL/server) :
ici, ça donnerait :
1) tu ne déclares par enreg
2) tu écris à la place de la LOOP, FETCH
ça clarifie déjà un peu, non ? :)
@++
Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?
ici, ça donnerait :
1) tu ne déclares par enreg
2) tu écris à la place de la LOOP, FETCH
FOR enreg IN c1
LOOP
mavar := mavar + 1;
INSERT INTO CLIENT values (mavar, enreg);
END LOOP;
ça clarifie déjà un peu, non ? :)
@++
Vous hésitez entre Linux et Windows?
Vous voulez dépenser du temps ou de l'argent ?
11 juin 2003 à 13:53
Le langage est le PL/SQL dans lequel je suis novice.
Merci