我在从PL / SQL更改容器时遇到问题。结果与EXECUTE IMMEDIATE或DBMS_SQL相同。我以普通用户身份以SYSDBA登录到根目录。我内部有一个应用程序根PDB,称为PDB1
我能够切换容器并返回:
ALTER SESSION SET CONTAINER =PDB1;
alter session set container = CDB$ROOT;
但是当我从PL / SQL执行ti时,我可以从根目录转到PDB1,但是,不能回到根目录:
begin
execute immediate 'alter session set container=PDB1';
end;
/
这可行,我现在在PDB1里面
如果我现在尝试使用:]返回到根目录
begin execute immediate 'alter session set container=CDB$ROOT'; end; /
我收到一个错误:
ORA-01031:特权不足
与应用程序根目录PDB及其PDB和普通的应用程序用户类似的结果...因此,我可以从应用程序根目录切换到PDB,但不能返回。
我可以通过PL / SQL切换到上层容器吗?
我在从PL / SQL更改容器时遇到问题。结果与EXECUTE IMMEDIATE或DBMS_SQL相同。我以普通用户身份以SYSDBA登录到根目录。我有一个应用程序...
在this WP中进行说明(第11页顶部)。在所有情况下,您都想做什么?实际上,不建议在PL / SQL中更改容器,除非在非常特殊的情况下,例如您的所有SQL代码实际上都是动态的。