1
resposta

Erro no comando da aula

Ao executar o seguinte erro foi reportado:

BEGIN dbms_advisor.create_file(dbms_advisor.get_task_script('task1'),'tune_scripts','tune.sql'); END;
Relatório de erros -
ORA-22285: diretório ou arquivo inexistente para operação FILEOPEN
ORA-06512: em "SYS.DBMS_LOB", line 1481
ORA-06512: em "SYS.DBMS_ADVISOR", line 632
ORA-06512: em line 1
22285. 00000 -  "non-existent directory or file for %s operation"
*Cause:    Attempted to access a directory that does not exist, or attempted
           to access a file in a directory that does not exist.
*Action:   Ensure that a system object corresponding to the specified
           directory exists in the database dictionary, or
           make sure the name is correct.

Abaixo estão meus comandos:

create table tb as select * from all_objects;


select distinct object_id from tb order by object_id;

execute dbms_advisor.quick_tune(dbms_advisor.sqlaccess_advisor, 'task1','select distinct object_id from tb order by object_id');

select * from user_advisor_actions;

create directory tune_scripts as 'C:\Tempo';

EXECUTE dbms_advisor.create_file(dbms_advisor.get_task_script('task1'),'tune_scripts','tune.sql');
1 resposta

Oii, Cesar! Tudo bem?

O erro ORA-22285, indica que há um diretório ou arquivo inexistente para a operação FILEOPEN, geralmente ocorre ao tentar acessar um diretório que não existe ou um arquivo em um diretório que não existe.

Tendo isso em mente, peço por gentileza que verifique alguns pontos:

  • Revise se diretório 'C:\Tempo' foi criado no diretório certo.
  • Verifique as permissões do diretório 'C:\Tempo'. O usuário do Oracle precisa ter permissão para ler e escrever neste diretório.
  • Revise o nome do seu diretório, qualquer erro de sintaxe pode ser um impedimento.
  • Refaça os passos da criação da pasta Tempo. Caso já tenha criado uma, delete-a e crie uma nova.

Feito isso, execute novamente comando para criar o diretório e observe se o erro ainda persiste. Fico à disposição.

Bons estudos, Cesar!