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 :

[PL/SQL] interprétation d'une chaine de caractère


Sujet :

Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 10
    Points : 7
    Points
    7
    Par défaut [PL/SQL] interprétation d'une chaine de caractère
    Bonjour

    Je veux savoir comment on peut faire pour qu'une chaine de charactères soit interprétée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    req varchar2
    req:='select * from emp'
    cursor lareq is req;
    Donc je voudrais que req lorsque je déclare le curseur soit interprété comme avec ce qu'il contient et que la déclaration du curseur devienne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    cursor lareq is select * from emp;
    J'espère avoir été assez clair merci

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    J'explicite un peu plus pour ceux qui voudrit bien m'aider

    En fait je veux déclarer un curseur de manière dynamique c'est à dire que je ne connais pas à l'avance la requête avec laquelle je vais déclarer le curseur!
    En je la construit avec des concaténations dans une chaine de caractètres et ensuite je voudrais déclarer le curseur avec cette chaine de caractères.

    Si c'est possible bien sur
    PLEASE HELP!!!!!!

  3. #3
    Membre éclairé Avatar de plabrevo
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 547
    Points : 670
    Points
    670
    Par défaut
    Les possibilites varient suivant les versions.

    Teste sour 9.2.0.1:

    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
     
    PROMPT =======================================
    DROP TABLE emp
    /
    CREATE TABLE emp
    (empno    INTEGER
    ,ename    VARCHAR2(30))
    /
    INSERT INTO emp VALUES (1001,'Scott')
    /
    INSERT INTO emp VALUES (1002,'Allen')
    /
    INSERT INTO emp VALUES (1003,'Paul')
    /
    COMMIT
    /
    PROMPT =======================================
     
    SET SERVEROUTPUT ON SIZE 1000000;
     
    DECLARE
    l_dml      VARCHAR2(32767);
    l_id       INTEGER;
    lc_dml     SYS_REFCURSOR;
     
    BEGIN
     
    l_dml := 'SELECT empno id FROM emp';
     
    OPEN lc_dml FOR l_dml;
     
    LOOP
      FETCH lc_dml 
      INTO  l_id;
      EXIT WHEN lc_dml%NOTFOUND;
     
      dbms_output.put_line(l_id);  
    END LOOP;
    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
     
    =======================================
     
    Table dropped.
     
     
    Table created.
     
     
    1 row created.
     
     
    1 row created.
     
     
    1 row created.
     
     
    Commit complete.
     
    =======================================
    1001
    1002
    1003
     
    PL/SQL procedure successfully completed.


    Hope this helps.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Je te remercie beaucoup pascal pour ton aide!!

    Es ce que ce que tu m'as donné marche sur la version 8i ?
    Si non es ce que tu saurais comment faire pour cette version?

    Merci

  5. #5
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Citation Envoyé par bj_jet
    En fait je veux déclarer un curseur de manière dynamique c'est à dire que je ne connais pas à l'avance la requête avec laquelle je vais déclarer le curseur!
    Attention aux limites du raisonnement. Si vous ne connaissez pas la requête, vous aurez du mal à parcourir les champs du curseur !
    Rédacteur Oracle (Oracle ACE)
    Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche
    Je ne réponds pas aux questions techniques par MP
    Blogs: Forms-PL/SQL-J2EE - Forms Java Beans

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    En fait je voulais dire que la requête je veux la construire dans une chaine de caractères et je veux déclarer le curseur à partir de cette chaine de caractère qui contient la requete avec laquelle je veux déclarer le curseur.

    Vous pouvez jeter un coup d'oeil au début pour comprendre de quoi il s'agit.

    Merci

  7. #7
    Membre éclairé Avatar de plabrevo
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 547
    Points : 670
    Points
    670
    Par défaut
    Si ca peut aider, pour Oracle8i, j'avais repondu a une question vaguement similaire il y a quelques temps (voir autre post).
    Tester sous Oracle8i, c'est comme aujourd'hui rouler en DS ou en R16, plutot qu'en C6 ou en Vel Satis. Oracle8i est maintenant 4 versions en deca de ce qui sort aujourdh'hui, y-a-t-il une raison de ne pas upgrader sur 10gr2?

    Sinon, Sheik a raison, on peut faire du PL/SQL dynamique pour le fun de le faire, mais une fois que le curseur est ouvert, on en fait quoi et pourquoi?

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    REBONSOIR

    Bon effectivement il y avait une solution beaucoup plus simple pour ce je voulais faire.

    Merci de m'avoir mis la puce à l'oreille.

    Pour la version c'est la fac qui décide pas moi c'est vrai que j'aurais préféré une version plus récente.

    Merci à tous !!!!!

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

Discussions similaires

  1. [SQL-Server] SQL Server: convertir une chaine de caractères en date
    Par Louisa2005 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 16/09/2013, 10h25
  2. [TRANSACT SQL] longueur d'une chaine de caractères
    Par Cyborg289 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 20/03/2007, 08h06
  3. Réponses: 2
    Dernier message: 21/07/2006, 12h16
  4. Réponses: 3
    Dernier message: 12/06/2006, 11h18
  5. Réponses: 4
    Dernier message: 16/01/2006, 14h40

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