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 fetch d'un curseur dynamique dans une collection


Sujet :

Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Problème de fetch d'un curseur dynamique dans une collection
    je vous présente d'abord mon problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    CREATE OR REPLACE PROCEDURE transaction_of_delete(l_partition IN VARCHAR2,l_commit_freq IN NUMBER) IS
    TYPE c_partition_type_in IS REF CURSOR;
    c_partition_in c_partition_type_in;
    l_statement VARCHAR2(400);
    nbr NUMBER;
    BEGIN
    l_statement := 'SELECT ROWNUM FROM smf_closing_prices';
    OPEN c_partition_in FOR l_statement;
    fetch c_partition_in into nbr;
    close c_partition_in;
    END;
    Ceci fonctionne sans prob!
    Mais j'aimerais le fetcher dans une collection:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE OR REPLACE PROCEDURE transaction_of_delete(l_partition IN VARCHAR2,l_commit_freq IN NUMBER) IS
    TYPE c_partition_type_in IS REF CURSOR;
    c_partition_in c_partition_type_in;
    l_statement VARCHAR2(400);
    TYPE TYP_CLOSING_PRICES IS TABLE OF NUMBER;
    closing_prices_list TYP_CLOSING_PRICES;
    BEGIN
    l_statement := 'SELECT ROWNUM FROM smf_closing_prices partition('||l_partition||')';
    OPEN c_partition_in FOR l_statement;
    fetch c_partition_in bulk collect into closing_prices_list;
    close c_partition_in;
    END;
    Ceci me provoque une erreur à l'éxecution quand je lance la procédure!
    invalid cursor! comprends pas du tout, alors que j'ai regardé plusieurs documents!

    alors jai essayé sans cursor :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE OR REPLACE PROCEDURE transaction_of_delete(l_partition IN VARCHAR2,l_commit_freq IN NUMBER) IS
    l_statement VARCHAR2(400);
    TYPE TYP_CLOSING_PRICES IS TABLE OF NUMBER;
    closing_prices_list TYP_CLOSING_PRICES;
    BEGIN
    l_statement := 'select rownum from smf_closing_prices';
    execute immediate l_statement bulk collect into closing_prices_list;
    END;
    Et ceci me provoque une erreur à la compilation au niveau de l'execute immediate!
    bref je ne sais plus koi faire!
    est ce qqun saurait m'éclairer merci!

  2. #2
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Quelle version ?
    BULK COLLECT marche pas en 8.1.7

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2007
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Oracle8i Enterprise Edition Release 8.1.7.4.0

    ce serait donc ca?

    par contre quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    CREATE OR REPLACE PROCEDURE transaction_of_delete(l_partition IN VARCHAR2,l_commit_freq IN NUMBER) IS
    TYPE c_partition_type_in IS REF CURSOR;
    c_partition_in c_partition_type_in;
    TYPE TYP_CLOSING_PRICES IS TABLE OF NUMBER;
    closing_prices_list TYP_CLOSING_PRICES;
    BEGIN
    OPEN c_partition_in FOR SELECT ROWNUM FROM smf_closing_prices partition(P_SMF_SMFCP_20070305_D);
    fetch c_partition_in bulk collect into closing_prices_list;
    close c_partition_in;
    END;
    et la ca fonctionne sans prob! mais je préfererais ensuite que le cursor soit dynamique en ce qui concerne le l-partition. d'où la nécessité de le mettre entre ''. et à partir de ce moment la ca fonctionne plus!

Discussions similaires

  1. Problème de chargement d'un Clip dynamique dans un ScrollPane
    Par amamildor dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 10/06/2009, 14h59
  2. [Problème]Nombre et nom des champs dynamiques dans un form
    Par julienOriano dans le forum Struts 1
    Réponses: 17
    Dernier message: 10/04/2007, 15h32
  3. variable dynamique dans une fonction javascript
    Par Shivaneth dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/04/2005, 15h58
  4. [jsp] include dynamique dans une jsp
    Par petitelulu dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 04/03/2005, 07h59
  5. Réponses: 6
    Dernier message: 24/09/2004, 13h10

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