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 –