Есть по крайней мере два способа сделать это в SQL Developer ,
С переменной связывания:
variable u_id number
execute select U_ID into :u_id from USERS where U_NAME='KEN';
select * from USERS where U_ID = :u_id;
select * from ADRESS where U_ID = :u_id;
Или с переменной замещения:
column U_ID new_value sub_u_id;
set verify off
select U_ID from USERS where U_NAME='KEN';
select * from USERS where U_ID = &sub_u_id;
select * from ADRESS where U_ID = &sub_u_id;
Что в этом случае можно упростить:
column U_ID new_value sub_u_id;
set verify off
select * from USERS where U_NAME='KEN';
select * from ADRESS where U_ID = &sub_u_id;
Подробнее о variable
command , execute
command, column
command и это new_value
clause и substitution variables в документации SQL * Plus - большая часть из них относится и к разработчику SQL.
Demos с таблицами, созданных с немного разными именами столбцов, чтобы избежать ключ/зарезервированные слова:
create table USERS (U_ID number, U_NAME varchar2(10));
insert into users values (1, 'KEN');
create table ADRESS(A_ID number, U_ID number, CITY varchar2(10));
insert into adress values (1, 1, 'LONDON');
prompt Demo 1: bind variables
var u_id number
exec select U_ID into :u_id from USERS where U_NAME='KEN';
select * from USERS where U_ID = :u_id;
select * from ADRESS where U_ID = :u_id;
prompt Demo 2: substitution variables
column U_ID new_value sub_u_id;
set verify off
select * from USERS where U_NAME='KEN';
select * from ADRESS where U_ID = &sub_u_id;
Запуск сценария, окно вывода сценария показывает:
Table USERS created.
1 row inserted.
Table ADRESS created.
1 row inserted.
Demo 1: bind variables
PL/SQL procedure successfully completed.
U_ID U_NAME
---------- ----------
1 KEN
A_ID U_ID CITY
---------- ---------- ----------
1 1 LONDON
Demo 2: substitution variables
U_ID U_NAME
---------- ----------
1 KEN
A_ID U_ID CITY
---------- ---------- ----------
1 1 LONDON
Вы можете подавить PL/SQL procedure successfully completed
сообщение с set feedback off
, конечно.
Alex, спасибо большое за ваш отличный ответ. Пример переменной привязки отлично подходит для меня. Глагол NEW_VALUE помечен как ошибка редактором SQL SQL Worksheet, но скрипт все еще работает. – weberjn
Да, у него есть несколько синтаксических обозначений идиосинкразий. Вероятно, я должен проверить форум SD, чтобы узнать, действительно ли они были сообщены * 8-) –