甲骨文 10gr2。我试图从企业管理器 SYS.DBA_USERS 和 SYS.ALL_USERS 视图中隐藏用户 ADMIN。全部通过 sqlplus / as 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 执行此代码时 - 我收到这些错误。但是,最后您可以看到视图已创建 - 通过企业管理器检查时 - ALL_USERS 视图已成功修改,尽管它引发了最后两个 SP2-0734 错误。
但是 DBA_USERS 更改引发了其余的大错误列表,并且对 EM 视图没有影响。这两个选择之间的差异微不足道,但第一个选择不起作用。什么可能导致这种行为?谢谢你。