Jagadisha_Ingenious Ответов: 1

Ошибка запроса разработчика Sql при запуске скрипта


DECLARE 
 testID number(6); 
 testRevID number(6);
 LDescription varchar2(100) := 'Omaha : Ensuring Y-D Circuit 2A compressor Fixture Removed test -4 comp';

BEGIN

SELECT tl.TESTID INTO testID FROM TESTLIB tl
WHERE tl.DBDESCRIPTION = LDescription; 
  
SELECT tlv.testrevid INTO testRevID FROM TESTLIBREVISION tlv
where tlv.revision = 2 and tlv.testid = testID;

dbms_output.put_line(testID); 
dbms_output.put_line(testRevID); 
  
END; 


Я получаю следующую ошибку, когда запускаю запрос в SQL Developer:
Error report:
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at line 11
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



Может ли кто-нибудь сказать мне, что не так с вышеприведенным запросом?. Любая помощь будет оценена по достоинству.

Заранее спасибо.

Что я уже пробовал:

SELECT tlv.testrevid FROM TESTLIBREVISION tlv
where tlv.revision = 2 and tlv.testid = 1604;

dbms_output.put_line(testrevid); 


Но когда я запускаю приведенный выше скрипт, я получаю одно значение.

CHill60

Попробуйте включить AND ROW_NUM=1 в предложении where.
В фрагменте кода, который, как вы утверждаете, работает, вы на самом деле не присваиваете значение testRevID

Jagadisha_Ingenious

Следующий запрос, который я попробовал:

Выберите tl.TESTID в testID из TESTLIB tl
Где tl. DBDESCRIPTION = LDescription;

Выберите ПДК.testrevid в testRevID от TESTLIBREVISION тлв
где tlv. revision = 2 и tlv. testid = testID;

Он выдает ошибку. Это потому, что я беру testID из 1-го запроса и использую его во 2-м запросе...?

1 Ответов

Рейтинг:
2

Member 12088223

Проблема определенно связана только с тем, что запрос select возвращает более одной строки.

пожалуйста, проверьте наличие других значений. просто попробуйте найти повторяющиеся значения