Execute Immediate

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
Regina Andrade
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 16
Registrado em: Qua, 23 Abr 2008 3:23 pm
Localização: Taubaté
Regina Andrade

alguém pode me explicar porque da diferença abaixo?

1) quando eu executo um select normal:

Selecionar tudo

select count(*)
from all_objects
retorna 38611


2) quando eu executo a function com "execute immediate":

Selecionar tudo

select Fun_Execute_Immediate('')
from dual

Selecionar tudo

Function Fun_Execute_Immediate 
(p_Parametro varchar2)
Return number Is
  w_Total number;
Begin
  execute immediate
    'select count(*) from all_objects ' into w_Total;
  Return(w_Total);
End;
retorna 30027

Obrigada :cry:
Regina Andrade
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 16
Registrado em: Qua, 23 Abr 2008 3:23 pm
Localização: Taubaté
Regina Andrade

Gente,

Um grande amigo meu (Eduardo) matou a xarada:

Ao rodar o select direto, não é verificado se eu tenho permissão.
Já ao rodar um objeto (procedure/function) a permissão é verificada.
:-o
bertosro
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 88
Registrado em: Sex, 18 Ago 2006 11:13 am
Localização: São Paulo - SP
Bertosro
MSN / TALK - roberto.fernandes@gmail.com

Vixi, não ia descobrir nunca!
valeu! :-o
Responder
  • Informação
  • Quem está online

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