Oracle
批量修改使用者資料
我目前有一個數據庫列表,其中使用者的個人資料已過時。預設情況下列出了很多,我們希望它們是 USR_PROFILE 或 DBA_PROFILE。
我有一個我們想要在 dba_profile 下的所有使用者名的列表。執行 alter user 語句以將所有使用者名批量更改為 USR_PROFILE 的最佳方法是什麼,而不是 dba 使用者列表(可能會或可能不會在數據庫中註冊)。
所以要單獨做,那就是
alter user U273622 profile USR_PROFILE;
但是,由於該數據庫有超過 350 個使用者,這將永遠持續下去。這是一個合理的猜測,忽略列出的 dba 使用者嗎?
alter user where username='U******' except where username='U238234,U3493234,U738467' profile USR_PROFILE;
有點害怕測試它,因為我不想破壞所有的使用者名。任何幫助都會很棒!
您當然可以創建一個 PL/SQL 腳本,但我認為讓一個簡單的查詢來建構 ALTER 語句是一個更好的選擇:
SELECT 'ALTER USER ' || username || ' PROFILE USR_PROFILE;' FROM dba_users WHERE username NOT IN (...);
當然,您必須確定必須在 WHERE 子句中包含哪些使用者。