Skip to main content

On the last leg of migration to FME 2020 from 2018. Was able to clean up a lot of legacy junk - whew! and had a chance to upgrade all relevant workspaces in the process - whoohoo! Starting with a clean slate so to speak. But now I've run into an issue with a SQL Executor that runs some SProc's and does some updates/inserts. This was working with no issues in 2018. Now it complains about the semi-colons:

Semicolons detected in SQL. May need to use FME_SQL_DELIMITER keyword to specify a delimiter.

Then it fails with:

Microsoft SQL Server Non-Spatial Reader: Query failed, possibly due to a malformed statement. 

Again, I have to ask: anything change from 2018 to 2020 as it pertains to FME_SQL_DELIMITER? Do I have to reformat my statement for Server? Desktop 2020 didn't seem to bother complaining about it. Thanks.

 

Running MS SQL 2017. FME Desktop/Server 2020.2.

Hi @agelfert​ 

There are no changes in SQL execution from 2018 to 2020. 

When running multiple SQL Statements it is required to have FME_SQL_DELIMITER declared and used see the article Splitting SQL statements using the FME_SQL_DELIMITER directive

I would think that somehow FME_SQL_DELIMITIR keyword may have gotten renamed. 

Can you confirm that you have delimiter declared and it is used in the statements? 

The following Example with ";" as a delimiter 

FME_SQL_DELIMITER ;
 
SELECT * FROM TABLEA;
SELECT * FROM TABLEB;

 


Sorry about not replying back sooner. This turned out to be one of those cases where the error message has nothing to do with the error and sent me down endless rabbit holes. The stored proc's include some code to interact with ESRI versioned views in SQL and the error was due to unsuccessful licensing attempts with ArcGIS. The usual inscrutable headache in the place where ESRI and FME meet.

Thanks for your well intended help. I had to change nothing about the code after getting the licensing issue squared away. Works fine without the use or declaration of any DELIMTER.


Reply