Oracle 版本和 Spring 启动

Oracle Editions and Spring boot

我正在使用 spring 引导和 spring-jdbc-starter。

我正在尝试连接到 oracle 数据库中的特定版本。例如EDITION_X.

然后,我尝试通过 yaml 文件创建数据源。

spring:
  datasource:
    driverClassName: oracle.jdbc.driver.OracleDriver
    url: jdbc:oracle:thin:@ip:port/NAME
    username: user
    password: password
    connectionProperties:
      - ORA_EDITION:EDITION_X

另一种方式,我正在尝试通过 java-代码进行配置。

    public DataSource oracleDataSource() throws SQLException {
        OracleDataSource oracleDataSource = new OracleDataSource();
        Properties properties = new Properties();
        properties.setProperty("ORA_EDITION", "EDITION_X");
        oracleDataSource.setConnectionProperties(properties);
        oracleDataSource.setURL("jdbc:oracle:thin:@ip:port/NAME");
        oracleDataSource.setUser("user");
        oracleDataSource.setPassword("");
        oracleDataSource.setDriverType("oracle.jdbc.driver.OracleDriver");
        return oracleDataSource;
    }

从执行器看来,属性已加载。但是版本还是默认的

任何想法,如何连接到 oracle 数据库中的特定版本?

在较差的 JDBC 连接中,您应该提供“oracle.jdbc.editionName”属性。在 spring 中它也应该工作。

properties.setProperty("oracle.jdbc.editionName", "EDITION_X");

如果您检查它是否有效,请使用此查询。

select sys_context('userenv', 'current_edition_name') from dual