DECLARE
V_CODSUP TAKB437T_HIER_SAP.CODSUP%TYPE;
V_CODFUNC TAKB437T_HIER_SAP.CODFUNC%TYPE;
V_COUNT NUMBER;
BEGIN
SELECT
CODSUP INTO V_CODSUP
FROM TAKB437T_HIER_SAP
WHERE
CODFUNC IN(4000951, 4002572);
END;
Select into não aceita de uma linha
esse bloco
como eu faço para guardar o retorno, caso haja, numa variável? Dessa forma não funciona. Achei que o type, desse a variável um tipo de coluna, aceitando assim vários results.
Esse é o erro
Error starting at line : 3 in command -
DECLARE
V_CODSUP TAKB437T_HIER_SAP.CODSUP%TYPE;
V_CODFUNC TAKB437T_HIER_SAP.CODFUNC%TYPE;
V_COUNT NUMBER;
BEGIN
/*SELECT
COUNT(ID_DADOS_CADASTRAIS) INTO V_COUNT
FROM DADOS_CADASTRAIS
WHERE
FL_SITUACAO = 'P';*/
SELECT
CODSUP INTO V_CODSUP
FROM TAKB437T_HIER_SAP
WHERE
CODFUNC IN(4000951, 4002572);
IF SQL%FOUND THEN
DBMS_OUTPUT.PUT_LINE(V_CODSUP);
END IF;
END;
Error report -
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at line 15
01422. 00000 - "exact fetch returns more than requested number of rows"
*Cause: The number specified in exact fetch is less than the rows returned.
*Action: Rewrite the query or change number of rows requested
- dr_gori
- Moderador
- Mensagens: 5018
- Registrado em: Seg, 03 Mai 2004 3:08 pm
- Localização: Portland, OR USA
- Contato:
Thomas F. G
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered
É que seu select está retornando mais de 1 linha.
Pra esses casos, você faz um CURSOR e recebe linha por linha.
Algo assim:
Pra esses casos, você faz um CURSOR e recebe linha por linha.
Algo assim:
begin
for vcur in (
SELECT
CODSUP
FROM TAKB437T_HIER_SAP
WHERE
CODFUNC IN(4000951, 4002572)
)
loop
dbms_output.put_line( vcur.CODSUP );
end loop;
end;
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 19 visitantes