ORACLE SQL: 暂停执行直到用户输入
ORACLE SQL: Pause Execution until a user input
我有一个像这样的 Oracle SQL 脚本:
- 显示 table
中的一些值
- 想在这里暂停,直到我可以查看上述步骤中 table 的值,然后点击按钮继续执行。如果这个值对我来说不错,我想在那里破坏 SQL 脚本。
- 执行一些清理,因为值看起来不太好,需要修复。
Oracle SQL 中有类似的东西吗?有点像在批处理文件中暂停,你必须点击 space 才能继续 运行,但我可以取消它
在 SQLPlus 中,您可以构建一个接受某些值的脚本,然后根据输入数据决定要处理的内容。
例如,这样的脚本:
d:\x.sql:
set verify off;
select 'some data' from dual;
/* prompt a message and ask for a value to store in a variable */
accept choice prompt 'Update data (Y/N)?';
begin
if '&choice' = 'Y' then /* check the variable value */
dbms_output.put_line('Update data');
else
dbms_output.put_line('Exit');
end if;
end ;
/
会做:
SQL> sta d:\x
'SOMEDATA
---------
some data
Update data (Y/N)?Y
Update data
SQL> sta d:\x
'SOMEDATA
---------
some data
Update data (Y/N)?N
Exit
我有一个像这样的 Oracle SQL 脚本:
- 显示 table 中的一些值
- 想在这里暂停,直到我可以查看上述步骤中 table 的值,然后点击按钮继续执行。如果这个值对我来说不错,我想在那里破坏 SQL 脚本。
- 执行一些清理,因为值看起来不太好,需要修复。
Oracle SQL 中有类似的东西吗?有点像在批处理文件中暂停,你必须点击 space 才能继续 运行,但我可以取消它
在 SQLPlus 中,您可以构建一个接受某些值的脚本,然后根据输入数据决定要处理的内容。
例如,这样的脚本:
d:\x.sql:
set verify off;
select 'some data' from dual;
/* prompt a message and ask for a value to store in a variable */
accept choice prompt 'Update data (Y/N)?';
begin
if '&choice' = 'Y' then /* check the variable value */
dbms_output.put_line('Update data');
else
dbms_output.put_line('Exit');
end if;
end ;
/
会做:
SQL> sta d:\x
'SOMEDATA
---------
some data
Update data (Y/N)?Y
Update data
SQL> sta d:\x
'SOMEDATA
---------
some data
Update data (Y/N)?N
Exit