我需要在 Spring-Standaloneapplication 中更改 Oraclesession 的 NLS_NUMERIC_CHARACTERS。我正在使用 JdbcTemplates:
logger.info("Setting NLS-Parameter.");
jdbcTemplate.execute("alter session set NLS_NUMERIC_CHARACTERS='.,'");
logger.info(jdbcTemplate.queryForObject("select value from nls_session_parameters where parameter = 'NLS_NUMERIC_CHARACTERS'", String.class));
但它没有改变:
Setting NLS-Parameter.
,.
我以编程方式初始化 JdbcTemplate:
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName(ORACLE_JDBC_DRIVER);
dataSource.setUrl(url);
dataSource.setUsername(schema);
dataSource.setPassword(password);
JdbcTemplate jdbcTemplate = new JdbcTemplate();
jdbcTemplate.setDataSource(dataSource);
所有其他语句都运行良好。仅仅改变会话是行不通的。数据库是 Oracle 18 标准。