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 stockée et curseur


Sujet :

PL/SQL Oracle

  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2013
    Messages : 106
    Par défaut Procédure stockée et curseur
    Bonjour Oracle pro,

    je serais reconnaissante si vous pouvez me dire si mon code pl/sql est valide :

    j'ai une table temporaire kpi.http_ods et j'ai une table kpi.http qui doit être populée par les données de la table kpi.http_ods
    pour atteindre mon objectif j'ai utilisé une procédure stockée

    create or replace procedure kpi.http_modif is

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    CURSOR c_http is 
    select 
       HOST                        
      ,DATE_HTTP                
      ,NBYTEDN                  
      ,NBSESSTCP                
      ,kpi.unite_s(AVG_SYN_SYNACK)    
      ,kpi.unite_s(AVG_SYNACK_ACK)    
      ,kpi.sum_s(AVG_SYN_SYNACK, AVG_SYNACK_ACK) 
      ,kpi.unite_s(DELAYREQANS)    
      ,NBGET          
      ,NBPOST          
      ,OTHERREQ        
      ,NB1XX           
      ,NB2XX           
      ,NB3XX           
      ,NB4XX           
      ,NB5XX           
      ,NBOTHERANS      
    from kpi.http_ods;
     
    TYPE array_http is table of c_http%rowtype;
    http_data array_http;
     
    begin
     
     open c_http;
     
         loop 
              fetch c_http
              bulk collect into http_data
              limit 1000;
     
              begin 
                 for i in 1..http_data.count
                 insert into kpi.http 
                 values http_data(i);
              end;
     
             exit when c_http%notfound;
         end loop;
     close c_http;
     
    end kpi.http_modif;
    merci pour votre aide appréciée,

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    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 : 5 611
    Par défaut
    La meilleure solution est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    insert into t2
    Select * from t1
    .
    Sinon en utilisant des collections il y a deux choses à noter:
    • utilisation de forall à la place de for
    • sortie de boucle quand Count de la collection inférieur à la taille du lot (1000 dans ce cas).

Discussions similaires

  1. Optimisation Procédure stocké utilisant 2 curseurs
    Par m-mas dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 23/02/2007, 09h27
  2. Appel d'une procédure stockée avec un curseur
    Par lapanne dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/12/2006, 16h24
  3. Procédure stockée et curseur
    Par sandrim dans le forum ASP
    Réponses: 2
    Dernier message: 02/10/2006, 16h09
  4. Erreur procédure stockée : curseur read only
    Par Oluha dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/11/2005, 09h50
  5. Procédure stockée avec retour de curseur
    Par Oufti dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 07/11/2005, 22h40

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