Pular para o conteúdo

Quantidade de linhas afetadas por UPDATE, DELETE e INSERT

Quantidade de linhas afetadas por UPDATE, DELETE e INSERT

Tudo bem Willians ?

Existe uma maneira fácil de eu saber quantos registros foram alterados por um UPDATE, sem que eu tenha que fazer um SELECT para isso ?

Jorge


Opa, tudo bem por aqui Jorge ! Espero que por aí também esteja.

Então, existe sim uma maneira de verificar isso. Uilize o SQL%ROWCOUNT. Abaixo um exemplo:

-- Criando a tabela

CREATE TABLE teste
  (
   codigo NUMBER
  ,descricao VARCHAR2(2000)
  )
/  

Table TESTE created.
-- Inserindo dados

INSERT INTO teste VALUES (1, 'DESCRICAO 1')
/

1 row inserted.

INSERT INTO teste VALUES (2, 'DESCRICAO 2')
/

1 row inserted.

-- Testando o SQL%ROWCOUNT

BEGIN
   UPDATE teste
   SET    descricao = 'TESTE DE UPDATE';

   DBMS_OUTPUT.put_line('Linhas atualizadas : ' || SQL%ROWCOUNT);

END;

Linhas atualizadas : 2

Simples assim ! Funciona também para DELETE e INSERT.

BEGIN
   DELETE FROM teste;

   DBMS_OUTPUT.put_line('Linhas deletadas : ' || SQL%ROWCOUNT);

END;

Linhas deletadas : 2

BEGIN
   INSERT INTO teste VALUES (1, 'DESCRICAO 1');

   DBMS_OUTPUT.put_line('Linhas inseridas : ' || SQL%ROWCOUNT);

END;

Linhas inseridas : 1

Agora, se você precisar recuperar as informações alteradas, deletadas ou inseridas, sugiro que dê uma olhada na cláusula RETURNING. Eu escrevi um artigo aqui no GPO sobre essa cláusula. Você pode conferir aqui !

Espero ter ajudado !

Quão útil foi este post ?

Clique em uma estrela para classificar o post

nota média 4.6 / 5. Contagem de votos: 28

Sem votos ! Seja o primeiro a classificar !

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

plugins premium WordPress