Não, consulte o manual Oracle "PL/SQL User´s Guide" que vc vai ver que em PL/SQL o IF ** não aceita ** uma expressão SQL : vc terá que OU colocar o valor numa variável, OU escrever uma função que retorne BOOLEAN cfrme achou ou não linhas e pedir IF minhafunc THEN ... , Ou usar um construto diferente, como por exemplo : for r in (select) loop ... comandos que tem que ser executados se a query tiver linhas end loop;
==> e isso, é CLARO, supondo que a verificação TEM que ser feita, se o teu objetivo é fazer um UPDATE se houver regs nas condições, digamos, tranquilamente vc poderia fazer diretamente : update tabela where condições; x := sql%rowcount; if x > 0 then não havia linhas a alterar... OBS : vc não diz, mas pelo jeito usava outro banco, certo ? Acima vc está vendo que NÂO TEM JEITO, bancos diferentes implementas sintaxes diferentes, vc VAI TER ALTERAÇÕES sim nesse sistema.... E é claro, há diferenças *** PROFUNDAS *** no mecanismo de travamento de registros, no processamento de transações, no bloqueio, enfim, em MUITOS pontos do Oracle em relação aà outros (em especial SQLServer), se o sistema é não-trivial vc VAI TER SIM muitas alterações importantes pra fazer se é exigida performance ao menos razoável, vc VAI ter peixes muito muito maiores pra fritar... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, "eduguiso" <[EMAIL PROTECTED]> escreveu > > Pessoal posso usar select desta maneira dentro de trigger ? > > if ((select count(*) from t3 where cod = :new.cod) > 1) then > .... > .... > end if; > > Talvez a melhor maneira seria inserir o resultado do count(*) em uma > variável, mas tenho um sistema inteiro escrito desta forma e estou > convertendo para Oracle, portanto preciso mexer o mínimo possível. > > Valeu. > > Eduardo >