Preciso fazer uma procedure que busque todas as tabelas com inicio "tblw"
e não sei qual logica usar, alguém pode me ajudar?
Procedure que busca todas as tabelas com o mesmo inicio?
-
- Rank: Estagiário Sênior
- Mensagens: 14
- Registrado em: Qua, 14 Mar 2012 12:41 pm
Atenciosamente,
Ana Lima.
Ana Lima.
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Boa tarde.
Tenta essa querie:
Lembrando que, o conteúdo de table_name é maiúsculo.
Qualquer coisa, manda pra gente.
Tenta essa querie:
select *
from all_tables
where table_name like 'TBLW%'
Qualquer coisa, manda pra gente.
-
- Rank: Estagiário Sênior
- Mensagens: 14
- Registrado em: Qua, 14 Mar 2012 12:41 pm
Atenciosamente,
Ana Lima.
Ana Lima.
Eu usei essa query
so que preciso usar isso dentro de uma procedure, e não to conseguindo..
so que preciso usar isso dentro de uma procedure, e não to conseguindo..
-
- Moderador
- Mensagens: 641
- Registrado em: Seg, 03 Set 2007 3:26 pm
- Localização: Fortaleza - CE
att,
Daniel N.N.
Daniel N.N.
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:
Não se pode fazer um simples "select ... from". É preciso fazer um:
SELECT ....
INTO...
FROM ...
WHERE...
-
- Rank: Estagiário Sênior
- Mensagens: 14
- Registrado em: Qua, 14 Mar 2012 12:41 pm
Atenciosamente,
Ana Lima.
Ana Lima.
Mesmo assim não funcionou
já tentei um cursor... mas também não funciona...
=S
criado com erros de compilaçao.
já tentei um cursor... mas também não funciona...
=S
criado com erros de compilaçao.
-
- Moderador
- Mensagens: 2016
- Registrado em: Qua, 12 Jan 2005 3:25 pm
- Localização: Araraquara - SP
Abraço,
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP
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.
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.
-
- Rank: Estagiário Sênior
- Mensagens: 14
- Registrado em: Qua, 14 Mar 2012 12:41 pm
Atenciosamente,
Ana Lima.
Ana Lima.
Esta assim:
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;
-
- Moderador
- Mensagens: 641
- Registrado em: Seg, 03 Set 2007 3:26 pm
- Localização: Fortaleza - CE
att,
Daniel N.N.
Daniel N.N.
Tirando o fato do "END;" no final do teu código, não vejo problemas nesta procedure:
Até executei aqui sem problemas.
Talvez seja problema de permissão.
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;
Talvez seja problema de permissão.
-
- Rank: Estagiário Sênior
- Mensagens: 14
- Registrado em: Qua, 14 Mar 2012 12:41 pm
Atenciosamente,
Ana Lima.
Ana Lima.
Pois é,
ele foi criada dentro de body package
nem sei porque não ta funcionando...
ele foi criada dentro de body package
nem sei porque não ta funcionando...
-
- Rank: Estagiário Sênior
- Mensagens: 14
- Registrado em: Qua, 14 Mar 2012 12:41 pm
Atenciosamente,
Ana Lima.
Ana Lima.
Ta sendo criada com erros de compilacao.... =/
-
- Rank: Estagiário Sênior
- Mensagens: 14
- Registrado em: Qua, 14 Mar 2012 12:41 pm
Atenciosamente,
Ana Lima.
Ana Lima.
esse erro:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:
-
- Moderador
- Mensagens: 641
- Registrado em: Seg, 03 Set 2007 3:26 pm
- Localização: Fortaleza - CE
att,
Daniel N.N.
Daniel N.N.
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.
Verifique se está tudo certo, todos ";" nos lugares e os ENDs (END, END LOOP, END IF) corretos.
-
- Rank: Estagiário Sênior
- Mensagens: 14
- Registrado em: Qua, 14 Mar 2012 12:41 pm
Atenciosamente,
Ana Lima.
Ana Lima.
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?
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?
-
- Moderador
- Mensagens: 641
- Registrado em: Seg, 03 Set 2007 3:26 pm
- Localização: Fortaleza - CE
att,
Daniel N.N.
Daniel N.N.
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:
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:
EXECUTE IMMEDIATE 'Delete from ' || cursor.tabela ;
-
- Rank: Estagiário Sênior
- Mensagens: 14
- Registrado em: Qua, 14 Mar 2012 12:41 pm
Atenciosamente,
Ana Lima.
Ana Lima.
No caso ficou assim
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);
Editado pela última vez por analima.ilha em Qui, 19 Abr 2012 2:11 pm, em um total de 1 vez.
-
- Moderador
- Mensagens: 641
- Registrado em: Seg, 03 Set 2007 3:26 pm
- Localização: Fortaleza - CE
att,
Daniel N.N.
Daniel N.N.
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".
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".
-
- Rank: Estagiário Sênior
- Mensagens: 14
- Registrado em: Qua, 14 Mar 2012 12:41 pm
Atenciosamente,
Ana Lima.
Ana Lima.
Esse EXECUTE IMMEDIATE tem que vim no inicio??
eu chamei ele no final.
eu chamei ele no final.
-
- Rank: Estagiário Sênior
- Mensagens: 14
- Registrado em: Qua, 14 Mar 2012 12:41 pm
Atenciosamente,
Ana Lima.
Ana Lima.
Obrigada pela ajuda =)
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante