2016-01-11 5 views
0

я следующий кусок кода:Как назначить переменную select?

DECLARE 
    v_oras locations.city%TYPE; 
BEGIN 
    SELECT l.city FROM locations l,departments d WHERE l.location_id = d.location_id AND d.department_id = 30; 
END; 
/

Как я могу назначить избранный на переменном предыдущий объявлена?

+1

Возможный дубликат [Я хочу присвоить значение числа от выбора к переменной, которая будет использоваться для дальнейших вычислений] (http://stackoverflow.com/questions/33260552/i-want-to-assign-the- номер-значение-от-а-выбрать-к-а-переменной, чтобы быть используемым в обмен на меха) –

ответ

3
DECLARE 
    v_oras locations.city%TYPE; 
BEGIN 
    SELECT l.city 
    INTO v_oras 
    FROM locations l,departments d 
    WHERE l.location_id = d.location_id 
    AND d.department_id = 30; 
END; 
/
5

Используйте заявление SELECT INTO.

DECLARE 
    v_oras locations.city%TYPE; 
BEGIN 
    SELECT l.city 
    INTO v_oras 
    FROM locations l 
    JOIN departments d ON l.location_id = d.location_id 
    WHERE d.department_id = 30; 
END; 

Это может быть использовано с множеством значений, возвращаемых из вашего SELECT заявления и назначены INTO объявленные переменные, а также.

3

SELECT INTO - самый простой способ. https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/selectinto_statement.htm

Просто понять, что: 1. Если запрос возвращает более одной строки, то исключение TOO_MANY_ROWS будет поднят. 2. Если запрос не возвращает данные, исключение NO_DATA_FOUND будет поднято.

Если вы не можете гарантировать, что ни одно из этих событий не произойдет, вам может потребоваться обработать эти исключения.

См. Примечания к использованию в документации, приведенной выше.

Смежные вопросы