Olá!
Estou fazendo uma procedure para automatizar algumas operações com XML
no 10g, mas estou tendo problemas de permissão.
Tento rodar o seguinte comando dentro de uma SP:

-- Registry the XSD file to schema.
BEGIN

DBMS_XMLSchema.registerSchema(
schemaurl=>to_char(v_url||p_virtualpath||p_xsd_file),
schemadoc=>sys.UriFactory.getUri(p_virtualpath||p_xsd_file),
genTables => true);

EXCEPTION when others THEN
DBMS_OUTPUT.PUT_LINE('Cannot registry XSD');
DBMS_OUTPUT.PUT_LINE('Error: '||SQLERRM);
END; -- Resgistry the XSD file to schema.


Mas está me dando um erro de falta de privilégios.
Porém, ao rodar esse bloco aqui, sem estar dentro da procedure, eu consigo.

declare
    v_url             varchar2(40)       := 'http://10.159.1.28:8080';
    p_virtualpath     varchar2(20)       := '/public/xml_data/';
    p_xsd_file        varchar2(10)       := 'teste.xsd';
begin
        DBMS_XMLSchema.registerSchema(
          schemaurl=>to_char(v_url||p_virtualpath||p_xsd_file),
          schemadoc=>sys.UriFactory.getUri(p_virtualpath||p_xsd_file),
          genTables => true);
end;


Acredito que seja algo referente à permissão do usuário que roda a SP.
Já tentei dar privilégio de execute na "DBMS_XMLSchema" para o system,
mas não funcionou.

Alguma idéia?!

Grato

André Castro

Responder a