Oracle多租户-从PL / SQL更改容器

问题描述 投票:0回答:1

我在从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登录到根目录。我有一个应用程序...

oracle plsql pdb
1个回答
0
投票

this WP中进行说明(第11页顶部)。在所有情况下,您都想做什么?实际上,不建议在PL / SQL中更改容器,除非在非常特殊的情况下,例如您的所有SQL代码实际上都是动态的。

© www.soinside.com 2019 - 2024. All rights reserved.