Поскольку вы выполняете код PL / SQL, вы не можете просто выполнить запрос SELECT, не сделав с ним что-либо.
Есть несколько способов обработки запросов на выборку в PL / SQL.
1) INTO
, где вы берете строку, возвращенную из запроса, и присваиваете ее переменным. * Обратите внимание на указанную строку, а не на строки. Если ваш запрос возвращает более одной строки, вы не можете использовать предложение INTO
, поскольку оно сгенерирует исключение TO_MANY_ROWS
.
DECLARE
id_min CONSTANT INTEGER := 17778;
id_max CONSTANT INTEGER := 17803;
variable1 your_variable_type;
variable2 your_variable_type;
variable3 your_variable_type;
BEGIN
SELECT
*
INTO
variable1,
variable2,
variable3
FROM
MDB.SCORES
WHERE
SAMPLE_ID BETWEEN id_min AND id_max;
---- DO SOMETHING WITH YOUR VARIABLES ----
END;
2) FOR
l oop, если у вас есть одна или несколько строк.
DECLARE
id_min CONSTANT INTEGER := 17778;
id_max CONSTANT INTEGER := 17803;
BEGIN
FOR c IN (
SELECT
*
FROM
MDB.SCORES
WHERE
SAMPLE_ID BETWEEN id_min AND id_max
) LOOP
---- DO SOMETHING WITH YOUR VARIABLES ----
---- ACCESS A COLUMN ----
c.column_name;
END LOOP;
END;
3) CURSOR
декларирование.
DECLARE
id_min CONSTANT INTEGER := 17778;
id_max CONSTANT INTEGER := 17803;
v_cursor SYS_REFCURSOR;
your_variables
...
BEGIN
OPEN v_cursor FOR
SELECT
*
FROM
MDB.SCORES
WHERE
SAMPLE_ID BETWEEN id_min AND id_max;
LOOP
FETCH v_cursor INTO your_variables;
EXIT WHEN v_cursor%NOTFOUND;
---- DO SOMETHING WITH YOUR VARIABLES ----
END LOOP;
END;