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 :

[debutant][Script] Erreur SQL


Sujet :

Oracle

  1. #1
    Membre habitué Avatar de pmartin8
    Inscrit en
    Novembre 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 306
    Points : 126
    Points
    126
    Par défaut [debutant][Script] Erreur 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
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
     
    DECLARE
     
     cur_not_used_type  MENU_TYPE%ROWTYPE;
     cur_gen_menu       GENERIC_MENU%ROWTYPE;
     cur_option_menu	OPTION_MENU%ROWTYPE;
     
     tmp_gen_menu  		GENERIC_MENU%ROWTYPE;
     
    BEGIN
     
    	 BEGIN  	 
    		 ALTER TABLE  MENU_TYPE 
     		  DROP COLUMN MENU_ORDER;
     
     		 ALTER TABLE MENU_TYPE
       		  DROP COLUMN INDIC_VISIBLE;
     
    	 EXCEPTION WHEN OTHERS THEN
    	   DBMS_OUTPUT.PUT_LINE('Column already dropped');
    	 END;
     
    	 DELETE FROM OPTION_MENU
    	 WHERE TYPE_ID NOT IN ('FPI','BPI',
    					       'CAR','SHO','SOF',
    						   'ARR','ADO',
    						   'RMO','RMR','IRR',
    						   'UHF','TRO','HOW',
    						   'IDI','KNI','TII');
     
    	--These generic menu must be deleted				   
    	FOR cur_gen_menu IN (SELECT * FROM WHERE TYPE_ID NOT IN ('DES','REM','TRO'))
    	LOOP
     
    	  --manage the option menu
    	  FOR cur_option_menu IN (SELECT * FROM OPTION_MENU WHERE GENERIC_MENU_ID = cur_gen_menu.GENERIC_MENU_ID)
    	  LOOP
     
    		 IF cur_option_menu.TYPE_ID = 'FPI' OR 
    		    cur_option_menu.TYPE_ID = 'BPI' OR
    		    cur_option_menu.TYPE_ID = 'CAR' OR
    			cur_option_menu.TYPE_ID = 'SHO' OR
    			cur_option_menu.TYPE_ID = 'SOF'
    		 THEN
    		   BEGIN
    		      SELECT *
    			    INTO tmp_gen_menu
    			    FROM GENERIC_MENU
    			   WHERE TYPE_ID = 'DES'
    			     AND MODEL_ID = cur_gen_menu.MODEL_ID;
     
    			  UPDATE OPTION_MENU
    			  	 SET GENERIC_MENU_ID = tmp_gen_menu.GENERIC_MENU_ID
                   WHERE OPTION_MENU_ID = cur_option_menu.OPTION_MENU_ID;
     
    		   EXCEPTION WHEN NO_DATA_FOUND THEN
    		      DBMS_OUTPUT.PUT_LINE('No DES Generic Menu for the model ID ' || cur_gen_menu.MODEL_ID);
    		   END;
     
    		 ELSIF cur_option_menu.TYPE_ID = 'ARR' OR
    		       cur_option_menu.TYPE_ID = 'ADO' OR
    			   cur_option_menu.TYPE_ID = 'RMO' OR
    			   cur_option_menu.TYPE_ID = 'RMR' OR
    			   cur_option_menu.TYPE_ID = 'IRR' OR
    			   cur_option_menu.TYPE_ID = 'UHF' 
    		 THEN 
    		   BEGIN
    		      SELECT *
    			    INTO tmp_gen_menu
    			    FROM GENERIC_MENU
    			   WHERE TYPE_ID = 'REM'
    			     AND MODEL_ID = cur_gen_menu.MODEL_ID;
     
    			  UPDATE OPTION_MENU
    			  	 SET GENERIC_MENU_ID = tmp_gen_menu.GENERIC_MENU_ID
                   WHERE OPTION_MENU_ID = cur_option_menu.OPTION_MENU_ID;
     
    		   EXCEPTION WHEN NO_DATA_FOUND THEN
    		      DBMS_OUTPUT.PUT_LINE('No REM Generic Menu for the model ID ' || cur_gen_menu.MODEL_ID);
    		   END;
     
    		 ELSIF cur_option_menu.TYPE_ID = 'TRO' OR
    		       cur_option_menu.TYPE_ID = 'HOW' OR
    			   cur_option_menu.TYPE_ID = 'IDI' OR
    			   cur_option_menu.TYPE_ID = 'KNI' OR
    			   cur_option_menu.TYPE_ID = 'TII'
    		 THEN 
    		 	BEGIN
    		      SELECT *
    			    INTO tmp_gen_menu
    			    FROM GENERIC_MENU
    			   WHERE TYPE_ID = 'TRO'
    			     AND MODEL_ID = cur_gen_menu.MODEL_ID;
     
    			  UPDATE OPTION_MENU
    			  	 SET GENERIC_MENU_ID = tmp_gen_menu.GENERIC_MENU_ID
                   WHERE OPTION_MENU_ID = cur_option_menu.OPTION_MENU_ID;
     
    		   EXCEPTION WHEN NO_DATA_FOUND THEN
    		      DBMS_OUTPUT.PUT_LINE('No TRO Generic Menu for the model ID ' || cur_gen_menu.MODEL_ID);
    		   END; 
    		 END IF;
    	  END LOOP;
     
    	END LOOP;
     
    	DELETE FROM GENERIC_MENU
    	 WHERE TYPE_ID NOT IN ('DES','REM','TRO');
     
    	DELETE FROM MENU_TYPE
    	 WHERE TYPE_ID NOT IN  ('FPI','BPI','DES',
    					       'CAR','SHO','SOF',
    						   'ARR','ADO','REM',
    						   'RMO','RMR','IRR',
    						   'UHF','TRO','HOW',
    						   'IDI','KNI','TII');
     
     
    END;
    J'ai l'erreur suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    ORA-06550: line 12, column 4:
    PLS-00103: Encountered the symbol "ALTER" when expecting one of the following:
     
       begin case declare exit for goto if loop mod null pragma
       raise return select update while with <an identifier>
       <a double-quoted delimited-identifier> <a bind variable> <<
       close current delete fetch lock insert open rollback
       savepoint set sql execute commit forall merge
       <a single-quoted SQL string> pipe
    Quelqu'un peu m'aider?
    Il semble que Oracle aime pas mon premier ALTER!

  2. #2
    Membre habitué
    Inscrit en
    Août 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 181
    Points : 166
    Points
    166
    Par défaut
    Bonjour,
    essaye ALTER TABLE MENU_TYPE DROP (MENU_ORDER);

  3. #3
    Membre habitué Avatar de pmartin8
    Inscrit en
    Novembre 2003
    Messages
    306
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 306
    Points : 126
    Points
    126
    Par défaut
    En fait mon prob etait quil fallait

    EXECUTE IMMEDIATE parce qu'on ne peut pas faire un alter dans du pl-sql !

    Merci!

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

Discussions similaires

  1. Erreur d'exécution de script dans sql developper
    Par Soulghard dans le forum Sql Developer
    Réponses: 1
    Dernier message: 18/05/2010, 22h02
  2. [Debutant] Script ne fonctionnant pas, aucune erreure visible
    Par yur.miku dans le forum PHP & Base de données
    Réponses: 15
    Dernier message: 06/05/2010, 19h02
  3. ERREUR SQL : (errno: 121) (debutant)
    Par fret92 dans le forum Requêtes
    Réponses: 3
    Dernier message: 17/06/2008, 12h19
  4. Erreur lors du lancement du script catalog.sql
    Par Z3phur dans le forum Administration
    Réponses: 1
    Dernier message: 08/04/2008, 15h29
  5. Gestion erreur SQL Serveur dans un Script VBS
    Par jayan dans le forum VBScript
    Réponses: 3
    Dernier message: 08/02/2007, 15h06

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