Galera, beleza??
Estou com um problema, estou tendo problema em um relatorio do sistema aqui da empresa pois tem um valor de um campo que esta muito alto. Mais não sei de que tabela e nem que campo esta armazenado este valor. Entaum gostaria de saber se tem como atravez de um valor eu procurar em todas as tabelas e campos existentes no banco de dados oracle e achar
procurar campo com valor
-
- Rank: DBA Sênior
- Mensagens: 372
- Registrado em: Ter, 24 Jan 2006 3:33 pm
- Localização: Palmas - TO
- Contato:
Talvez você monitoriando a sessão do usuario seja mais fácil:
Essa sql foi tirada desse link: http://www.fors.com/orasupp/rdbms/misc/15476_1.HTM
Gilberto
select b.username username, c.sid sid, c.owner object_owner,
c.object object, b.lockwait, a.sql_text SQL
from v$sqltext a, v$session b, v$access c
where a.address=b.sql_address and
a.hash_value=b.sql_hash_value and
b.sid = c.sid and
c.owner = 'usuario'
Gilberto
- dr_gori
- Moderador
- Mensagens: 5026
- 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
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Outra forma é criar um script que consulta em todos campos numéricos!
Uma vez eu fiz algo parecido assim:
* Alguém alterou a hora do servidor e durante o período de 5 minutos, todos os SYSDATE ficaram com a data de 2030 !
Pra achar as linhas inseridas com essa data errada, eu fiz um select que "montava" uma consulta no banco em todas tabelas.
Com base nesse select, eu fiz uma procedure que gerava um script assim: Um select em cada tabela, em cada campo DATE ele testava a minha condição:
A procedure montava um script assim:
Depois de gerado esse script, eu apenas executei ele. A resposta foi mostrada na tela quantas linhas em cada tabela. Funcionou perfeitamente!
Tente fazer algo parecido !
Uma vez eu fiz algo parecido assim:
* Alguém alterou a hora do servidor e durante o período de 5 minutos, todos os SYSDATE ficaram com a data de 2030 !
Pra achar as linhas inseridas com essa data errada, eu fiz um select que "montava" uma consulta no banco em todas tabelas.
SELECT A.TABLE_NAME , B.COLUMN_NAME, B.DATA_TYPE
FROM ALL_TABLES A
, ALL_TAB_COLUMNS B
WHERE A.OWNER='CLIEMP'
AND A.TABLE_NAME = B.TABLE_NAME
AND A.OWNER = B.OWNER
AND B.DATA_TYPE = 'DATE'
campo_tal > to_date('01-01-2010', 'dd-mm-yyyy'
SELECT COUNT(*)
FROM TABELA_X
WHERE CAMPODATA1 > to_date('01-01-2010', 'dd-mm-yyyy')
OR CAMPODATA2 > to_date('01-01-2010', 'dd-mm-yyyy')
/
SELECT COUNT(*)
FROM TABELA_Y
WHERE CAMPODATA5 > to_date('01-01-2010', 'dd-mm-yyyy')
/
Tente fazer algo parecido !
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Google [Bot] e 1 visitante