Я могу показать вам, как это сделать в SQL * Plus. Посмотрите, сможете ли вы заставить его работать в SQL Developer.
Для целей тестирования я создал тестовую таблицу в схеме Скотта как
SQL> create table test as select * from dept;
Table created.
Сценарий выглядит следующим образом (я назвал его "cont" как продолжить выполнение сценария, если ... ):
select * from test;
prompt Which deptno do you want to delete?
accept p_deptno prompt 'Deptno : ';
set verify off;
set heading off;
select 'Are you sure you want to delete ' || d.dname || '? '
from test d
where d.deptno = &p_deptno;
accept odg prompt 'Y / N : ' ;
set termout off;
set pause off;
set echo off;
column a newline;
spool c:\temp\odg.sql
select decode(upper('&odg'), 'Y', 'prompt Executing ...',
'prompt Stopped'
),
decode(upper('&odg'), 'Y', '', 'accept return_key prompt ''Press <Return>''') a,
decode(upper('&odg'), 'Y', '', 'exit') a
from dual;
spool off;
set termout on;
@c:\temp\odg
delete from test where deptno = &p_deptno;
select * from test;
accept return_key prompt 'Press <Return>'
exit;
Посмотрим, как это работает:
SQL> @cont
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
Which deptno do you want to delete?
Deptno : 20
Are you sure you want to delete RESEARCH?
Y / N : y
Executing ...
1 row deleted.
10 ACCOUNTING NEW YORK
30 SALES CHICAGO
40 OPERATIONS BOSTON
Press <Return>
Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production
c:\Temp>
В SQL Developer вы запускаете его как
c:\temp\cont.sql
(вы бы написали это на рабочем листе) и выполняли его как скрипт. SQL Developer предложит вам параметры; смотреть выполнение в окне вывода скрипта.