Cursor Dinâmico

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
cleberzumba
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 223
Registrado em: Qui, 14 Dez 2006 10:45 am
Localização: Brasília-DF
Cleber Zumba de Souza

O meu problema é o seguinte:

Eu quero pegar todas as tabelas de um determinado SCHEMA, até aí tudo bem, eu fiz o select à baixo:

Selecionar tudo

SELECT TABLE_NAME
FROM ALL_TABLES
WHERE OWNER = '<schema>'
Agora está a parte critíca, o schema que eu quero contém 155 tabelas e eu preciso fazer um select que me retorne todos os registros dessas tabelas sem precisar abrir 155 cursores, tem que ser algo dinâmico. estou dois dias nesse problema e ainda não encontrei solução. Alguém pode me ajudar?
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Caso você tenha que fazer isso apenas uma vez, você pode simplesmente MONTAR um script e depoise executar. Algo assim:

Selecionar tudo

select 'SELECT * FROM '||table_name||';' COMANDO
FROM ALL_TABLES
Aí você salva a saída desse SQL e executa no SQL*Plus.

Uma vez eu fiz um script que procurava em todas tabelas se havia datas maiores que 2010. (usei também a ALL_TAB_COLUMNS pra saber os campos que eram datas).
cleberzumba
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 223
Registrado em: Qui, 14 Dez 2006 10:45 am
Localização: Brasília-DF
Cleber Zumba de Souza

Na verdade eu preciso salvar o resultado dos 155 select que esse select gerou.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Salvar aonde ? Num txt ?
Se você quer apenas VER, pode fazer do jeito acima, pois você abre um SPOOL antes de rodar o select.

É claro, esse método acima só serve pra quando se quer fazer uma consulta específica...(não algo que deve ser feito com frequencia, num programa, por exemplo).
cleberzumba
Rank: DBA Júnior
Rank: DBA Júnior
Mensagens: 223
Registrado em: Qui, 14 Dez 2006 10:45 am
Localização: Brasília-DF
Cleber Zumba de Souza

é algo com frequencia sim. e pode ser salvo num .txt ou numa planilha .xls
Responder
  • Informação
  • Quem está online

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