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

PL/SQL Oracle Discussion :

Procédure plsql paramétrée


Sujet :

PL/SQL Oracle

  1. #1
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 49
    Par défaut Procédure plsql paramétrée
    Bonjour les amis ,

    je sollicite votre aide !j'aimerais bien paramétrée une procédure plsql déjà testée mais sans paramétres maintenant je veux la paramétrer de sorte que le dblink (@bdprod) soit en paramétre comment dois je faire ?
    voilà ma procédure plsql :

    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
    26
    27
    28
    29
    30
    31
    32
    33
    CREATE OR REPLACE PROCEDURE ProcSynSection
    IS
     
      u          pls_integer := 0 ;
      j          pls_integer := 0 ;
      i          pls_integer := 0 ;
      SeqNbrMax             Number;
       BEGIN
          FOR r IN ( SELECT * FROM SECTIONTYPE )
          LOOP
              UPDATE SECTIONTYPE@BDPROD tgt
              SET    tgt.SECTIONTYPENAME = r.SECTIONTYPENAME,
                     tgt.SECTIONTYPEDESC = r.SECTIONTYPEDESC 
             WHERE   tgt.SECTIONTYPEID_PK=r.SECTIONTYPEID_PK  ;
         END LOOP;   
          select count(*) into i from sectiontype  where sectiontypeid_pk not in (select sectiontypeid_pk from sectiontype@bdprod );
          select count(*) into j from sectiontype@bdprod  where sectiontypeid_pk not in (select sectiontypeid_pk from sectiontype);
               IF i > 0 THEN
               select min (sectiontypeid_pk) into from sectiontype  where sectiontypeid_pk not in (select sectiontypeid_pk from sectiontype@bdprod );
               if SeqNbrMax > 0 THEN 
              Execute Immediate 'drop sequence BDPROD.SECTIONTYPE_SEQ ' ;
              Execute Immediate 'create  sequence  BDPROD.SECTIONTYPE_SEQ start with ' || SeqNbrMax;
              Execute Immediate 'alter  sequence  BDPROD.SECTIONTYPE_SEQ increment by 1 ' ;
              insert into SECTIONTYPE@BDPROD 
                select * from sectiontype  where sectiontypeid_pk not in (select sectiontypeid_pk from sectiontype@bdprod );
                END IF;
               End IF ;
               if  j >0 then 
               delete from sectiontype@bdprod  where sectiontypeid_pk not in (select sectiontypeid_pk from sectiontype);
               END IF ;
         commit ;
        END ;

  2. #2
    Invité
    Invité(e)
    Par défaut
    Pour ce faire, utilisez le SQL dynamique : http://sheikyerbouti.developpez.com/execute_immediate/

  3. #3
    Membre averti
    Inscrit en
    Mars 2011
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 49
    Par défaut
    merciiiiiii bcp

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 08/11/2005, 16h43
  2. [Débutant]Procédure avec paramètres entrée / sortie
    Par jeromejanson dans le forum Langage
    Réponses: 13
    Dernier message: 10/10/2005, 08h30
  3. Comment passer une procédure en paramètre ?
    Par gudul dans le forum Langage
    Réponses: 4
    Dernier message: 30/09/2005, 13h57
  4. Passage d'un type procédure en paramètre par défaut
    Par Floverdoz dans le forum Langage
    Réponses: 1
    Dernier message: 22/07/2005, 17h48
  5. Passer une procédure en paramètre ?
    Par Cornell dans le forum Langage
    Réponses: 2
    Dernier message: 24/10/2003, 12h21

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