All,
I am relatively new to CloverETL, and I am having an issue that I have been unable to solve. I have built a graph that executes wonderfully against a MySql database. It takes a dummied up CSV file, parses the data, does a couple of data conversions and then writes some portion of the data into some database tables.
My issue is when I point this graph to MSSQL instead of of MySql. Upon graph initialization, I get:
INFO - Checking graph configuration…
ERROR - Error during graph initialization !
java.lang.IllegalArgumentException: Can’t handle JDBC.Type :0
at org.jetel.connection.jdbc.specific.impl.MSSQLSpecific2005.sqlType2jetel(MSSQLSpecific2005.java:105)
at org.jetel.connection.jdbc.CopySQLData.validateJetel2sqlMap(CopySQLData.java:510)
at org.jetel.connection.jdbc.SQLCloverStatement.checkConfig(SQLCloverStatement.java:304)
at org.jetel.component.DBOutputTable.checkConfig(DBOutputTable.java:1224)
at org.jetel.graph.Phase.checkConfig(Phase.java:203)
at org.jetel.graph.TransformationGraph.checkConfig(TransformationGraph.java:904)
at org.jetel.graph.runtime.EngineInitializer.initGraph(EngineInitializer.java:144)
at org.jetel.main.runGraph.runGraph(runGraph.java:355)
at org.jetel.main.runGraph.main(runGraph.java:321)
I am at a loss for what is happening here. I have tried this with and without specifying a jdbcSpecific, and in both cases get the same error. I am using a JTDS driver (v 1.2.2 to be specific and have also tried v 1.2).
If anyone can point me in the right direction on this issue, it would be most appreciated.
Thanks
Hans
Hello,
it seems that in the database you have column with “unknown” data type, that clover can’t convert to any clover type. Can you provide table description? Then I could do more investigation.
Agata,
Thanks for the reply.
The database contains fields with types (varchar, numeric, tinyint, and datetime). The only one that sticks out (to me) might be the datetime, but it is a pretty standard MSSQL field, is it not?
The (simplified) schema looks like:
CREATE TABLE [dbo].[MEMBER](
[id] [varchar](36) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[version] [numeric](19, 0) NOT NULL,
[dateOfBirth] [datetime] NOT NULL,
[lastName] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[firstName] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[middleName] [varchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[companyEmployee] [tinyint] NULL,
[dateOfDeath] [timestamp] NULL
)
Does any of that stick out to you (or anyone else) as incorrect or not supported?
Thanks
Hans
Hi Hans,
I can’t reproduce the problem. My node:
<Node dbConnection="Connection1" id="DB_OUTPUT_TABLE0" sqlQuery="INSERT INTO MEMBER (id, version, dateOfBirth, lastName, firstName, middleName, companyEmployee) VALUES ($id, $version, $dateOfBirth, $lastName, $firstName, $middleName, $companyEmployee)" type="DB_OUTPUT_TABLE"/>
works properly in 2.7 as well as in 2.6 version.
What CloverETL version do you use? Can you show your graph?
Hi Agata,
Sorry to have not responded, but I was pulled away from this issue for a bit. I am, however, still seeing this issue.
To help narrow it down, I have created the following test case/graph (run on Clover Designer v2.2.1):
<?xml version="1.0" encoding="UTF-8"?>
As you can see, it is a *very* simple graph that simply reads in a file with four fields, and writes the data, untouched into the db. There are two connections set up, one to MSSQL, and one to MySql. When using the MySql one, things are fine. They fail with the above posted error against MSSQL, however. The table structure (in MSSQL) is:
CREATE TABLE [dbo].[test](
[test_string] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[test_number] [numeric](18, 0) NULL,
[test_boolean] [tinyint] NULL,
[test_date] [datetime] NULL
)
In fact, as I have worked through this example, I have even dumbed this down to a single varchar(50) field, and I can still replicate this issue.
By the way, this is SQL Server 2005.
Does any of this information help diagnose this issue?
Thanks
Hans
Hello Hans,
it seems that CloverETL doesn’t correctly works with this driver. I’ve reported two issues to our bug tracking systems: http://bug.cloveretl.org/view.php?id=2224 and http://bug.cloveretl.org/view.php?id=2223. In time being you have to use different jdbc driver (with MS driver - com.microsoft.sqlserver.jdbc.SQLServerDriver - it works correctly).
Thanks Agata for working through this with me.
I did get the Microsoft driver to work after a bit of work (some weird port things - likely just a SQLServer issue), so we can move forward.
Thanks
Hans