在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