Página 1 de 1
Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Sex, 13 Abr 2012 2:21 pm
por analima.ilha
Preciso fazer uma procedure que busque todas as tabelas com inicio "tblw"
e não sei qual logica usar, alguém pode me ajudar?
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Sex, 13 Abr 2012 4:32 pm
por Trevisolli
Boa tarde.
Tenta essa querie:
Lembrando que, o conteúdo de table_name é maiúsculo.
Qualquer coisa, manda pra gente.
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Seg, 16 Abr 2012 4:31 pm
por analima.ilha
Eu usei essa query
so que preciso usar isso dentro de uma procedure, e não to conseguindo..
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Seg, 16 Abr 2012 4:51 pm
por DanielNN
Dentro de procedure é necessário atribuir a uma variável o retorno do select.
Não se pode fazer um simples "select ... from". É preciso fazer um:
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Seg, 16 Abr 2012 5:01 pm
por analima.ilha
Mesmo assim não funcionou
já tentei um cursor... mas também não funciona...
=S
criado com erros de compilaçao.
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Seg, 16 Abr 2012 5:36 pm
por DanielNN
Qual erro e o trecho correspondente?
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Seg, 16 Abr 2012 9:15 pm
por Trevisolli
Você deseja retornar para algum front end? .NET ? Java ?
Caso positivo, aqui no fórum dá uma pesquisada por REF CURSOR, que vai achar exemplos interessantes, como este:
Ref Cursor
Qualquer coisa, manda pra gente.
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Ter, 17 Abr 2012 11:14 am
por analima.ilha
Esta assim:
Selecionar tudo
cursor c1 is (SELECT object_name from dba_objects WHERE object_name LIKE '%CMD%');
BEGIN
dbms_output.put_line('inicio');
FOR employee_rec in c1
LOOP
dbms_output.put_line(employee_rec.object_name);
END LOOP;
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Ter, 17 Abr 2012 11:20 am
por DanielNN
Tirando o fato do "END;" no final do teu código, não vejo problemas nesta procedure:
Selecionar tudo
DECLARE
cursor c1 is (SELECT object_name from dba_objects WHERE object_name LIKE '%CMD%');
BEGIN
dbms_output.put_line('inicio');
FOR employee_rec in c1
LOOP
dbms_output.put_line(employee_rec.object_name);
END LOOP;
END;
Até executei aqui sem problemas.
Talvez seja problema de permissão.
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Ter, 17 Abr 2012 11:25 am
por analima.ilha
Pois é,
ele foi criada dentro de body package
nem sei porque não ta funcionando...
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Ter, 17 Abr 2012 11:31 am
por DanielNN
Se você executa este codigo acima que postei sem problemas.
Então o problema é a permissão do usuário que esta executando a procedure.
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Ter, 17 Abr 2012 11:42 am
por analima.ilha
Ta sendo criada com erros de compilacao.... =/
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Ter, 17 Abr 2012 12:24 pm
por DanielNN
Qual o erro??
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Ter, 17 Abr 2012 5:40 pm
por analima.ilha
esse erro:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Ter, 17 Abr 2012 5:56 pm
por DanielNN
O trecho que você postou aqui só falta a declaração da procedure e o "END;". Aparentemente esta parte está OK.
Verifique se está tudo certo, todos ";" nos lugares e os ENDs (END, END LOOP, END IF) corretos.
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Qui, 19 Abr 2012 12:04 pm
por analima.ilha
Agora estou com outro problema
Tenho essa procedure que busca todas as tabelas com esse inicio
e agora quero pegar alguns campos dessas tabelas e apagar eles...
tenho que fazer esse delete dentro dessa procedure pra apagar esses dados de todas essas tabelas...
alguma dica?
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Qui, 19 Abr 2012 1:29 pm
por DanielNN
Bem,
depois de você ter selecionado as tabelas que quer deletar as informações, basta montar um sql dinamico, ou seja, construir em texto o comando para deletar as tabelas:
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Qui, 19 Abr 2012 2:04 pm
por analima.ilha
No caso ficou assim
Selecionar tudo
stmt := NULL;
stmt:= 'DELETE FROM ' || i.object_name || ' WHERE ID IN(' || chr(13)|| chr(10);
stmt:=stmt || 'select COMMAND_CT.ID from ' || i.object_name || ' COMMAND_CT' || chr(13)|| chr(10);
stmt:=stmt || ' inner join IPMP_NGN_EXECUTE_COMMAND_CT ' || chr(13)|| chr(10);
stmt:=stmt || ' on( ' || chr(13)|| chr(10);
stmt:=stmt || ' COMMAND_CT.EXECUTE_COMMAND_ID = IPMP_NGN_EXECUTE_COMMAND_CT.ID ' || chr(13)|| chr(10);
stmt:=stmt || ' ) ' || chr(13)|| chr(10);
stmt:=stmt || ' inner join IPMP_NGN_ELABOR_JOB_CT ' || chr(13)|| chr(10);
stmt:=stmt || ' on( ' || chr(13)|| chr(10);
stmt:=stmt || ' IPMP_NGN_EXECUTE_COMMAND_CT.ELABOR_JOB_ID = IPMP_NGN_ELABOR_JOB_CT.ID ' || chr(13)|| chr(10);
stmt:=stmt || ' ) ' || chr(13)|| chr(10);
stmt:=stmt || ' WHERE ' || chr(13)|| chr(10);
stmt:=stmt || ' IPMP_NGN_ELABOR_JOB_CT.START_DATE < (SYSDATE - 15) ' || chr(13)|| chr(10);
stmt:=stmt || ' ) ' || chr(13)|| chr(10);
dbms_output.put_line(stmt);
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Qui, 19 Abr 2012 2:13 pm
por DanielNN
Quando for escrever uma mensagem, tem uma lista de botões acima da área do texto.
Tem um botão "Code"(dentre outros), que basta clicar lá após selecionar o código.
Querendo se aprofundar só dar uma olhada em "BB codes".
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Qui, 19 Abr 2012 2:21 pm
por analima.ilha
Esse EXECUTE IMMEDIATE tem que vim no inicio??
eu chamei ele no final.
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Qui, 19 Abr 2012 2:56 pm
por DanielNN
Exato, no início, antes de seu comando. Como postei anteriormente.
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Qui, 19 Abr 2012 3:03 pm
por analima.ilha
Obrigada pela ajuda =)
Re: Procedure que busca todas as tabelas com o mesmo inicio?
Enviado: Qui, 19 Abr 2012 3:25 pm
por DanielNN
De nada.
Ajudamos sempre que podemos.