Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/12/2011, 11h58   #1
Invité régulier
 
fontaine - statut doré - pièces
jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Inscription : septembre 2010
Messages : 56
Détails du profil
Informations personnelles :
Nom : fontaine - statut doré - pièces

Informations professionnelles :
Activité : jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2010
Messages : 56
Points : 6
Points : 6
Par défaut Création de fonction PL/SQL

bonjour,

je suis débutant en pl/sql.

je veux créer une fonction que je vais appeler char calculateur( int var ).
cette fonction prend la valeur de l'argument var et le traite ensuite il retourne en chaîne de caractères

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
char calculateur( int variable ) {
 
int var1, var2, var3;
 
var1 = 1*power(2,12); var2 = 2*power(2,12);
var3 = 3*power(2,12); 
 
IF ( variable >= var1 && variable < var2  ) {
 
char chaine1; chaine1="Partie-1"; 
 
RETURN chaine1;
 
}
 
IF ( variable >= var2 && variable < var3  ) {
 
char chaine1; chaine1="Partie-2"; 
 
RETURN chaine1;
 
}
 
}
ensuite il y a une fonction sql qui va utliliser cette foncion calculateur(...)

Code :
1
2
3
 
 
SELECT calculateur( champ1 ) FROM table1 WHERE identify=5;

alors que dois-je faire pour pouvoir réaliser ?

sincères mercis
lastmagik
lastmagik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 12h38   #2
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 446
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 446
Points : 7 546
Points : 7 546
Ce tutoriel te donnera la syntaxe des déclarations en langage PL/SQL.
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 13h37   #3
Invité régulier
 
fontaine - statut doré - pièces
jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Inscription : septembre 2010
Messages : 56
Détails du profil
Informations personnelles :
Nom : fontaine - statut doré - pièces

Informations professionnelles :
Activité : jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2010
Messages : 56
Points : 6
Points : 6
Par défaut remerciements

bonjour al1_24,

je vais voir et étudier le lien.
merci beaucoup.

sincères mercis
lastmagik
lastmagik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 14h41   #4
Invité régulier
 
fontaine - statut doré - pièces
jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Inscription : septembre 2010
Messages : 56
Détails du profil
Informations personnelles :
Nom : fontaine - statut doré - pièces

Informations professionnelles :
Activité : jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2010
Messages : 56
Points : 6
Points : 6
Par défaut souhait

bonjour,

si on pourrait me proposer la solution du code que j'ai donné au début çà va beaucoup m'aider à évoluer de voir vite et comment çà fonctionne.

sincères mercis
lastmagik
lastmagik est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 19/12/2011, 17h09   #5
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 440
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 440
Points : 4 183
Points : 4 183
C'est pas sur, le but est d'apprendre.
je vais faire simple comme exemple
Code :
1
2
3
4
5
6
7
CREATE OR REPLACE FUNCTION calculateur (p_var IN NUMBER) RETURN VARCHAR2
IS 
 v_chaine VARCHAR2(255);
BEGIN
 v_chaine := 'Hello World '|| p_var;
 RETURN v_chaine;
END;
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 12h21   #6
Invité régulier
 
fontaine - statut doré - pièces
jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Inscription : septembre 2010
Messages : 56
Détails du profil
Informations personnelles :
Nom : fontaine - statut doré - pièces

Informations professionnelles :
Activité : jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2010
Messages : 56
Points : 6
Points : 6
Par défaut apprendre pl sql = OUI

bonjour à tous et à McM,

pour commencer facilement.
faisons cette code en pl sql.


Code :
1
2
3
4
5
6
7
8
 
int calculateur( int a )
{
int b; b= 4*(pow(2,3))*( 2*a ) / 3;
RETURN b;
}
 
SELECT calculateur( champ1 ) FROM table1 WHERE identify=5;
je serai très reconnaissant ;-)

sincères mercis
michaël
lastmagik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 16h09   #7
Modérateur
 
