bonjour, je suis tout nouveau dans l'usage d'ORACLE. J'utilise la version 9i et j'ai constitué une base qui sera exploité par BO.
je dispose d'une table qui compte + de 7 millions de ligne sur laquelle je lance un traitement soumis (dbms_job) de maj de date. Cette table comporte 2 index qui semble ralentir le traitement considérablement. j'ai donc décidé de supprimer les 2 index avant le traitement puis de les recréer après mais j'ai un message au lancement du script que voila :
message d'erreur :
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 begin dbms_job.isubmit('101', 'begin drop index TPRO_BO.BOTRAVTE_IDX1; commit; drop index TPRO_BO.BOTRAVTE_IDX2; commit; update botravte set botravte.vtedat=to_date(s tajou||stamoi||staan||'' 00:00:00'',''ddmmyyyy HH24:MI:SS''); commit; CREATE INDEX TPRO_BO.BOTRAVTE_IDX1 ON TPRO_BO.BOTRAVTE (STDOS, STAART, VTEDAT); commit; CREATE INDEX TPRO_BO.BOTRAVTE_IDX2 ON TPRO_BO.BOTRAVTE (STDOS, STAMOI, STAAN, STAZ2, ARTPRD, STAFAM, STASFA) end;', SYSDATE, 'NULL'); commit; end; /
merci de me dire s'il n'est possible que de modifier les données en dbms_job, si on peu le faire autrement. Si ma méthode de suppression et création des index est approprié au problème de lenteur du traitement.begin
*
ERREUR à la ligne 1 :
ORA-06550: Ligne 2, colonne 39 :
PLS-00103: Symbole "DROP" rencontré à la place d'un des symboles suivants :
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
ORA-06512: à "SYS.DBMS_JOB", ligne 79
ORA-06512: à "SYS.DBMS_JOB", ligne 136
ORA-06512: à "SYS.DBMS_JOB", ligne 96
ORA-06512: à ligne 2
merci de vos nombreuses réponses
Partager