オラクル10gr2. ユーザー ADMIN を Enterprise Manager SYS.DBA_USERS および SYS.ALL_USERS ビューから非表示にしようとしています。すべてsqlplus / sysdbaとして。私はこのコードを使用しています
EXECUTE DBMS_METADATA.SET_TRANSFORM_PARAM(DBMS_METADATA.SESSION_TRANSFORM,'STORAGE',false);
spool hd_source.sql;
select replace(cast(dbms_metadata.get_ddl('VIEW','DBA_USERS') as VARCHAR2(4000)),'where','where u.name !=''ADMIN'' and ') from dual union select '/' from dual;
select replace(cast(dbms_metadata.get_ddl('VIEW','ALL_USERS') as VARCHAR2(4000)),'where','where u.name !=''ADMIN'' and ') from dual union select '/' from dual;
spool off
@hd_source.sql
@/home/oracle/Desktop/script.sql としてこのコードを実行すると、これらのエラーが発生します。ただし、最後にビューが作成されていることがわかります。Enterprise Manager で確認すると、最後の 2 つの SP2-0734 エラーが発生しましたが、ALL_USERS ビューが正常に変更されました。
しかし、DBA_USERS の変更により、エラーの大きなリストの残りが発生し、EM ビューには影響しません。これら 2 つの選択の違いはわずかですが、最初の選択は機能しません。何がそのような行動を引き起こす可能性がありますか? ありがとうございました。