Re: [oracle_br] execute immediate

2012-07-12 Por tôpico Alessandro Lúcio Cordeiro da Silva
Tire o Ponto e Virgula no final da instrução .


Ao inves disso

GROUP BY c.qdra_id, i.imov_idcategoriaprincipal  );');

Faça
GROUP BY c.qdra_id, i.imov_idcategoriaprincipal  )');
 
Alessandro Lúcio Cordeiro da Silva 
    Analista de Sistema
þ http://alecordeirosilva.blogspot.com/
O tic-tac do relógio me lembra de algo muito importante que esta acontecendo: 
estamos vivos.
    "Joana de Souza Schmitz Croxato"
 



 De: raffaell.ti77 
Para: oracle_br@yahoogrupos.com.br 
Enviadas: Quinta-feira, 12 de Julho de 2012 8:10
Assunto: [oracle_br] execute immediate
 

  
Pessoal, bom tarde.

Estou tendo um problema com um execute immediate dentro um SP.
EU tenho um create table que executando apenas ela por fora, ela é criada sem 
problema algum, mas quando coloco dentro do execute immediate me dá um erro na 
hora de executar a procedure. Segue o exemplo:

CREATE OR REPLACE PROCEDURE teste_immediate IS
BEGIN
EXECUTE IMMEDIATE('CREATE TABLE QUADRA_TEMP AS (select c.qdra_id qdra_id, 
i.imov_idcategoriaprincipal catg_id, count(distinct c.imov_id) quantidade
from faturamento.conta c
inner join cadastro.imovel i
on i.imov_id = c.imov_id
inner join cadastro.sistema_parametros sp
on 1=1
where((c.cnta_amreferenciacontabil <=
(CASE WHEN (substr(to_char(sp.parm_amreferenciafaturamento), 5, 2) = ''01'') 
THEN
to_number((to_char((to_number(substr(to_char(sp.parm_amreferenciafaturamento), 
1, 4)) - 1)) || ''12''))
ELSE sp.parm_amreferenciafaturamento - 1 END)
and c.dcst_idatual in ( 0,1,2) )
or ( c.cnta_amreferenciacontabil >
(CASE WHEN (substr(to_char(sp.parm_amreferenciafaturamento), 5, 2) = ''01'') 
THEN 
to_number((to_char((to_number(substr(to_char(sp.parm_amreferenciafaturamento), 
1, 4)) - 1)) || ''12''))
ELSE sp.parm_amreferenciafaturamento - 1 END) and c.dcst_idatual in (3,4,5,8) )
and ( c.dcst_idanterior is null
or ( c.cnta_amreferenciaconta <= (CASE WHEN 
(substr(to_char(sp.parm_amreferenciafaturamento), 5, 2) = ''01'') THEN 
to_number((to_char((to_number(substr(to_char(sp.parm_amreferenciafaturamento), 
1, 4)) - 1)) || ''12''))  ELSE sp.parm_amreferenciafaturamento - 1 END) and 
c.dcst_idanterior not in (1,2) )))
GROUP BY c.qdra_id, i.imov_idcategoriaprincipal  );');

END;

O erro gerado é o seguinte:

ORA-00911: caractere inválido
ORA-06512: em "TESTE_IMMEDIATE", line 3
ORA-06512: em line 2

Eu acho que o problema está no caracter com duas aspas simples, exemplo: ''12''.

Como faço para resolver esse probleminha, alguém tem uma sugestão?


 

[As partes desta mensagem que não continham texto foram removidas]



Re: [oracle_br] execute immediate

2012-07-12 Por tôpico Milton Bastos Henriquis Jr.
Uma sugestão é criar uma VIEW deste select, e daí criar a tabela com
"select * from view".



2012/7/12 raffaell.ti77 

