0

I need to receive region_name by region_code from Oracle DB

I use Exposed for my program, but I receive error

in thread "main" java.lang.AbstractMethodError
at org.jetbrains.exposed.sql.Transaction.closeExecutedStatements(Transaction.kt:181)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.inTopLevelTransaction(ThreadLocalTransactionManager.kt:137)
at org.jetbrains.exposed.sql.transactions.ThreadLocalTransactionManagerKt.transaction(ThreadLocalTransactionManager.kt:75)

Code is

object Codes : Table("REGIONS") {
val region_code = varchar("region_code",32)
val region_name = varchar("region_name",32)}

The main fun contains

.......
val conn = Database.connect("jdbc:oracle:thin:@//...", driver = "oracle.jdbc.OracleDriver",
    user = "...", password = "...")

transaction(java.sql.Connection.TRANSACTION_READ_COMMITTED, 1, conn) {
        addLogger(StdOutSqlLogger)
        Codes.select { Codes.region_code eq "a" }.limit(1).forEach {
            print(it[Codes.region_name])
        }
    }
Sergei
  • 21
  • 1

1 Answers1

1

AbstractMethodError usually means that you compiled the code with one version of a library, but are running it against a different (incompatible) version.  (See for example these questions.)

So I'd check your dependencies &c carefully.

gidds
  • 16,558
  • 2
  • 19
  • 26
  • Thank you! It helps me! I used old jdbc driver for Oracle 12. I changed driver version to ojdbc7-12.1.0.2.jar – Sergei Mar 05 '19 at 10:24