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 :

Erreur SP2-0552: Variable non déclarée


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Par défaut Erreur SP2-0552: Variable non déclarée
    Bonjour,

    Je viens de mettre au point un script SQL ci-dessous mais il m'affiche une erreur d'entrée de jeu.

    Je passes en paramètre un schéma Oracle.

    Merci d'avance si vous avez une idée !


    Message d'erreur
    Connecte a :
    Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    ancien 6 : SELECT UPPER ('&1') INTO: schema_bdd FROM dual;
    nouveau 6 : SELECT UPPER ('MONSCHEMA') INTO: schema_bdd FROM dual;
    SP2-0552: Variable attachee "SCHEMA_BDD" non declaree.
    Deconnecte de Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options


    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
      DECLARE
        schema_bdd VARCHAR2(25);
     
    BEGIN
        SELECT UPPER ('&1') INTO: schema_bdd FROM dual;
     
        FOR cur IN (SELECT table_name FROM dba_tables WHERE owner=schema_bdd AND (table_name LIKE 'BATCH_%' OR table_name LIKE 'TMP_%'))
          LOOP
            dbms_stats.delete_table_stats(schema_bdd,cur.table_name);
            dbms_stats.lock_table_stats(schema_bdd,cur.table_name);
          END LOOP;
     
        FOR cur IN (SELECT table_name FROM dba_tables WHERE owner=schema_bdd AND (NOT table_name LIKE 'BATCH_%' OR table_name LIKE 'TMP_%'))
          LOOP
            dbms_stats.unlock_table_stats(schema_bdd,cur.table_name);
          END LOOP;
     
        FOR cur IN (SELECT table_name FROM dba_tables WHERE owner=schema_bdd AND table_name LIKE 'BATCH_%')
          LOOP
            EXECUTE IMMEDIATE 'ALTER TABLE ' || schema_bdd || '.' || cur.table_name || 'NOLOGGING';
          END LOOP;
     
        FOR cur IN (SELECT table_name FROM dba_tables WHERE owner=schema_bdd)
          LOOP
     
            dbms_stats.set_table_prefs(ownname => schema_bdd,tabname => cur,pname => 'METHOD_OPT',pvalue=> 'FOR ALL COLUMNS SIZE SKEWONLY');
     
            dbms_stats.set_table_prefs(ownname => schema_bdd,tabname => cur,pname => 'ESTIMATE_PERCENT',pvalue=> 'DBMS_STATS.AUTO_SAMPLE_SIZE');
     
            dbms_stats.set_table_prefs(ownname => schema_bdd,tabname => cur,pname => 'NO_INVALIDATE',pvalue => 'FALSE');
     
            dbms_stats.set_table_prefs(ownname => schema_bdd,tabname => cur,pname => 'CASCADE',pvalue=> 'TRUE');
          END LOOP;
     
        FOR cur IN (SELECT sequence_name FROM dba_sequences WHERE sequence_owner=schema_bdd and cache_size !='20')
          LOOP
            EXECUTE IMMEDIATE 'ALTER SEQUENCE ' || schema_bdd || '.' || cur.sequence_name || ' cache 20';
          END LOOP;
     
        FOR cur IN (SELECT object_name, object_type, owner FROM sys.all_objects WHERE status = 'INVALID' )
          LOOP
            BEGIN
              IF cur.object_type = 'PACKAGE BODY' THEN
                EXECUTE IMMEDIATE 'ALTER ' || cur.object_type || ' "' || schema_bdd || '"."' || cur.object_name || '" COMPILE BODY';
              ELSE
                EXECUTE IMMEDIATE 'ALTER ' || cur.object_type || ' "' || schema_bdd || '"."' || cur.object_name || '" COMPILE';
              END IF;
            EXCEPTION
              WHEN OTHERS THEN NULL;
            END;
          END LOOP;
     
      END;
      /
      EXIT;

  2. #2
    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
    C'est quoi ce : après le INTO ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Par défaut
    Juste une erreur de frappe, le script n'en à pas...
    Désolé.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Par défaut
    Bien vu Mcm...ça marche !
    Merci beaucoup.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 126
    Par défaut
    Un peu vite.

    J'ai une erreur à la ligne 21

    PLS-00306: numero ou types d'arguments errones dans appel a 'SET_TABLE_PREFS'

  6. #6
    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
    Ca reste du débug.. quand tu fais un EXECUTE IMMEDIATE, vérifies ce que tu exécutes.
    De plus la ligne 21 fais référence à un execute, pas d'appel à SET_TABLE_PREFS, donc mets des traces pour vérifier quelle ligne pose problème, essaye en suite de l'exécuter manuellement sous sql avec les paramètres qui sont envoyés dansle script, etc..

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

Discussions similaires

  1. Option Explicit et erreur variable non déclarée
    Par petitours dans le forum VBA Access
    Réponses: 2
    Dernier message: 23/04/2008, 15h38
  2. [Erreur à la compil] Classe non déclarée ?
    Par ipingu dans le forum C++
    Réponses: 9
    Dernier message: 23/03/2008, 18h27
  3. [Design] Erreur variable non déclarée ou non assignée
    Par Arnard dans le forum Visual Studio
    Réponses: 3
    Dernier message: 19/12/2007, 17h53
  4. Problème de variable non déclarée
    Par jncoffy dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 24
    Dernier message: 06/06/2007, 11h01
  5. variable non déclarée?
    Par carole8 dans le forum C
    Réponses: 15
    Dernier message: 30/11/2006, 16h13

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