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 :

[Cursor/Function]Comment faire correctement la mise en place


Sujet :

Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 10
    Points : 8
    Points
    8
    Par défaut [Cursor/Function]Comment faire correctement la mise en place
    Voici m'a fonction et un curseur est ce que quelqu'un pourrai m'expliquer comment faire clairement le truc
    Merci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     CREATE OR REPLACE Function Repdossier (w_dossier, w_soccible) return string;
    is 
    resultat
    Begin
     
    update	ADMINISTRATIF	set	ACTID	= w_soccible	where dosid=w_dossier;
     
    update	 DOSSIER	set	ACTIDGESTION	= w_soccible	where dosid=w_dossier;
     
    update	LKDOSRUBPOOACT	set	ACTID	= w_soccible	where dosid=w_dossier;
     
    update	TVADECLARATION	set	ACTID	= w_soccible	where actid=w_actid;
     
    update	TVA	        set	ACTID	= w_soccible	where dosid=w_dossier;
     
    update	TVADETAIL	set	ACTID   = w_soccible    where dosid=w_dossier;
     
    update	AUDITECRITURE	set	AECACTCODESC = w_soccible	where dosid=w_dossier;
     
    update	AUDITECRITURE	set	AECEMPACTCODESOC = w_soccible	where dosid=w_dossier;


    ET maintenant le curseur


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Declare 
     
    Cursor CActeur is Select Actid from     where dosid = w_dossier;
     
    w_act  Varchar;
     
     
    Begin
     
    	Open Cacteur;
     
     
    		Loop
     
     
    			Fetch CActeur into w_act
    			exit when (CActeur%Notfound)
     
    		End loop;
     
    	close CActeur;
     
     
     
    End;

  2. #2
    Membre éclairé Avatar de plabrevo
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 547
    Points : 670
    Points
    670
    Par défaut
    Dans la fonction stockee:
    • - je pense que c'est une typo, il manque un "END;",
      - resultat est une variable declaree sans utilite,
      - il n'est pas optimal de placer deux updates avec les meme clauses de recherche, lorsqu'un seul suffirait,
      - personnellement, je n'aime pas les update simple sans alimentation de colonnes d'audit et de trace (qui a mis a jour et quand).

    Dans le bloc anonyme
    • - la variable w_dossier est sans doute importante mais n'est visiblement pas alimentee correctement,
      - Manque un ';' apres la fonction exit,
      - Sans doute que l'appel a la fonction, si c'est la question posee, devra etre place avec le test EXIT de fin de boucle.

    Essaye d'executer ce code dans une base oracle et les problemes de syntaxes devraient clairement apparaitre. L'instruction pour afficher les erreurs est SHOW ERROR, a placer a la fois apres la comnande de creation de la fonction et celle d'execution du bloc anonyme.

    Bon courage.

Discussions similaires

  1. [WD-2007] Comment faire de la mise en forme et mise en page ?
    Par siempre dans le forum Word
    Réponses: 1
    Dernier message: 12/03/2011, 20h35
  2. Réponses: 3
    Dernier message: 11/04/2009, 04h27
  3. TIBDataSet comment faire de la mise à jour avec jointure
    Par uluru dans le forum Connexion aux bases de données
    Réponses: 8
    Dernier message: 08/07/2006, 10h09
  4. Réponses: 11
    Dernier message: 02/06/2006, 11h35
  5. Comment faire une variable de session correctement
    Par Battosaiii dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 10/04/2006, 21h46

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