Izis

O erro acontenceu porque a sub-query trouxe mais de uma linha e você está
usando um operador de comparação simples (o sinal de igual).

Você pode verificar as seguintes coisas:
- Utilizar o operador IN ao invés de = (igual), pois o IN
aceita comparação com mais de uma linha.
- Continuar com o operador de igual (=), mas garantir que a sub-query
retorne apenas uma linha no máximo (talvez usando função de grupo... ou
revisando as condições de seleção da sub-query).
- Verificar se a sub-query está trazendo várias linhas devido a um erro nos
seus joins.

[ ]

André


Em 24/07/08, izisfilipaldi <[EMAIL PROTECTED]> escreveu:
>
>   Bom dia,
> estou precisando da ajuda de vocês...
>
> Não estou conseguindo fazer o seguinte update:
>
> UPDATE tabelaA SET campo.tabelaA = campo.tabelaB
> WHERE campo.tabelaA =
> (
> SELECT campo.tabelaB FROM tabelaA, tabelaB, tabelaC
> WHERE condições_especificas
> )
>
> O seguinte erro acontece:
>
> "ORA-01427: single-row subquery returns more than one row."
>
> Só que eu estou selecionando na subquery apenas uma coluna, como pode
> ver no exemplo acima.
> E então ele nao está aceitando porque diz que o select está trazendo
> mais de uma linha.
> Eu não tenho muita experiencia com as funções do Oracle.
> Já tentei usar o exemplo sugerido aqui
> (http://www.techonthenet.com/oracle/errors/ora01427.php), mas pelos
> select que fiz antes, os valores que foram retornados usando esse
> exemplo eram diferentes do valor correto.
>
> O que mais preciso fazer para que meu update de certo? Algo com Join?
> pode me ajudar com um exemplo de update com join ou sem ? Estou
> precisando muito.
>
> Obrigada a todos.
>
> Izis Filipaldi
> Tecmedd - TI
> Ribeirão Preto/SP
>
> 
>


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

Responder a