0
set verify off
accept project prompt ' project : '
select locknr,description,couserid,ciuserid from dgdtw_lockedinfo where
description = '&project' and ciuserid is null;
accept lock prompt ' locknumber : '
update dgdtw_lockedinfo set ciuserid = couserid where locknr = &lock;
update dgdtw_topografie set locknr = '' where locknr = &lock;
update dgdtw_topografie set verval=sysdate where id= &lock;
commit;
accept var prompt 'repeat process? [Y/N] ? '
define doit = 'H:\Scripts\stop.sql'
column doit new_value doit noprint
set termout off
select 'H:\Scripts\unlock.sql' doit from dual where upper('&var') like 'Y%';
set termout on
start &doit.
我需要一个循环脚本,所以如果项目为空或错误,脚本会要求重复或停止。 喜欢的东西:oracle plsql如果找不到重复
accept var prompt 'project number is wrong try again? [Y/N] ? '
直到项目编号是否正确或答案是“否”
sql * plus有点互动,但是循环是一个pl/sql结构,它们作为一个块在服务器上执行,所以你不能有持续的用户与它们的交互。这就是说 - 它可以像这里显示的那样完成,但我不确定这是一个不错的选择:http://stackoverflow.com/questions/1870670/how-to-loop-accepting-user-input-with- PL-SQL –