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 :

Besoin d'aide pour la fonction execute immediate


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Par défaut Besoin d'aide pour la fonction execute immediate
    Bonjour j'ai besoin de votre aide pour corriger mon scrip PL/SQL
    Voici mon script :

    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
     
    DECLARE
    v_update VARCHAR2(4000);
    csql varchar2(2000);
    BEGIN
        FOR tab IN 
            (SELECT owner,table_name 
            FROM all_tables 
            WHERE table_name IN ('VOD_FICHE_PRODUIT'))
        LOOP
            v_update := 'UPDATE '||tab.owner||'.'||tab.table_name||' SET ';
            FOR col IN 
                (SELECT * 
                FROM all_tab_columns 
                WHERE table_name = tab.table_name 
                AND owner = tab.owner
                AND data_type LIKE '%CHAR%')
            LOOP
                v_update := v_update || col.column_name || '= TRANSLATE(' || col.column_name||',''¿'',''''''),';
            END LOOP;
            EXECUTE IMMEDIATE SUBSTR(v_update,1,LENGTH(v_update)-1); 
        END LOOP;
    END;
    /
    Le but de ce script est de remplacer des caracteres "¿" par les " ' "

    Ereur retournéee est :

    DECLARE

    ORA-00911 : invalid character
    ORA-06512 : at line 20

  2. #2
    Expert confirmé
    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
    Par défaut
    Merci d'utiliser les balises code pour rendre le code lisible.

  3. #3
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    remplace EXECUTE IMMEDIATE par DBMS_OUTPUT.PUT_LINE pour débugger

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par orafrance
    remplace EXECUTE IMMEDIATE par DBMS_OUTPUT.PUT_LINE pour débugger
    si tu ne veux pas suivre nos recommendations ça va vite être pénible

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Par défaut
    Merci pour touts les réponses que vous m'avez donnée. Ca marche pour ce cas.

    Est-ce que quelqu'un pourrait me corriger cette ligne svp car j'ai cette erreur qui est retounée : missing right parenthesis



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    v_update := v_update || col.column_name || '= REPLACE(' || col.column_name||',''¿A'',''''''''A),';

  6. #6
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Oh Kevin,
    il faut un peu bosser ! Chercher un petit peu, quoi !
    La réponse est évidente...

  7. #7
    McM
    McM est déconnecté
    Expert confirmé

    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
    Billets dans le blog
    4
    Par défaut
    >> Le but de ce script est de remplacer des caracteres "¿" par les " ' "

    Utilises REPLACE et pas translate.

  8. #8
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    il doit y avoir moyen de ne faire qu'une seule boucle en plus

  9. #9
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Il manque un guillemet dans le sql généré
    doit être : REPLACE(XXX,'¿','''')
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     v_update := v_update || col.column_name || '= REPLACE(' || col.column_name||',''¿'',''''''''),';

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 7
    Par défaut
    Je vais essayer tout de suite
    Oui il y a qu'une seule table...

    Merci par avance!

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

Discussions similaires

  1. Besoin d'aide pour la fonction"SI"
    Par chouchou_82 dans le forum Excel
    Réponses: 2
    Dernier message: 12/01/2009, 08h17
  2. besoin d aide pour les fonction en postgresql
    Par dannw dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 11/07/2007, 21h20
  3. [FPDF] Besoin d'aide pour une fonction publipostage..;
    Par dark$hadow dans le forum Bibliothèques et frameworks
    Réponses: 10
    Dernier message: 10/02/2007, 15h39
  4. [Mail] besoin d'aide pour la fonction mail
    Par laymounos dans le forum Langage
    Réponses: 5
    Dernier message: 07/06/2006, 21h16

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