Multiple rows in a singleton selection

Pessoal, estou tendo esse erro (citado no título) quando minha trigger é disparada. Vejam o SQL:

CREATE TRIGGER VOLTAR_ESTOQUE_VENDA FOR ITENSMOVIMENTO
ACTIVE BEFORE DELETE POSITION 0
AS
declare cod integer = 0;
begin

    SELECT OLD.COD FROM ITENSMOVIMENTO INTO :COD;

end

A intençao nesse caso, é saber o código (PK) do registro deletado.

O que está errado nesta trigger?

como vc esta usando a clausula INTO, a query “presume” q isso aih pode retornar mais q 1 registro…e esse eh o erro…ao inves de colocar INTO :COD, vc nao pode colocar WHERE COD=0 ?

Pq cod = 0?

Nao entendi quando vc diz que ‘presume’ que poderá retornar mais de 1 valor. Pois estou pesquisando por PK a cada DELETE ocorrido. E cada PK tem seu valor distinto no banco.

O trecho “INTO :COD” significa que estou atribuindo o resultado do meu select a variavel COD, a qual declarei no começo da trigger.

hehehe…faz um tempão q não mexo com PL/SQL,…confundi INTO com IN…

entao, ta faltando a clausula WHERE na sua consulta não ta? pra vc garantir q soh retorne 1 registro…mas de qq forma, o uso do INTO eh assim:

CREATE TRIGGER VOLTAR_ESTOQUE_VENDA FOR ITENSMOVIMENTO
ACTIVE BEFORE DELETE POSITION 0
AS
declare cod integer = 0;
begin

    SELECT OLD.COD INTO :COD FROM ITENSMOVIMENTO;

end

Pedro. Sinto muito, mas essa sua sugestão nem ao menos compila.
Como eu disse, [quote]quando minha trigger é disparada.[/quote] Ou seja, ela esta ‘funcionando’, e o uso do INTO nao está incorreto.

Mas ok pedro, vlw pela ajuda, tudo de bom…
[]s

bom, como eu disse antes, faz tempo q não mexo com pl/sql…hehehe…e aqui nem tenho ambiente pra testar isso…

espero nao ter atrapalhado, ja q nao pude ajudar…

flw