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 :

Extraire un nom de variable à partir d'une chaine


Sujet :

PL/SQL Oracle

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    janvier 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Extraire un nom de variable à partir d'une chaine
    Bonjour à tous,

    Est ce que c'est possible de déclarer des mots extraites à partir d'une chaine comme étant des variables.

    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    DECLARE
       vv_where_clause   VARCHAR2 (1000) := 'recunit_a=rec_unit_b';
    BEGIN
    -- je veux déclarer et utiliser les mots extraites ( ensemble des mots séparés par un séparateur '=')
       recunit_a   NUMBER := 10;
       rec_unit_b   NUMBER := 20;
       .......................
       ...................
    END;

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Ingénieur d'études décisionnel
    Inscrit en
    mai 2002
    Messages
    8 729
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur d'études décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 8 729
    Points : 29 108
    Points
    29 108
    Par défaut
    Formellement non.
    Mais l'exemple donné ne ressemble à rien et ne permet pas de comprendre ce qui se cache derrière la question.
    Il faudrait replacer le problème dans le contexte dans lequel elle s'est posée...
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    janvier 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    J'ai un ensemble des mots séparés par un séparateur('=').
    Aprés l'extraction de ces mots, je veux déclarer des variables au noms de ces mots.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    vv_where_clause VARCHAR2 (1000): = 'recunit_a = rec_unit_b';
    recunit_a NUMBER: = 10;
    recunit_b NUMBER: = 20;
     
     
    vv_where_clause VARCHAR2 (1000): = 'A = B';
    A NUMBER := 5;
    B NUMBER := 15;

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    décembre 2019
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : décembre 2019
    Messages : 733
    Points : 1 175
    Points
    1 175
    Par défaut
    Bonjour,

    Quel est le but final de ce besoin? Je suppose qu'en SQL*Plus ça doit être faisable, mais il faudrait connaitre dans quel cadre ces variables seront utilisées.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    janvier 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2015
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par vanagreg Voir le message
    Bonjour,

    Quel est le but final de ce besoin? Je suppose qu'en SQL*Plus ça doit être faisable, mais il faudrait connaitre dans quel cadre ces variables seront utilisées.
    J'ai un paramètre de procédure pv_where_clause 'rec1.recunit_a = rec2.rec_unit_b'

    J'ai un boucle curseur rec2 imbriqué dans un autre boucle curseur rec1.

    quand je parcours le curseur interne rec2, je veux vérifier la valeur de la restriction pv_where_clause qui est un paramètre de procédure.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    EXECUTE IMMEDIATE ' SELECT COUNT(*) FROM DUAL WHERE ' || pv_where_clause INTO vn_cnt;
    une erreur générée ORA-00904: "REC_C1"."REC_UNIT_ID": invalid identifier

Discussions similaires

  1. Assignation de variables à partir d'une chaine de caractères
    Par Yorel2006 dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 01/04/2009, 14h58
  2. Réponses: 2
    Dernier message: 29/01/2009, 18h59
  3. Réponses: 2
    Dernier message: 20/07/2007, 16h17
  4. extraire le nom d'un fichier dans une chaine sauf le car -
    Par digger dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 13/12/2005, 00h02
  5. Réponses: 7
    Dernier message: 15/11/2005, 10h14

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