> **
>
>
> Pessoal, bom tarde.
>
> Estou tendo um problema com um execute immediate dentro um SP.
> EU tenho um create table que executando apenas ela por fora, ela é criada
> sem problema algum, mas quando coloco dentro do execute immediate me dá um
> erro na hora de executar a procedure. Segue o exemplo:
>
> CREATE OR REPLACE PROCEDURE teste_immediate IS
> BEGIN
> EXECUTE IMMEDIATE('CREATE TABLE QUADRA_TEMP AS (select c.qdra_id qdra_id,
> i.imov_idcategoriaprincipal catg_id, count(distinct c.imov_id) quantidade
> from faturamento.conta c
> inner join cadastro.imovel i
> on i.imov_id = c.imov_id
> inner join cadastro.sistema_parametros sp
> on 1=1
> where((c.cnta_amreferenciacontabil <=
> (CASE WHEN (substr(to_char(sp.parm_amreferenciafaturamento), 5, 2) =
> ''01'') THEN
> to_number((to_char((to_number(substr(to_char(sp.parm_amreferenciafaturamento),
> 1, 4)) - 1)) || ''12''))
> ELSE sp.parm_amreferenciafaturamento - 1 END)
> and c.dcst_idatual in ( 0,1,2) )
> or ( c.cnta_amreferenciacontabil >
> (CASE WHEN (substr(to_char(sp.parm_amreferenciafaturamento), 5, 2) =
> ''01'') THEN
> to_number((to_char((to_number(substr(to_char(sp.parm_amreferenciafaturamento),
> 1, 4)) - 1)) || ''12''))
> ELSE sp.parm_amreferenciafaturamento - 1 END) and c.dcst_idatual in
> (3,4,5,8) )
> and ( c.dcst_idanterior is null
> or ( c.cnta_amreferenciaconta <= (CASE WHEN
> (substr(to_char(sp.parm_amreferenciafaturamento), 5, 2) = ''01'') THEN
> to_number((to_char((to_number(substr(to_char(sp.parm_amreferenciafaturamento),
> 1, 4)) - 1)) || ''12'')) ELSE sp.parm_amreferenciafaturamento - 1 END) and
> c.dcst_idanterior not in (1,2) )))
> GROUP BY c.qdra_id, i.imov_idcategoriaprincipal );');
>
> END;
>
> O erro gerado é o seguinte:
>
> ORA-00911: caractere inválido
> ORA-06512: em "TESTE_IMMEDIATE", line 3
> ORA-06512: em line 2
>
> Eu acho que o problema está no caracter com duas aspas simples, exemplo:
> ''12''.
>
> Como faço para resolver esse probleminha, alguém tem uma sugestão?
>
>  
>



-- 
Att,


[As partes desta mensagem que não continham texto foram removidas]





--
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
>Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
>Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
>http://www.oraclebr.com.br/  

 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:
oracle_br-unsubscr...@yahoogrupos.com.br

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




RE: [oracle_br] Execute Immediate

2006-10-26 Por tôpico Lorenzini Bruno
Meus palpites: 

 

1-   Problema com Grant

2-   Falou ";" no final

 

 

[[]]'s

 

 

-Original Message-
From: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] On Behalf Of 
Alexandre Rocha Placido
Sent: Thursday, October 26, 2006 3:11 PM
To: oracle_br@yahoogrupos.com.br; [EMAIL PROTECTED] com. br
Subject: [oracle_br] Execute Immediate

 

Alguém pode me dizer por que a linha de comando abaixo funciona
tranquilamente no sqlplus e não funciona de dentro duma package quando é
chamada via Execute Immediate ou pelo Sys.Dbms_Sql.Parse?



AGROVALE.AGR_SCHEMAS_PACK.Get_pk_conteudo('AAAlXwAAoAAAC7KAAA')







Alexandre Rocha Placido

Divisão de Tecnologia da Informação - Agrovale

Fone:   +55 74 3612-2900

+55 87 8802-0474

MSN[EMAIL PROTECTED]



"Eis a voz do que clama: Preparai no deserto o caminho do Senhor; endireitai
no ermo uma estrada para o nosso Deus. Todo vale será levantado, e será
abatido todo monte e todo outeiro; e o terreno acidentado será nivelado, e o
que é escabroso, aplanado. A glória do Senhor se revelará; e toda a carne
juntamente a verá; pois a boca do Senhor o disse." Isaías 40:3-5





[As partes desta mensagem que não continham texto foram removidas]


 



[As partes desta mensagem que não continham texto foram removidas]




Vem aí: ENPO-BR 2006 - Encontro Nacional de Profissionais Oracle
VISITE: http://www.enpo-br.org/ - Dia 11/11 "Vagas Limitadas"

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
--
Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--
O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: http://www.oraclebr.com.br/  

  
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

 



Re: [oracle_br] Execute Immediate

2005-11-23 Por tôpico Marcio Portes
declare
   l_stmt   long;
begin
   for x in ( select view_name from user_views )
   loop
   l_stmt := 'execute create_xml('''||x.view_name||''', ''select * from '|| 
x.view_name||''');';
   dbms_output.put_line( l_stmt );
   -- execute immediate l_stmt;
   end loop;
end;
/

[EMAIL PROTECTED]> create or replace view ADM_DATAFILES_1
   2  as select null x from dual;

View created.

[EMAIL PROTECTED]>
[EMAIL PROTECTED]> declare
   2l_stmt   long;
   3  begin
   4for x in ( select view_name from user_views )
   5loop
   6l_stmt := 'execute create_xml('''||x.view_name||''', ''select * 
from '|| x.view_name||''');';
   7dbms_output.put_line( l_stmt );
   8-- execute immediate l_stmt;
   9end loop;
  10  end;
  11  /
execute create_xml('ADM_DATAFILES_1', 'select * from ADM_DATAFILES_1');

