Bonjour,
Voilà j'ai un soucis avec DBMS_DATAPUMP sous oracle 10g
D'un coté j'au une procédure qui fonctionne parfaitement sur un export de schéma :
Qui fonctionne parfaitement si le le lance avec l'utilisateur system sur un schéma.
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 PROCEDURE SAVESCHEMA(NOMSCHEMA IN VARCHAR2) IS p_dph NUMBER; DayOfYear VARCHAR2(4); BEGIN select TO_CHAR(SYSDATE,'DDD') INTO DayOfYear FROM DUAL; p_dph := DBMS_DATAPUMP.open(operation=>'EXPORT',job_mode=>'SCHEMA',job_name=>'EXEO_EXPORT_FULL_'||NOMSCHEMA); DBMS_DATAPUMP.add_file(handle=>p_dph,filename=>NOMSCHEMA||DayOfYear||'.dmp',directory=> 'ORACLEBACKUP',filetype=>1); DBMS_DATAPUMP.add_file(handle=>p_dph,filename=>NOMSCHEMA||DayOfYear||'.log',directory=> 'ORACLEBACKUP',filetype=>3); DBMS_DATAPUMP.metadata_filter(handle => p_dph,name=>'SCHEMA_EXPR',value =>'IN('''||NOMSCHEMA||''')'); DBMS_DATAPUMP.start_job(p_dph); DBMS_DATAPUMP.detach(p_dph); dbms_output.put_line('Export terminé '); EXCEPTION WHEN OTHERS THEN dbms_output.put_line('erreur:'||sqlerrm||' Job-ID:'||p_dph); END SAVESCHEMA;
ce script là :
exécuté sur le même schéma avec le même utilisateur (system) me retourne une 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
19
20
21
22
23
24
25 PROCEDURE ARCHIVEGPS(NBJOURSCONSERVE IN NUMBER, NOMSCHEMA IN VARCHAR2) IS DayPivot NUMBER(10); DayMax NUMBER(10); strsql VARCHAR2(200); p_dph NUMBER; DayOfYear VARCHAR2(4); BEGIN strsql := 'select MAX(DATETIME) FROM '|| NOMSCHEMA ||'.pointgps'; EXECUTE IMMEDIATE strsql INTO DayMax; DayPivot := DayMax-NBJOURSCONSERVE; select TO_CHAR(SYSDATE,'DDD') INTO DayOfYear FROM DUAL; dbms_output.put_line(DayPivot); p_dph := DBMS_DATAPUMP.open(operation=>'EXPORT',job_mode=>'TABLE',job_name=>'EXEO_PURGE_GPS_'||NOMSCHEMA); dbms_output.put_line('jobtrace1'); DBMS_DATAPUMP.add_file(handle=>p_dph,filename=>'POINTGPS'||NOMSCHEMA||DayOfYear||'.dmp',directory=> 'ORACLEBACKUP',filetype=>1); DBMS_DATAPUMP.add_file(handle=>p_dph,filename=>'POINTGPS'||NOMSCHEMA||DayOfYear||'.log',directory=> 'ORACLEBACKUP',filetype=>3); DBMS_DATAPUMP.metadata_filter(handle => p_dph,name=>'INCLUDE_NAME_EXPR',value =>'IN('''||NOMSCHEMA||'.POINTGPS'')'); DBMS_DATAPUMP.data_filter(handle => p_dph,name=>'SUBQUERY',value=>'WHERE DATETIME<'||DayPivot,table_name=>'POINTGPS',schema_name=>NOMSCHEMA); DBMS_DATAPUMP.start_job(p_dph); DBMS_DATAPUMP.detach(p_dph); dbms_output.put_line('Export terminé '); EXCEPTION WHEN OTHERS THEN dbms_output.put_line('erreur:'||sqlerrm||' Job-ID:'||p_dph); END ARCHIVEGPS;
qui semble se produire surerreur:ORA-31626: la tâche n'existe pas Job-ID:
J'ai vraiment du mal à comprendre
Code : Sélectionner tout - Visualiser dans une fenêtre à part p_dph := DBMS_DATAPUMP.open(operation=>'EXPORT',job_mode=>'TABLE',job_name=>'EXEO_PURGE_GPS_'||NOMSCHEMA);![]()
Partager