O bloco abaixo é executado sem problemas
DECLARE
caminho_xml VARCHAR2 (1024);
ns VARCHAR2 (1024);
vIndex NUMBER (3) := 0;
TYPE vArquivo IS RECORD (id_arq NUMBER (3), nm_arquivo VARCHAR2 (100));
TYPE tArquivo
IS
TABLE OF vArquivo
INDEX BY BINARY_INTEGER;
vArqXML tArquivo;
BEGIN
SELECT d.directory_path
INTO caminho_xml
FROM sys.DBA_DIRECTORIES d, sys.DBA_OBJECTS o
WHERE o.OWNER = d.OWNER
AND o.OBJECT_NAME = d.DIRECTORY_NAME
AND o.object_type = 'DIRECTORY'
AND o.owner = 'SYS'
AND d.directory_name = 'DIR_XML';
SYS.DBMS_BACKUP_RESTORE.searchFiles (caminho_xml, ns);
FOR each_file IN (SELECT FNAME_KRBMSFT AS name
FROM X_$KRBMSFT
WHERE FNAME_KRBMSFT LIKE '%.xml')
LOOP
DBMS_OUTPUT.PUT_LINE (each_file.name);
vIndex := vIndex + 1;
vArqXML (vIndex).id_arq := vIndex;
vArqXML (vIndex).nm_arquivo := each_file.name;
END LOOP;
END;
Mas quando tento criar ele como uma procedure me retorna o erro
PL/SQL: ORA-00942: a tabela ou view não existe
Veriifcando ele aponta para d.OWNER, indicando que o problema seja com a tabela sys.dba_directories.
Já dei um grant de select para o usuário, mas mesmo continua dando erro.
[]´s
Roberto