Verificando em qual bloco está armazenda determinada linha

Saudações pessoal, como verificar em qual bloco encontra-se determinada linha ?

1 – Crie uma tabela qualquer com no mínimo uma coluna, no meu caso o nome da tabela é TB_VENDAS, possui três colunas, id (number), nome varchar2 e cidade varchar2. Em seguida  insira algumas linhas.

2 – Localize o rowid da linha

SQL> select rowid,id,nome from vendas.tb_clientes where id=987;
                   ROWID             ID         NOME
AACnayAAFAAAAaeAAk    987     PRISCILLA

3 – O ID da linha é AACnayAAFAAAAaeAAk, em seguida, descrobriemos o bloco no qual a linha está armazenada

SQL> select dbms_rowid.rowid_block_number(‘AACnayAAFAAAAaeAAk’) bloco from dual;
  BLOCO
———-
      1694

4 – O código do bloco é 1694, com a função abaixo, descobriremos o id do datafile. Depois disso fazer um select na DBA_DATA_FILES.

SQL> select dbms_rowid.rowid_relative_fno(‘AACnayAAFAAAAaeAAk’) datafile from dual;
   DATAFILE
———-
         5

Conclusão:

Particularmente, não me lembro de uma situação onde precisei de uma análise nesse nível, porem, acredito que todo conhecimento é bem vindo.

Abraços e até a próxima.

Anúncios
Comente ou deixe um trackback: URL do Trackback.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: