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 :

problème de dynamisme dans une procédure


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut problème de dynamisme dans une procédure
    voici mon code :

    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
     
    CREATE OR REPLACE PROCEDURE transaction_of_delete(l_commit_freq IN NUMBER) IS
    CURSOR c1 IS
    SELECT rowid FROM smf_closing_prices partition(P_SMF_SMFCP_20070305_D)
    WHERE tstp_typ_stat_price not in ('01','06','07');
    TYPE rowtab IS TABLE of rowid INDEX BY BINARY_INTEGER;
    id ROWTAB;	   
    BEGIN
    	LOOP
    		OPEN c1;
    		FETCH c1 BULK COLLECT INTO id LIMIT l_commit_freq;
    		IF (id.count=0) THEN
    		   EXIT;
    		END IF;
    		FORALL i IN id.FIRST..id.LAST
    			   DELETE FROM smf_closing_prices where rowid=id(i);
    		COMMIT;
    		CLOSE c1;
    	END LOOP;
    END transaction_of_delete;
    /
    Cela fonctionne sans prob! A savoir je travaille sous Oracle 8.1.7 et j'aimerais que cette procédure puisse recevoir la partition de la table que je veux traiter en paramètre. Comme vous le voyez pour le moment c'est statique excepté pour le bulk size.
    Qqun saurait-il m'aider?
    Merci

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    recherche EXECUTE IMMEDIATE sur le site

  3. #3
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut
    justement je suis occupé à chercher dans cette direction !
    esperons que je trouve!

  4. #4
    Membre habitué
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Par défaut
    voila g trouvé :

    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
     
    CREATE OR REPLACE PROCEDURE transaction_of_delete(l_partition IN VARCHAR2,
    	   	  		  								  l_commit_freq IN NUMBER) IS
     
    plsql_block VARCHAR2(1000);	   
    BEGIN
    	plsql_block := 'DECLARE CURSOR c1 IS '||
    				   'SELECT rowid FROM smf_closing_prices '||
    				   'PARTITION('||l_partition||') '||
    				   'WHERE tstp_typ_stat_price not in (''01'',''06'',''07''); '||
    				   'TYPE rowtab IS TABLE of rowid INDEX BY BINARY_INTEGER; '||
    				   'id ROWTAB; '||
    				   'BEGIN '||
    				   'LOOP '||
    				   'OPEN c1; '||
    				   'FETCH c1 BULK COLLECT INTO id LIMIT '||l_commit_freq||'; '||
    				   'IF (id.count=0) THEN '||
    				   'EXIT; '||
    				   'END IF; '||
    				   'FORALL i IN id.FIRST..id.LAST '||
    				   'DELETE FROM smf_closing_prices partition('||l_partition||') where rowid=id(i); '||
    				   'COMMIT; '||
    				   'CLOSE c1; '||
    				   'END LOOP; '||
    				   'END;';
    	EXECUTE IMMEDIATE plsql_block;
    END transaction_of_delete;
    /

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/08/2007, 11h02
  2. Réponses: 1
    Dernier message: 06/03/2007, 11h57
  3. Réponses: 1
    Dernier message: 20/07/2006, 17h03
  4. Réponses: 4
    Dernier message: 16/12/2005, 16h25
  5. Problème Alter view dans une procédure stockée
    Par adjava dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/07/2005, 17h45

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