Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Morpheus#2005

Cursor Update com Join

Recommended Posts

Amigos, bom dia!

 

 

Eu estou tentando aprender sobre cursores para Oracle, o que eu preciso é o seguinte:

 

Eu tenho 2 BASES e preciso atualizar campo OBS da Base CERT_SET09 que possuem o desc_tipo_comissao = 'casas' seja atualizado com o OBS da base SMART.

 

 

Alguém pode me dar uma luz?

 

OBRIGADOO

DECLARE 
  CURSOR C 
  IS 
  SELECT * FROM SMART; 

  REC C%ROWTYPE; 
BEGIN 
  OPEN C; 

  LOOP 
     FETCH C INTO REC; 

     EXIT WHEN C%NOTFOUND; 

     UPDATE CERT_SET09 
        SET OBS = REC.OBS 
      WHERE  ID_DETSUBS = REC.ID_DETSUBS AND 
      DESC_TIPO_COMISSAO = 'CASAS'; 

  END LOOP; 

  CLOSE C; 
END; 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Error at line 2
ORA-06550: linha 16, coluna 23:
PLS-00302: component 'OBS' must be declared
ORA-06550: linha 16, coluna 19:
PL/SQL: ORA-00904: "REC"."OBS": identificador inválido
ORA-06550: linha 15, coluna 6:
PL/SQL: SQL Statement ignored


Mota, eu queria fazer um cursor porque a tabela CERT_SET09 tem mais de 1 milhão de registros.

 

Eu tentei assim, mais nao funciona...se tiver uma outra luz eu agradeço.

UPDATE CERT_SET09 X

   SET X.OBS = (
                         SELECT NOME
                            FROM SMART 
                                WHERE  SMART.ID = X.ID AND 
                                       X.DESC_TIPO_COMISSAO = 'CASAS'
  )
   

Compartilhar este post


Link para o post
Compartilhar em outros sites

pelo que entendi troque

 


SET OBS = REC.OBS 

 

 

por

 

 

 

SET OBS = REC.nome

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.