Когда я делаю это через java.sql.Connection, он возвращает новое значение переменной - 345:
Код: Выделить всё
BigDecimal newValue = BigDecimal.valueOf(345);
try (Connection conn = JDBCDataSource.getConnection()) {
try (CallableStatement stmt = conn.prepareCall("{ call test_pkg.test_num := ? }")) {
stmt.setBigDecimal(1, newValue);
stmt.executeUpdate();
conn.commit();
}
}
BigDecimal retVal;
try (Connection conn = JDBCDataSource.getConnection()) {
try (CallableStatement stmt = conn.prepareCall("{? = call test_pkg.test_num}")) {
stmt.registerOutParameter(1, Types.DECIMAL);
stmt.executeUpdate();
retVal = stmt.getBigDecimal(1);
}
}
System.out.println(retVal);
тогда он возвращает исходное значение, а не новое.
Мне нужно понять, почему это работает в такой способ с OracleConnection и способы его решения.
Подробнее здесь: https://stackoverflow.com/questions/787 ... package-va