Update com subselect, com erro ORA-00936

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
Marcio Souza
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 13
Registrado em: Qua, 20 Jun 2007 11:48 am
Localização: RJ
Márcio Souza

Olá pessoal, boa noite a todos!

Estou tentando realizar o update abaixo, mas não roda e exibi o erro ORA-00936, porém se eu rodar somente o select não dá erro, estou enviando a query abaixo. Agradeço pela ajuda.


UPDATE se2010
SET e2_datalib = '20120814',
e2_usualib = 'Administrador',
e2_baixa = '20120814',
e2_saldo = '0',
e2_valliq = e2_valor,
e2_hist = 'MSG.'
WHERE (SELECT * FROM se2010, sed010
WHERE e2_saldo > 0
AND se2010.e2_filial = '01'
AND se2010.d_e_l_e_t_ = ' '
AND e2_exig <> 'N'
AND e2_naturez <> '2603'
AND e2_tipo NOT IN ('NDF', 'ADV')
AND sed010.d_e_l_e_t_ = ' '
AND sed010.ed_filial = '01'
AND e2_tipo <> 'PA'
AND e2_vencto <= '20111227'
AND e2_naturez = ed_codigo)

Muito obrigado,

Márcio Souza
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Brother,

Não tenho como rodar aqui...
Veja se tem o mesmo efeito:

Selecionar tudo

UPDATE se2010
   SET e2_datalib = '20120814',
       e2_usualib = 'Administrador',
       e2_baixa   = '20120814',
       e2_saldo   = '0',
       e2_valliq  = e2_valor,
       e2_hist    = 'MSG.'
 WHERE
     AND e2_saldo > 0 
     AND e2_exig <> 'N'
     AND e2_naturez <> '2603'
     AND e2_tipo NOT IN ('NDF', 'ADV')
     AND e2_tipo <> 'PA'
     AND e2_vencto <= '20111227' 
     AND EXISTS (SELECT 1
                   FROM sed010 e1
                  WHERE e1.e2_filial = '01'
                    AND se2010.e2_naturez = e1.ed_codigo
                    AND e1.d_e_l_e_t_ = ' '
                    AND e1.d_e_l_e_t_ = ' '
                    AND e1.ed_filial = '01') 
Marcio Souza
Rank: Estagiário Sênior
Rank: Estagiário Sênior
Mensagens: 13
Registrado em: Qua, 20 Jun 2007 11:48 am
Localização: RJ
Márcio Souza

Fala Trevisolli,

Apresentou o mesmo problema, sinistro...

Obrigado hein!
Trevisolli
Moderador
Moderador
Mensagens: 2016
Registrado em: Qua, 12 Jan 2005 3:25 pm
Localização: Araraquara - SP
Abraço,

Trevisolli
OCA Oracle PL/SQL Developer Certified Associate
OCP Oracle Forms Developer Certified Professional
Araraquara-SP

Desculpae,
Na hora de colar, colei de uma aba errada (tinha um AND a mais):

Selecionar tudo

UPDATE se2010
   SET e2_datalib = '20120814',
       e2_usualib = 'Administrador',
       e2_baixa   = '20120814',
       e2_saldo   = '0',
       e2_valliq  = e2_valor,
       e2_hist    = 'MSG.'
WHERE e2_saldo > 0 
     AND e2_exig <> 'N'
     AND e2_naturez <> '2603'
     AND e2_tipo NOT IN ('NDF', 'ADV')
     AND e2_tipo <> 'PA'
     AND e2_vencto <= '20111227' 
     AND EXISTS (SELECT 1
                   FROM sed010 e1
                  WHERE e1.e2_filial = '01'
                    AND se2010.e2_naturez = e1.ed_codigo
                    AND e1.d_e_l_e_t_ = ' '
                    AND e1.d_e_l_e_t_ = ' '
                    AND e1.ed_filial = '01') 
Responder
  • Informação
  • Quem está online

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