Вы также можете использовать переменные связывания в SQL * Plus, все еще как :recordId
.Версия &
запросит значение и не имеет прямого отношения к версии variable
.
variable recordId number;
BEGIN
SELECT MAX(recordvalue)
INTO :recordId
FROM sometable;
END;
/
PRINT recordid;
SELECT *
FROM someothertable
WHERE recordkey = :recordId;
Несколько более распространенный способ присвоения значений переменным связывания - с помощью exec :recordId := value;
, ноВ любом случае, exec
- это просто сокращение для анонимного блока.
Хотя вы не знаете, почему вы хотите так смешивать и сочетать.Если вы хотите использовать результат одного запроса в последующем, вместо этого вы можете попробовать new_value
:
column x_val new_value y_val; -- could also noprint if you do not need to see the intermediate value
SELECT MAX(recordvalue) x_val
FROM sometable;
SELECT *
FROM someothertable
WHERE recordkey = &y_val;