Ajuda com este script.

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
clebermano
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Qua, 31 Mar 2010 5:49 pm
Localização: Ribeirao preto - SP
Nunca se de por vencido.

Prezados amigos bom dia,
Preciso fazer rodar o seguinte script.

Selecionar tudo

begin
for t in (select a.tabela from mon_paramtabela a
      where a.statustabela = 'A')
  loop
    -- Truncate table t.tabela
    pkg_cargamonitor.sp_cargaparcialmanual(1,t.tabela,sysdate,sysdate);
  end loop;
end;
O script está rodando ok, mas o problema é o Truncate, ele não funciona nem a pau, já tentei de tudo cada hora da um erro diferente.
Teria como fazer este truncate funcionar ?
Obrigado por enquanto.
gfkauer
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 389
Registrado em: Ter, 27 Jul 2010 1:34 pm
Localização: Sapiranga - RS
Contato:
Quem falou que programar era fácil??

Quanto mais dificil for a implementação mais valorizado seu trabalho será!

Acessem: www.gfkauer.com.br

Não tenho certeza, mas creio que para executar um truncate precise de permissão do tipo admin.

Posso estar totalmente enganado...
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

precisa de permissão para truncate.. pode ser isso
agora pode estar faltando uma barra ( / ) no final do seu código

você tem q postar os erros que foram apresentados
burga
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Qui, 26 Nov 2009 1:05 pm
Localização: SP

na verdade você deve usar sql dinamico pra executar o truncate...

Selecionar tudo

execute immediate 'truncate table ' || t.tabela;
do jeito que você está fazendo, o procedimento vai tentar truncar uma tabela de NOME t.tabela. Pra usar o valor da variável, nesse caso, só com sql dinâmico!
clebermano
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Qua, 31 Mar 2010 5:49 pm
Localização: Ribeirao preto - SP
Nunca se de por vencido.

Agradeço a todos pela ajuda, e também ao Burga.
Funcionou certinho.
Obrigado.
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

burga escreveu:na verdade você deve usar sql dinamico pra executar o truncate...

Selecionar tudo

execute immediate 'truncate table ' || t.tabela;
do jeito que você está fazendo, o procedimento vai tentar truncar uma tabela de NOME t.tabela. Pra usar o valor da variável, nesse caso, só com sql dinâmico!
certissimo .. já passei diversas vezes por isso e nem me atentei para esse detalhe
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 6 visitantes