007theboss
Messages postés2Date d'inscriptionlundi 21 février 2005StatutMembreDernière intervention28 juin 2005
-
27 juin 2005 à 14:54
007theboss
Messages postés2Date d'inscriptionlundi 21 février 2005StatutMembreDernière intervention28 juin 2005
-
28 juin 2005 à 13:57
Bonjour,
j'ai un problème avec un script de reprise de données sur une base oracle 9i (Du coup je sais pas trop si ce post est à sa place :-). Je lance ce script depuis sqlplus.
Une première partie du script, modifie les tables concernées,
une seconde fait la mise à jour des données avec un curseur,
et la dernière modifie les tables afin d'ajouter les contraintes sur les nouvelles colonnes. Je vous met le script en simplifié :
----------------------------------------------------------------------------
ALTER TABLE CUMUL_E36_ETAB_PA
ADD EEP_DTDPA DATE NULL;
commit;
DECLARE
--Varibles Globale-------------
plan_ale PLAN_ACTIONS.PLA_ALEPA%TYPE:= ''; -- Numero ale du plan d'action --
plan_num PLAN_ACTIONS.PLA_NUMPA%TYPE:= ''; -- numero du plan d'action --
plan_date PLAN_ACTIONS.PLA_DTDPA%TYPE; -- Date du plan d'action --
-- Creation du curseur -------------------
CURSOR cur_sel IS
SELECT PLA_ALEPA ,
PLA_NUMPA,
PLA_DTDPA
FROM PLAN_ACTIONS
ORDER BY PLA_DTDPA;
BEGIN
OPEN cur_sel ;
-- Ouverture du curseur ----------------
LOOP
-- BOUCLAGE DU CURSEUR --
FETCH cur_sel INTO plan_ale ,
plan_num,
plan_date;
EXIT WHEN cur_sel%NOTFOUND;
UPDATE CUMUL_E36_ETAB_PA
SET EEP_DTDPA=plan_date WHERE EEP_ALEPA plan_ale and EEP_NUMPA plan_num;
END LOOP;
END;
ALTER TABLE CUMUL_E36_ETAB_PA MODIFY EEP_DTDPA DATE NOT NULL;
Quand je le lance, j'ai une erreur au niveau des "update" qui se situe après le "end;".
Chaque partie du script fonctionne séparement, mais c'est quand j'essaie de tous faire en une seule fois que cela plante. Est ce quelqu'un peut m'aider en me donnant la syntaxe exacte à utiliser ???
merci..
007theboss
Messages postés2Date d'inscriptionlundi 21 février 2005StatutMembreDernière intervention28 juin 2005 28 juin 2005 à 13:57
En fait je me suis trompé, ce n'est pas dans les "update" mais dans les "alter" situé aprèsd le "end;"...
IL me dit : "alter" inattendu.... dès le premier "alter table"