Problem Registering SQL Server JDBC Driver

Using the latest version of KNIME, with Java 10 (64-bit), I’m getting an error registering the SQL Server JDBC driver. I add the jar using Preferences/KNIME/Databases, but I get an error in the KNIME log:
java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver cannot be found by org.knime.database.connectors_3.5.3.v201804031044

I saw a post saying to put the other .jar files in jre/lib/ext folder. I had no jre/lib/ext folder there, so I created one and copied all the .jar files I could find for the SQL Server JDBC driver there, but still I get the error.

Any thoughts?

Note: I made no changes to the Classpath, although Microsoft’s instructions for the JDBC driver said to. I’m “assuming” that KNIME handles the .jar file locations external to the Classpath, but I may be wrong.

Update: Set CLASSPATH per Microsoft instructions. Same error.

Hi bassman,

Before we start to get to the bottom of this: Have you tried using the Microsoft SQL Server Connector node? It comes with its own JDBC driver and should work right out of the box.

Cheers,
Roland

I used it for reading (works fine) but I didn’t think there was anything specific to SQL Server for writing tables/data back to SQL Server.

Hi bassman,

Yes, you would use the same nodes writing to the DB no matter which database you’re connected to. The only difference is in the connector node. Only the connectors are DB-specific, all other DB nodes just take the connection information and make it usable for the other nodes.

Cheers,
Roland

Great! I’ll experiment some, but right now, I need to do my “day job”… :slight_smile:

OK, I tried using the “Database Table Creator” node:

  • Used connection from working “Microsoft SQL Server Connector” node, that reads from a table (view actually) just fine.
  • Used table from working “JSON to Table” node, that works fine.

I get no error, but no table is created. I checked “Create table if it does not exist”. I provide “Table name”, but leave “Schema” blank (Schema, if provided, gives me an error).

I ran a query on SQL Server to search all databases, but I don’t see the table created.