Para que ser rowid

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
rogerkirk
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 5
Registrado em: Qua, 20 Jan 2010 7:00 am
Localização: campinas

Ola galera, eu gostaria que se puder, a explicacao do rowid

por exemplo:

Selecionar tudo

select nome,produto,cobrança rowid
  from produtos
Por que foi colocado o rowid?

Grato Roger
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

RowID é uma identificação única para cada registro no banco de dados Oracle.

Independente de tabela..
Avatar do usuário
fsitja
Rank: OraSauro
Rank: OraSauro
Mensagens: 611
Registrado em: Seg, 19 Jan 2009 4:29 pm
Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html

OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist

O Rowid é um "endereço" lógico da linha no disco. O rowid identifica de forma única uma linha numa tabela, mas pode ocorrer do rowid ser igual para mais de uma linha de duas tabelas se elas forem clusterizadas.

Um select por rowid é a forma mais rápida de retornar uma linha individual pois já trazem informação de onde buscar os dados em seu conteúdo.
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

As vezes é perigoso usar ROWID, por exemplo: armazenar numa tabela o ROWID de uma linha que você quer.
Veja mais nesse tópico:
http://glufke.net/oracle/viewtopic.php?t=1146
Avatar do usuário
Marciel
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 158
Registrado em: Qui, 03 Mai 2007 10:12 am
Localização: Vitória - ES
Sabe qual o cúmulo da ignorância, da apatia e da ira?
Não sei, não quero saber e tenho raiva de quem sabe.

Rowid pode facilitar em alguns casos. Por exemplo, se uma tabela possui vários campos na chave primária, criar uma função para retornar um registro fica mais simples se for passado como parãmetro o rowid.

Rowid identifica unicamente um registro de uma tabela. Existem formas de, a partir dele, recuperar esses dados. Dá para criar funções e procedures dinâmicas que pelo rowid identificam em qual tabela deve trabalhar.

Exemplo de como pegar o nome da tabela, pelo rowid:

Selecionar tudo

DECLARE
  OBJECT_NAME   VARCHAR2 (50);
  ROW_ID        ROWID;
BEGIN
  SELECT ROWID
    INTO ROW_ID
    FROM EMP
   WHERE EMPNO = 7499;

  SELECT DBA_OBJECTS.OBJECT_NAME
    INTO OBJECT_NAME
    FROM SYS.DBA_OBJECTS
   WHERE DBA_OBJECTS.OBJECT_ID = DBMS_ROWID.ROWID_OBJECT (ROW_ID);

  DBMS_OUTPUT.PUT_LINE ('O nome do objeto é ' || OBJECT_NAME);
END;
Responder
  • Informação
  • Quem está online

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