IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Procédure <> procédure stockée ?


Sujet :

Oracle

  1. #1
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 319
    Points : 80
    Points
    80
    Par défaut Procédure <> procédure stockée ?
    salut,

    Quelle difference existent il entre une procedure et une procedure stocké ?

    Est ce que vous utiliser souvent des requetes dynamique ?curseur dynamique ?

    Merci à tous

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    une procédure est stockée lorsqu'elle est sauvegarder dans la base via CREATE PROCEDURE.

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par Fred_D
    une procédure est stockée lorsqu'elle est sauvegarder dans la base via CREATE PROCEDURE.
    une procédure est un programme pl/sql qui ne retourne rien (contrairement à une fonction qui retourne une valeur).

    tu peux trouver une procédure indépendante (create procedure), ou comme sous programme d'un package, voire comme sous programme d'une autre procedure ou d'un bloc anonyme (rare)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SCOTT@LSC01>  declare procedure p is begin null; end; begin p; end;
      2  /
     
    PL/SQL procedure successfully completed.
    dans la pratique, une procédure est toujours "stockée".

  4. #4
    Membre régulier
    Inscrit en
    Mars 2005
    Messages
    319
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 319
    Points : 80
    Points
    80
    Par défaut
    en gros une procedure est toujours stocké mais c'est la synthaxe qui change en fonction qu'elle soit dans un package ou dans un fichier .sql ?
    donc il n'y a pas de reel difference,sauf qu'une procedure stocké peut être appeler par n'importe et n'importe quand c'est bien cela (si on met une procedure dans un package on est obliger de lancer le package avant et la procedure stocker on peut la lancer directement)?

  5. #5
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par Melvine
    en gros une procedure est toujours stocké mais c'est la synthaxe qui change en fonction qu'elle soit dans un package ou dans un fichier .sql ?
    donc il n'y a pas de reel difference,sauf qu'une procedure stocké peut être appeler par n'importe et n'importe quand c'est bien cela (si on met une procedure dans un package on est obliger de lancer le package avant et la procedure stocker on peut la lancer directement)?
    non, une procédure de package peut tout aussi bien être appelée directement
    je pense qu'il s'agit de vocabulaire. On parle de "Java Stored Procedure", mais de "Procédure PL/SQL", le terme "PL/SQL stored procedure" n'apparait que rarement dans la doc.

    en gros, c'est bonnet blanc blanc bonnet

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    je crois qu'il y a une incompréhension là... Melvine a parfaitement raison, le code PL/SQL (la procédure) peut être appelé dans un fichier ou dans la base lorsqu'il est stockée... dans ce cas c'est une procédure stockée.

  7. #7
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par Fred_D
    je crois qu'il y a une incompréhension là... Melvine a parfaitement raison, le code PL/SQL (la procédure) peut être appelé dans un fichier ou dans la base lorsqu'il est stockée... dans ce cas c'est une procédure stockée.
    Fred, alors à ton sens il serait correct d'appeler un bloc anonyme une "procédure non-stockée" ? Ce n'est pas très rigoureux à mon goût

  8. #8
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    exactement, une procédure est ni plus ni moins qu'un code PL/SQL qui n'a aucune valeur de retour. Ceci étant... le terme n'existe pas

    On parle de procédure stockée ou code PL/SQL... la procédure "non stockée" n'existe pas dans le vocabulaire Oracle

  9. #9
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    en fait on parle de PROCEDURE tout court 8)

  10. #10
    Membre éprouvé Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Points : 931
    Points
    931
    Par défaut
    Citation Envoyé par laurentschneider
    ...
    Fred, alors à ton sens il serait correct d'appeler un bloc anonyme une "procédure non-stockée" ? Ce n'est pas très rigoureux à mon goût
    il y a non-sens là non !?
    une procédure est forcément nommée; donc elle porte un nom !
    Alors qu'un bloc ANONYME n'a pas de nom !

  11. #11
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Yorglaa
    une procédure est forcément nommée; donc elle porte un nom !
    Alors qu'un bloc ANONYME n'a pas de nom !
    Non, un bloc anonyme est un fichier, et ce fichier a un nom.
    En fait ne devrait-on pas dire "procédure pré-compilée", et "non compilée" ?

  12. #12
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Vous vous prenez bien la tête !

    Une procédure est dite stockée lorsqu'elle est ...... stockée en base et donc persistante!
    Sinon, elle est déclarée dans un bloc anonyme et ne persiste que le temps de son utilisation dans le bloc.

  13. #13
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SQL> exec null
     
    PL/SQL procedure successfully completed.
    le feedback ci-dessus est bien déroutant... il laisse croire qu'un bloc anonyme est une procédure (pas stockée).

    Juste une question de vocabulaire et de prise de tête aussi :idc:

  14. #14
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut

    http://www.alaide.com/dico.php?q=proc%E9dure&ix=3742
    Procédure
    Manière de procéder d'exécuter une activité ou un processus pour aboutir à un certain résultat. Document décrivant la manière d'accomplir une activité ou un processus.

    Une procédure comporte l'objet et le domaine d'application de l'activité ou du processus et décrit :

    * ce qui doit être fait ;

    * qui doit le faire ;

    * quand, où, comment cela doit être fait ;

    * quels moyens doivent être utilisés ;

    * comment cela doit être enregistré et maîtrisé.
    M'enfin... je dis ça moi... je dis rien... c'est juste pour faire avancer le schimilibilick !

  15. #15
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Pro .. C'est dur !!!

  16. #16
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    plus spécifique à oracle
    http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/procedure_declaration.htm
    et
    http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/subprograms.htm#i4075

    Une procédure est un sous-programme qui exécute des actions spécifiques. Tu spécifies le nom de la procédure, ses paramètres, ses variables locales, et le block BEGIN-END qui contient son code et gère ses exceptions....

  17. #17
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    Citation Envoyé par pifor
    Pro .. C'est dur !!!

  18. #18
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 88
    Points : 95
    Points
    95
    Par défaut
    Citation Envoyé par laurentschneider
    ...

    une procédure est un programme pl/sql qui ne retourne rien (contrairement à une fonction qui retourne une valeur).
    ...
    Je pinaille peut-être, mais les paramètres OUT, ne sont-ils pas considérés comme valeur de retour ?

    @+,
    NicK.

  19. #19
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Points : 4 926
    Points
    4 926
    Par défaut
    selon moi non, mais c'est discutable ;-)

Discussions similaires

  1. [WD12] Utiliser des variables d'une procédure dans autre procédure
    Par karim15 dans le forum WinDev
    Réponses: 2
    Dernier message: 17/04/2012, 08h05
  2. appel d'une procédure dans une procédure
    Par breizh76 dans le forum PL/SQL
    Réponses: 2
    Dernier message: 23/03/2010, 15h47
  3. Réponses: 2
    Dernier message: 28/05/2009, 11h40
  4. Procédure dans une procédure
    Par sam01 dans le forum z/OS
    Réponses: 2
    Dernier message: 20/10/2008, 20h40
  5. [SQLServer] Traitement procédure dans une procédure
    Par vinze11 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/01/2007, 10h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo