UPDATE TABELA_DOCSITENS ITE 
   SET MODELO = 0,

       DESCR_MODELO NVL((SELECT MAX(MOD.NM_MODELO)
                           FROM TB_MODELO MOD
                          WHERE MOD.CD_MODELO = ITE.MODELO),' ')

 

 

Marcelo Alberto Lauschner 

Analista/Desenvolvedor de Sistemas

 

  _____  

De: oracle_br@yahoogrupos.com.br [mailto:oracle...@yahoogrupos.com.br] Em
nome de Cristiano Martins
Enviada em: terça-feira, 3 de março de 2009 13:18
Para: usuarios_ora...@yahoogrupos.com.br; oracle_br@yahoogrupos.com.br
Assunto: [oracle_br] Re: Update com Subquery que retorne Multiplas linhas

 

Boa Tarde Pessoal, será que a única alternativa pra isso é um CURSOR?

>
> Estou executanto o seguinte update
>
> Update
> Tabela_DocsItens ite
> Set
> (Modelo, Descr_Modelo) = (select 0, mod.nm_modelo
> from tb_modelo mod
> where ite.modelo =
> mod.cd_modelo)
>
> com o seguinte erro:
>
> ORA-01427: a subconsulta de uma única linha retorna mais de uma linha
>
> O erro está claro, mas o que eu preciso é atualizar cada registro da
tabela
> Tabela_DocsItens com o relacionamento feito na SubQuery ite.modelo =
> mod.cd_modelo
>
> Isso não deveria funcionar? como poderia ser feito?
>
> no SQLServer pra fazer o que eu quero ficaria assim:
>
> update
> tabela_DocsItens
> set
> Modelo = 0,
> Descr_Modelo = mod.nm_modelo
> from
> tabela_DocsItens ite
> join tb_modelo mod on ite.modelo = cd_modelo
>
> Mas o Oracle não aceita UPDATE com FROM.
>
> Obrigado a Todos.
>

-- 
Abraço

Cristiano Martins Alves
http://www.delphifo <http://www.delphiforall.wordpress.com/>
rall.wordpress.com/
http://www.dug- <http://www.dug-sp.com> sp.com

[As partes desta mensagem que não continham texto foram removidas]





[As partes desta mensagem que não continham texto foram removidas]

Responder a