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]