Ecrire en PL/SQL une procédure de lookup
igo
-
batmat Messages postés 1871 Statut Membre -
batmat Messages postés 1871 Statut Membre -
Débutante en PL/SQL j'aimerais savoir comment écrire une procédure qui fait un lookup c-à-d elle récupère un code (dans une table) en fonction du nom (lue dans une autre table). Exemple:
j'ai une table de référence t1 qui contient le code et le nom des fournisseurs et une table t2 qui n'a que le nom: je voudrais dans t2 alimenter le champ code_four en lisant dans t2 le nom et en allant récupérer dans t1 le code correspondant à ce nom.
Comment écrire cette procédure?
Merci d'avance.
j'ai une table de référence t1 qui contient le code et le nom des fournisseurs et une table t2 qui n'a que le nom: je voudrais dans t2 alimenter le champ code_four en lisant dans t2 le nom et en allant récupérer dans t1 le code correspondant à ce nom.
Comment écrire cette procédure?
Merci d'avance.
A voir également:
- Ecrire en PL/SQL une procédure de lookup
- Ecrire en gras sur whatsapp - Guide
- Écrire en majuscule - Guide
- Ecrire en miroir - Guide
- Comment écrire # sur pc - Guide
- Application pour écrire les chiffre en lettre - Télécharger - Outils professionnels
8 réponses
Tu veux une procédure => avec le code en paramètre OUT
ou une fonction => tu retournes le code ?
@++
Poster, poster encore et toujours :-)
ou une fonction => tu retournes le code ?
@++
Poster, poster encore et toujours :-)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Petit pb : quelle est la clé primaire de chacune de tes tables. Indique aussi plutot le schéma ce sera plus clair
exemple
nom_table(champ1, champ2, ..., champn)
Avec les champs soulignés étant les clés primaires. Dès que tu dis ça et que tu réponds aux questions posées, je te donne le code complet de ce que tu veux. :)
@++
Poster, poster encore et toujours :-)
exemple
nom_table(champ1, champ2, ..., champn)
Avec les champs soulignés étant les clés primaires. Dès que tu dis ça et que tu réponds aux questions posées, je te donne le code complet de ce que tu veux. :)
@++
Poster, poster encore et toujours :-)
Hello Batman
voici le schéma:
t1(code_four, nom_four) la clé est code_four
t2(nom_four, code_four, sim) pas de clé
Je pense que c'est une proc de MAJ et je voudrais l'écrire en PL/SQL sur SQL server.
Merci
voici le schéma:
t1(code_four, nom_four) la clé est code_four
t2(nom_four, code_four, sim) pas de clé
Je pense que c'est une proc de MAJ et je voudrais l'écrire en PL/SQL sur SQL server.
Merci
Supposons que tu n'as pas deux fournisseurs avec le même nom...
Là je te donne la procédure qui te renvoie un code en fonction d'un nom de fournisseur (en fait, c ta première quetion).
(Si tu veux, il est bien entendu aussi possible de ne passer aucun
paramètre et de mettre directement la table t2 à jour)
Plusieurs choses :
- si plusieurs fournisseurs ont le meme nom et que tu passes ce nom, tu vas recevoir l'exception TOO_MANY_ROWS. Tu peux toutefois l'intercepter avec un bloc exception
- Tu fais quoi de la table t2, pasque dans le cas présent elle ne sert à rien...
@++
Poster, poster encore et toujours :-)
Là je te donne la procédure qui te renvoie un code en fonction d'un nom de fournisseur (en fait, c ta première quetion).
(Si tu veux, il est bien entendu aussi possible de ne passer aucun
paramètre et de mettre directement la table t2 à jour)
procedure lenomquetuveux(nomf varchar2, codef out varchar2)
IS
BEGIN
SELECT code_four into codef
FROM t1
WHERE nom_four=nomf;
END;
Plusieurs choses :
- si plusieurs fournisseurs ont le meme nom et que tu passes ce nom, tu vas recevoir l'exception TOO_MANY_ROWS. Tu peux toutefois l'intercepter avec un bloc exception
- Tu fais quoi de la table t2, pasque dans le cas présent elle ne sert à rien...
@++
Poster, poster encore et toujours :-)