Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Interfaces de programmation
Interfaces de programmation Forum d'entraide sur l'utilisation des API Oracle : Pré-compilateurs, OCI, OCCI, etc.
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 20/02/2008, 09h37   #1
Membre à l'essai
 
Inscription : février 2006
Messages : 83
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 83
Points : 24
Points : 24
Par défaut [PRO*C] Appel procédure stockée

Bonjour à tous!
Serait-il possible d'appeller une procédure ou une fonction stockée dans une base oracle 9i à partir de pro*c?
Si oui, pouriez vous me donnée un exemple à titre de démonstration?

merci
ramaro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 11h44   #2
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
Bonjour

Exemple basique sans aucun contrôle :

Code :
1
2
3
4
5
6
7
 
 
    char sql[] = "BEGIN ma_procedure(:param1, :param2); END;";
 
    EXEC SQL PREPARE SP FROM :sql;
 
    EXEC SQL EXECUTE SP USING :var1, :var2;
__________________
Vincent Rogier.

Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

OCILIB (C Driver for Oracle)

Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 12h01   #3
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 319
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 319
Points : 5 837
Points : 5 837
Nul besoin du SQL dynamique
Code :
1
2
3
4
5
6
7
8
 
EXEC SQL EXECUTE
  BEGIN
    Mon_block_PL/SQL
  EXCEPTION
    Ma_gestion_des_exceptions_PL/SQL
  END;
END-EXEC;
Il faut faire attention aux paramètres pour passer/récupérer les variable Pro*C
(host variables)
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 12h25   #4
Rédacteur/Modérateur
 
Avatar de Vincent Rogier
 
vincent rogier
Inscription : juillet 2007
Messages : 2 355
Détails du profil
Informations personnelles :
Nom : vincent rogier
Âge : 34

Informations forums :
Inscription : juillet 2007
Messages : 2 355
Points : 3 108
Points : 3 108
Effectivement, nul besoin du SQL dynamique pour du pl/sql statique et effectivement ma réponse était incomplète.

Par contre, si le nom de ta procédure ou le contenu du block pl/sql n'est pas connu à l'avance, tu en as besoin.

Je suis donc plus nuancé que mnitu, je dirais donc tu as deux méthodes en fonction des besoins
__________________
Vincent Rogier.

Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

OCILIB (C Driver for Oracle)

Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle
Vincent Rogier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2008, 16h22   #5
Membre à l'essai
 
Inscription : février 2006
Messages : 83
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 83
Points : 24
Points : 24
ok! merçi pour vos réponses, je vais voir ça
ramaro 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 03h17.


 
 
 
 
Partenaires

Hébergement Web