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 :

cursor pl/sql parametré


Sujet :

PL/SQL Oracle

  1. #1
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 44
    Par défaut cursor pl/sql parametré
    Bonjour à tous,


    est ce qu'on peut avoir le code pl/sql suivant:

    cursor cc (param varchar2)
    is select xxx from param;

    le paramètre du curseur est la table à partir de laquelle on veut faire une sélection.


    Merci c trop urgent

  2. #2
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    Bonjour,

    Vous pouvez essayer ca :

    Code sql : 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
     
    CREATE OR REPLACE PACKAGE test_pack
    IS
       TYPE rcur IS REF CURSOR;
     
       FUNCTION test_func (tab_name user_tables.table_name%TYPE)
          RETURN rcur;
    END;
    /
     
    CREATE OR REPLACE PACKAGE BODY test_pack
    IS
       FUNCTION test_func (tab_name user_tables.table_name%TYPE)
          RETURN rcur
       IS
          return_cursor   rcur;
       BEGIN
          OPEN return_cursor FOR 'select * from ' || tab_name;
     
          RETURN return_cursor;
       END;
    END;
    /

    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
     
     
     
    > variable cur REFCURSOR;
    > exec :cur :=test_pack.test_func('EMP');
     
    PL/SQL procedure successfully completed.
     
    > print cur;
     
         EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
    ---------- ---------- --------- ---------- --------- ---------- ---------- ----------
          7369 SMITH      CLERK           7902 17-DEC-80        800                    20
          7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30
          7521 WARD       SALESMAN        7698 22-FEB-81       1250        500         30
          7566 JONES      MANAGER         7839 02-APR-81       2975                    20
          7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400         30
          7698 BLAKE      MANAGER         7839 01-MAY-81       2850                    30
          7782 CLARK      MANAGER         7839 09-JUN-81       2450                    10
          7788 SCOTT      ANALYST         7566 19-APR-87       3000                    20
          7839 KING       PRESIDENT            17-NOV-81       5000                    10
          7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0         30
          7876 ADAMS      CLERK           7788 23-MAY-87       1100                    20
          7900 JAMES      CLERK           7698 03-DEC-81        950                    30
          7902 FORD       ANALYST         7566 03-DEC-81       3000                    20
          7934 MILLER     CLERK           7782 23-JAN-82       1300                    10

  3. #3
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 44
    Par défaut
    Merci pour votre réponse , mais je pense pas que c'est le cas dont je parle.

    Merci

  4. #4
    Membre averti
    Inscrit en
    Janvier 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 44
    Par défaut
    Bonjour à tous,

    je suis débutant en PL/SQL, j'ai une procédure stockée dans laquelle j'utilise un curseur. J'aime définir ce dernier comme suit:

    CURSOR cur(param varchar2) is
    select * from param.

    J'arrive pas à instancié le cursor et à chaque fois il m'affiche une erreur. J'aime que mon paramètre s'affiche au niveau de la clause FROM.

    Merci c'est trés urgent.

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    507
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Par défaut
    Vous ne pouvez pas le gérer de cette façon-là. Inspirez-vous de ce qu'a écrit Fatsora:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    DECLARE
       TYPE rcur IS REF CURSOR
       mon_curseur   rcur;
    BEGIN
       OPEN mon_curseur FOR 'select * from ' || param;
       ..... traitement du curseur
    END;

  6. #6
    Membre averti
    Inscrit en
    Mai 2002
    Messages
    23
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 23
    Par défaut
    Bonjour,

    Comment faire le fetch dans une variable qui stocke tous les enregistrements du resultat de la requete

    ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    declare
     
    vl_variable return_cursor%rowtype;
     
    begin
     
    LOOP
    FETCH return_cursor in vl_variable
    EXIT WHEN return_cursor%NOTFOUND;
    END LOOP;
    CLOSE return_cursor;
     
    end;

Discussions similaires

  1. Requête SQL parametrée
    Par marcolo21 dans le forum ASP
    Réponses: 3
    Dernier message: 05/11/2010, 09h19
  2. datetime null dans requete sql parametrée
    Par olibara dans le forum C#
    Réponses: 7
    Dernier message: 15/06/2009, 18h58
  3. Réponses: 3
    Dernier message: 10/01/2007, 11h22
  4. condition avec un cursor et un parametre
    Par lazzeroni dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/09/2006, 16h02
  5. les cursor sur sql serveur
    Par hoummass dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 03/10/2005, 17h10

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