Ошибка запроса разработчика 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-м запросе...?