Avatar de al1_24
 
Homme Alain
Ingénieur d'études décisionnel
Inscription : mai 2002
Messages : 4 446
Détails du profil
Informations personnelles :
Nom : Homme Alain
Âge : 51
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur d'études décisionnel
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 4 446
Points : 7 546
Points : 7 546
Montre nous ce que tu as commencé à faire, nous pourrons alors t'aider à corriger les erreurs.
__________________
Modérateur Langage SQL
Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
N'oubliez pas le bouton et pensez aux balises [code]
Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
al1_24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 07h41   #8
Invité régulier
 
fontaine - statut doré - pièces
jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Inscription : septembre 2010
Messages : 56
Détails du profil
Informations personnelles :
Nom : fontaine - statut doré - pièces

Informations professionnelles :
Activité : jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2010
Messages : 56
Points : 6
Points : 6
Par défaut bonjour

bonjour à tous et à al1_24,

je veux créer une fonction qui sera réutiliser dans la requête select.
mais le probleme est que je ne sais pas comment écrire une fonction en pl sql.

par exemple :
Code :
1
2
3
4
5
6
 
int calculateur( int a )
{
int b; b= 4*(pow(2,3))*( 2*a ) / 3;
RETURN b;
}
si tu peux donner l'équivalent de cette fonction en pl sql.

sincères mercis
lastmagik
lastmagik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 09h08   #9
Membre chevronné
 
Avatar de pinocchio
 
Homme François
Développeur informatique
Inscription : novembre 2002
Messages : 773
Détails du profil
Informations personnelles :
Nom : Homme François
Âge : 35
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Service public

Informations forums :
Inscription : novembre 2002
Messages : 773
Points : 787
Points : 787
Ton souci est que tu n'auras aucune réponse actuellement.
Comme indiqué précédement, c'est un forum d'aide.
Montre ce que tu as fais et ce sur quoi tu as un problème.
McM t'a donné la structure de ta fonction, tu ne fais même pas l'effort de la reprendre et tu nous remets ta fonction d'origine.
__________________
La SNCF est mon ami
blog PARIS-GRANVILLE
Inscription au panel IPSOS (possibilité d'avoir des bons d'achats)
pinocchio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 09h41   #10
Invité régulier
 
fontaine - statut doré - pièces
jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Inscription : septembre 2010
Messages : 56
Détails du profil
Informations personnelles :
Nom : fontaine - statut doré - pièces

Informations professionnelles :
Activité : jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2010
Messages : 56
Points : 6
Points : 6
Par défaut code de McM

bonjour à tous et à pinocchio,

j'ai déjà éxécuté le code venant de McM mais le code n'a pas réagi.
ci-dessous le résultat :

Code :
1
2
3
4
5
6
7
8
9
10
 
 
SQL> CREATE OR REPLACE FUNCTION calculateur (p_var IN NUMBER) RETURN VARCHAR2
  2  IS
  3  v_chaine VARCHAR2(255);
  4  BEGIN
  5  v_chaine := 'Hello World '|| p_var;
  6  RETURN v_chaine;
  7  END;
  8
sincères mercis
lastmagik
lastmagik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 10h24   #11
Rédacteur
 
Inscription : décembre 2002
Messages : 2 389
Détails du profil
Informations personnelles :
Localisation : France, Var (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : décembre 2002
Messages : 2 389
Points : 3 276
Points : 3 276
Il ne faut pas confondre créer une fonction et exécuter une fonction.
Tant que vous n'appelez pas cette fonction, il ne se passe rien !

Code :
SELECT calculateur FROM dual;
__________________
Consultant / formateur Oracle indépendant
Certifié OCP 10g et 11g, sécurité 11g
Pomalaix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2011, 10h42   #12
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 440
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 440
Points : 4 183
Points : 4 183
Il faut un / à la ligne 8 pour compiler en sqlplus.
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h09.


 
 
 
 
Partenaires

Hébergement Web