HELP! Cannot connect to Oracle database "No method in multimethod 'connection-details->spec' for dispatch value: :oracle"

Hello, I just upgraded from 0.33.4 to 0.33.7.3 release. I am not able to add Oracle database as a datasource.

When I try to add, it throws following error:

No method in multimethod ‘connection-details->spec’ for dispatch value: :oracle

How can I fix this?

Hi Krupal,

I just tried adding Oracle in v0.33.7.3 and v0.34.0, but not experiencing the same thing.

Can you post some more details on how to reproduce this? Perhaps including screenshots of your database configuration and any server error logs that show up when you try to connect?

And after the upgrade do you still have the ojdbc8.jar file in your Metabase plugins directory?

Thanks,

Damon

@kjkrupal Can you also include the diagnostic info from your Metabase install? You can get this information by going to Admin -> Troubleshooting.

I meet the same troule,with CentOS 7.4,java 1.8.0_181,metabase 0.34.0,and ojdbc8.jar in plugins.
and I got the fellow logs when I created the oracle connection:
01-13 09:48:46 ERROR driver.util :: Database connection error
java.lang.IllegalArgumentException: No method in multimethod ‘connection-details->spec’ for dispatch value: :oracle
at clojure.lang.MultiFn.getFn(MultiFn.java:156)
at clojure.lang.MultiFn.invoke(MultiFn.java:233)
at metabase.driver.sql_jdbc.connection$details__GT_connection_spec_for_testing_connection.invokeStatic(connection.clj:152)
at metabase.driver.sql_jdbc.connection$details__GT_connection_spec_for_testing_connection.invoke(connection.clj:147)
at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invokeStatic(connection.clj:158)
at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invoke(connection.clj:154)
at metabase.driver.sql_jdbc$fn__69874.invokeStatic(sql_jdbc.clj:35)
at metabase.driver.sql_jdbc$fn__69874.invoke(sql_jdbc.clj:34)
at clojure.lang.MultiFn.invoke(MultiFn.java:234)
at metabase.driver.util$can_connect_with_details_QMARK_$fn__21110.invoke(util.clj:32)
at metabase.util$do_with_timeout$fn__13131.invoke(util.clj:302)
at clojure.core$binding_conveyor_fn$fn__5754.invoke(core.clj:2030)
at clojure.lang.AFn.call(AFn.java:18)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)

thanks!

I know what’s happened:I upgrate metabase,but files in plusgins is old…

@xyz_hh Oh, interesting! I just verified this as well attempting to upgrade from 0.33.6 to 0.34.

I’ll file an issue for this, but in the meantime a workaround would be to remove any metabase-driver.jar files in the plugins directory. Metabase will repopulate those when it starts.

Filed https://github.com/metabase/metabase/issues/11699

@xyz_hh @kjkrupal I’m curious how/when you installed the previous version of Metabase vs. when you did the upgrade. If the files in the plugins directory are older than the ones in the archive, we do overwrite them (see copy-file!). In theory, if you had the old version up and running before December 19th, the new version should have overwritten those.

edit: FYI, this is fixed in master and will be shipping the fix as part of 0.34.1.