Olá pessoal!

Tenho o seguinte problema:

Em uma procedure quero executar uma DDL com o comando EXECUTE
IMMEDIATE, para criar uma trigger. Coloco aqui o exemplo com tabela
por ser mais simples.

Se executo um procedimento anônimo, como o abaixo, a tabela é criada
normalmente.

BEGIN
  EXECUTE IMMEDIATE ' CREATE TABLE teste (campo NUMBER(2)) ';
END;

Mas quando coloco em uma procedure, ocorre o erro ORA-01031:
insufficient privileges. Testei alterar o CREATE TABLE para ALTER
TABLE e funcionou sem problemas dentro da procedure.

CREATE OR REPLACE PROCEDURE teste
IS
BEGIN
  EXECUTE IMMEDIATE ' CREATE TABLE teste (campo NUMBER(2)) ';
END;

A versão do Oracle é 9.2.0.4, e tudo está sendo executado pelo owner
do schema. 

Alguém tem alguma idéia aí?

[]'s
Josy









--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__________________________________________________________________
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a