在shell腳本中,我正在使用$ USER參數使用pl/sql塊刪除某些用戶。如果另一個參數${DROP_AB}
爲Y,則從光標中刪除所有用戶。如果傳遞的參數是N,如何刪除除一個特定用戶${USER}AB
以外的所有用戶?請參考下面與建議幫助:PL/SQL - 使用參數執行即時循環,if/then語句
BEGIN
DECLARE
CURSOR c1 IS
SELECT username FROM dba_users WHERE username LIKE '${USER}%';
BEGIN
FOR user_rec IN c1
IF ${DROP_AB}='Y' THEN
LOOP
EXECUTE IMMEDIATE 'DROP USER ' ||user_rec.username|| ' CASCADE';
ELSIF ${DROP_AB}='N' THEN
LOOP
--DROP ALL USERS EXCEPT FOR USER '${USER}AB'
END LOOP;
END;
END;
/
你不能直接將所有用戶DBA_USERS並將其丟棄,即使用戶輸入「Y」或「N」,請運行從DBA_USERS選擇用戶名的select語句,你會發現SYS相關的列表模式也是如此。 將所有用戶的列表刪除,然後運行腳本 – anudeepks