PL/SQL procedure successfully completed.



thiagomz wrote:
> Pessoal,
> 
> Alguem pode acertar ese execute immediate ... nao to conseguindo... meu 
> dbms_output.putline traz o que eu quero... mas no imediate da erro nas 
> aspas :-(
> 
> begin
> for reg in ( select view_name
>  from user_views )
> loop
> --execute immediate 'execute create_xml ('''||reg.view_name ||''', 
> ''select * from '|| reg.view_name ||''');';
>dbms_output.put_line('execute create_xml ('''||reg.view_name ||''', 
> ''select * from '|| reg.view_name ||''');');
> end loop;
> end;
> 
> A saida tem que ficar assim
> 
> execute create_xml ('ADM_DATAFILES_1', 'select * from ADM_DATAFILES_1');
> 
> Valeu 
> 

-- 
Marcio Portes
http://mportes.blogspot.com


--
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/ 
--_
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
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

 




Re: [oracle_br] EXECUTE IMMEDIATE

2005-11-22 Por tôpico pedro saraiva
Olá!

  Sim, é isso mesmo que estou esperando.

  Já deu um DBMS_OUTPUT.PUT_LINE do valor da
função

  Grato.

Pedro Saraiva.

--- Marcio Portes <[EMAIL PROTECTED]> escreveu:

> dbms_output.put_line( v_chama_fun );
> 
> Veja se é isso mesmo que voce está esperando no
> comando.
> 
> 
> 
> 
> pnsaraiva wrote:
> > Olá!
> > 
> >Alguém já fez alguma coisa do tipo:
> > 
> > Declare
> >   tDate   date;
> >   i_Mona  varchar2(20) := 'Chassi';
> >   i_Calid varchar2(3)  := 'O1';
> >   v_chama_fun varchar2(2000)  := null;
> >   Begin
> > v_chama_fun := 'tDate := wcal400_'||i_Mona||
> >   
> '.rel2abs('||||i_Calid||||','||4545||');';
> > EXECUTE IMMEDIATE 'tDate := '||v_chama_fun;
> >   EXCEPTION
> >  WHEN OTHERS THEN
> > dbms_output.put_line ('SQLERRM =>
> '||SUBSTR(SQLERRM,1,200));
> >   END;
> > 
> >  Isso tudo acima está me dando o seguinte Erro: 
> ORA-00900: invalid 
> > SQL statement.
> > 
> >   Alguém tem alguma sugestão pra mi dar
> > 
> >  Grato.
> > 
> >Pedro Saraiva.
> >[EMAIL PROTECTED]
> > 
> > 
> > 
> > 
> > 
> >
>
--
> > 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/
> 
> >
>
--_
> > Area de download do grupo -
> http://www.4shared.com/dir/101727/a4dcc423  
> > Links do Yahoo! Grupos
> > 
> > 
> > 
> > 
> >  
> > 
> > 
> > 
> 
> -- 
> Marcio Portes
> http://mportes.blogspot.com
> 









___ 
Yahoo! Acesso Grátis: Internet rápida e grátis. 
Instale o discador agora!
http://br.acesso.yahoo.com/



--
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/ 
--_
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
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

 





Re: [oracle_br] EXECUTE IMMEDIATE

2005-11-21 Por tôpico Marcio Portes
dbms_output.put_line( v_chama_fun );

Veja se é isso mesmo que voce está esperando no comando.




pnsaraiva wrote:
> Olá!
> 
>Alguém já fez alguma coisa do tipo:
> 
> Declare
>   tDate   date;
>   i_Mona  varchar2(20) := 'Chassi';
>   i_Calid varchar2(3)  := 'O1';
>   v_chama_fun varchar2(2000)  := null;
>   Begin
> v_chama_fun := 'tDate := wcal400_'||i_Mona||
>'.rel2abs('||||i_Calid||||','||4545||');';
> EXECUTE IMMEDIATE 'tDate := '||v_chama_fun;
>   EXCEPTION
>  WHEN OTHERS THEN
> dbms_output.put_line ('SQLERRM => '||SUBSTR(SQLERRM,1,200));
>   END;
> 
>  Isso tudo acima está me dando o seguinte Erro:  ORA-00900: invalid 
> SQL statement.
> 
>   Alguém tem alguma sugestão pra mi dar
> 
>  Grato.
> 
>Pedro Saraiva.
>[EMAIL PROTECTED]
> 
> 
> 
> 
> 
> --
> 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/ 
> --_
> Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
> Links do Yahoo! Grupos
> 
> 
> 
> 
>  
> 
> 
> 

-- 
Marcio Portes
http://mportes.blogspot.com


--
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/ 
--_
Area de download do grupo - http://www.4shared.com/dir/101727/a4dcc423  
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