Executa apenas o subselect, separadamente, e veja quantas linhas retornam

SELECT campo.tabelaB FROM tabelaA, tabelaB, tabelaC
WHERE condições_especificas

caso retorne mais de uma linha, utilize IN no lugar de =.

Um abraço,
Lílian Barroso



> 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
>
>
>
>


Responder a