我正在与org.testcontainers:oracle-xe:1.14.3苦苦挣扎。 我正在尝试运行旨在验证架构创建和迁移的测试,但是当尝试使用用户“ sys as sysdba”来初始化该测试的用户时,我陷入了InitScript的困扰。
@Before
public void setUp() {
oracleContainer = new OracleContainer("oracleinanutshell/oracle-xe-11g")
.withUsername("sys as sysdba")
.withInitScript("oracle-initscript.sql");
oracleContainer.start();
}
以上似乎可以建立连接,但是初始化脚本的执行失败,并显示
ORA-01109:数据库未打开
在上面使用“系统”用户不会为InitScript连接提供sysdba特权,但是会导致数据库打开。
我正在寻找一种解决方案,使我可以在测试之前初始化多个用户。此初始化具有需要sysdba特权的授予。执行某些SQL脚本的测试要求两个用户都在数据库中创建,并且可以连接到数据库。