Eu não consigo passar o resultado do Get_dll para uma variavel e executar o conteudo dessa variavel. Tem outra forma de executar o Resultado do GET_DDL?
--- Em oracle_br@yahoogrupos.com.br, "Carlos Eduardo P. Martello" <[EMAIL PROTECTED]> escreveu > > Gabriel, até vi agora de uma forma mais atenta que vc já faz o execute > immediate dentro da função..... > > > > Não entendi o que você quer então.... > > > > É o execute immediate que não está funcionando? > > > > > > Abs, > > > > > > > > Carlos Martello > > DBA Oracle / Consultor de Tecnologia > > TEL: 55+21+3094-6250 > > Choice Technologies S/A - Inteligência em Energia > > e-mail: [EMAIL PROTECTED] > > > > De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em > nome de Gabriel Herdt > Enviada em: terça-feira, 18 de novembro de 2008 22:33 > Para: oracle_br@yahoogrupos.com.br > Assunto: Re: RES: [oracle_br] Ajuda em procedure[URGENTE] > > > > assim obrigado vou tentar, maas eu quero executar p dll gerado pela > funcao. pode me dizer como? > --- Em oracle_br@yahoogrupos.com.br <mailto:oracle_br% 40yahoogrupos.com.br> > , "Carlos Eduardo P. Martello" > <carlos.martello@> escreveu > > > > Gabriel, > > > > > > > > Tente o seguinte: > > > > > > > > > > > > Declare > > > > Vsql varchar2(2000) :=''; > > > > Begin > > > > Vsql := fn_compara; > > > > Execute immediate vsql; > > > > End; > > > > > > > > Se ao invés de vc retornar um clob, retornar um varchar2, ajuda. > > > > > > > > Abs, > > > > > > > > > > > > > > > > Carlos Martello > > > > DBA Oracle / Consultor de Tecnologia > > > > TEL: 55+21+3094-6250 > > > > Choice Technologies S/A - Inteligência em Energia > > > > e-mail: carlosmartello@ > > > > > > > > De: oracle_br@yahoogrupos.com.br <mailto:oracle_br% 40yahoogrupos.com.br> > [mailto:oracle_br@yahoogrupos.com.br <mailto:oracle_br% 40yahoogrupos.com.br> > ] Em > > nome de Gabriel Herdt > > Enviada em: segunda-feira, 17 de novembro de 2008 16:49 > > Para: oracle_br@yahoogrupos.com.br <mailto:oracle_br% 40yahoogrupos.com.br> > > > Assunto: [oracle_br] Ajuda em procedure[URGENTE] > > > > > > > > Pessoal como executar o resultado de DBMS_METADATA.get_ddl(...) em > > uma Function? Segue abaixo minmha Function > > > > FUNCTION FN_COMPARA ( > > pr_usera IN VARCHAR2, > > pr_userb IN VARCHAR2, > > pr_erro OUT VARCHAR2 > > ) > > RETURN VARCHAR2 > > IS > > vtable_name VARCHAR2 (30); > > DDL CLOB; > > i INTEGER; > > a INTEGER; > > x INTEGER; > > --get dbms_metadata.get_ddl > > (object_type,name,schema,version,model,transform); > > -- variable_name datatype; > > BEGIN > > vtable_name := ''; > > i := 0; > > x := 0; > > -- grant select on all_tables to TCCB; > > > > FOR tabela IN (SELECT table_name > > FROM all_tables > > WHERE owner IN (UPPER ('tcca'), UPPER ('TCCB')) > > AND table_name NOT IN (SELECT table_name > > FROM all_tables > > WHERE owner = 'TCCB')) > > LOOP > > vtable_name := tabela.Table_name; > > > > DDL := DBMS_METADATA.get_ddl ('TABLE', vtable_name, pr_usera); > > EXECUTE IMMEDIATE TO_CHAR (DDL); > > > > COMMIT; > > END LOOP; > > > > RETURN TO_CHAR (DDL); > > EXCEPTION > > WHEN OTHERS > > THEN > > pr_erro := ('Erro: ' ||pr_erro||SQLERRM); > > END; > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] >