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 :

Nombre de lignes


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 5
    Par défaut Nombre de lignes


    j'ai une procédure qui me retourne un curseur,
    y'a t'il une commande pour connaitre le nombre de ligne de mon curseur sans avoir à faire un FETCH ou apres avoir fait un PRINT du curseur dans fichier TXT

    Merci

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Avril 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Avril 2007
    Messages : 135
    Par défaut
    Bonjour,

    essaie curseur%rowcount :

    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
     
    SQL> declare
      2   cursor csr is select ename from emp;
      3   v_ename emp.ename%type;
      4  begin
      5   open csr;
      6   loop
      7    fetch csr into v_ename;
      8    exit when csr%notfound;
      9   end loop;
     10   dbms_output.put_line('Total :'||csr%rowcount);
     11   close csr;
     12  end;
     13  /
    Total :14
     
    PL/SQL procedure successfully completed.
    ou

    bulk collect

    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
     
    SQL> create or replace type type1 as table of varchar2(50);
      2  /
     
    Type created.
     
    SQL> declare
      2   t1 type1;
      3  begin
      4   select ename
      5   bulk collect into t1
      6   from emp;
      7   dbms_output.put_line('Total :' ||sql%rowcount);
      8  end;
      9  /
    Total :14
     
    PL/SQL procedure successfully completed.

  3. #3
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 5
    Par défaut
    Merci pour ta réponse, mais malheureusement je ne peux pas utiliser rowcount car ça m’oblige de faire un FETCH sur le curseur, et dans le deuxième cas je ne vois pas comment utiliser le bulk collect dans mon curseur

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Avril 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Avril 2007
    Messages : 135
    Par défaut
    Citation Envoyé par ANIS.AD Voir le message
    Merci pour ta réponse, mais malheureusement je ne peux pas utiliser rowcount car ça m’oblige de faire un FETCH sur le curseur, et dans le deuxième cas je ne vois pas comment utiliser le bulk collect dans mon curseur
    Malheureusement, il faut parcourir le curseur pour pouvoir le nombre de lignes traitées.

    Sinon si tu peux récupérer la requête de ton curseur, tu peux tenter un count(*) sur cette requête...

  5. #5
    Futur Membre du Club
    Inscrit en
    Août 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 5
    Par défaut
    Un COUNT m’oblige à avoir deux requêtes, et pour les maintenances, évolutions ou perfs, c’est difficiles à gérer surtout que c’est de grosse requêtes.
    Mais on faisons un Print du CURSEUR dans fichier TXT, il n’ya pas qlq chose qui me retourne le nombre de ligne

    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
    22
    23
    24
    25
    26
    27
    28
    29
     
    SET NEWPAGE 0
    SET SPACE 0
    SET PAGESIZE 0
    set linesize 2500
    SET ECHO OFF
    SET FEEDBACK OFF
    SET HEADING OFF
    SET MARKUP HTML OFF
    SET ESCAPE \
    Whenever sqlerror Exit Failure 
    WHENEVER SQLERROR EXIT SQL.SQLCODE;
     
    ---------------------------------------------------------------------------------------------------------------
    -- Génération des fichiers plats ENTREPRISE.TXT
    ---------------------------------------------------------------------------------------------------------------
    var p_curseur_ENTETE refcursor;
    var p_curseur refcursor;
    var p_curseur_FIN refcursor;
    var p_date DATE;
    COLUMN l_file new_value l_file
    p_date = &1
    execute PCK_EXPORT_SIERA_BASECO.PRC_ENTETE_FILE( '&1' , 'ENT', :p_curseur_ENTETE);
    execute PCK_EXPORT_SIERA_BASECO.PRC_EXPORT_ENTREPRISE_BIS ( '&1' , :p_curseur);
    SELECT 'base_commerciale_entreprise_'||to_char( to_date('&1') , 'YYYYMMDD' )||'.txt' l_file FROM dual;
    Spool &l_file
    print p_curseur_ENTETE
    print p_curseur
    spool off

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Avril 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études

    Informations forums :
    Inscription : Avril 2007
    Messages : 135
    Par défaut
    Citation Envoyé par ANIS.AD Voir le message
    Un COUNT m’oblige à avoir deux requêtes, et pour les maintenances, évolutions ou perfs, c’est difficiles à gérer surtout que c’est de grosse requêtes.
    Mais on faisons un Print du CURSEUR dans fichier TXT, il n’ya pas qlq chose qui me retourne le nombre de ligne
    L'option feedback permet l'affichage du nombre de lignes, donc au lieu depasse à

Discussions similaires

  1. Limiter le nombre de Ligne d'un RichEdit
    Par Argonz dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/07/2004, 10h16
  2. [SYBASE] nombre de ligne impactée par UPDATE
    Par metheorn dans le forum Sybase
    Réponses: 3
    Dernier message: 14/05/2004, 16h47
  3. determination le nombre de ligne d'une table
    Par picoti2 dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/03/2004, 09h25
  4. Réponses: 2
    Dernier message: 02/03/2004, 19h38
  5. [TListView] Compter le nombre de lignes
    Par agh dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/09/2002, 20h25

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