JDBC Step in Flow Designer displays error "Given SQL statement is not SINGLE SQL statement"DescriptionJDBC Step in Flow Designer displays error "Given SQL statement is not SINGLE SQL statement" when we have ";" Semicolon field Steps to Reproduce If we have a Flow Action which includes a JDBC action. The source of the JDBC query includes sometimes the statement terminator " ; " (Semicolon) e.g, within the transfered field "Usage_Description" entered by the end user. When the action was executed we receive the error "Given SQL statement is not SINGLE SQL statement".WorkaroundThis PRB / Defect is going to fix in Rome Patch 9 & San Diego Patch 3 versions, meanwhile a slightly complex workaround is to escape the semicolons in the values using the DB specific unicode equivalents. for example, the MSSQL server supports string concatenation where the query INSERT INTO dbo.zyrlo VALUES (427, 'value; with; semicolon;')can be written asINSERT INTO dbo.zyrlo VALUES (427, 'value'+NCHAR(0x003B)+' with'+NCHAR(0x003B)+' semicolon'+NCHAR(0x003B)) where 0x003B is the Hex code point for semicolon, that passes through the MID's query filter.However this could be tricky if the SQL transform pills are applied on such transformed string. Instead of the transform functions through UI, the same can be applied on the string literals using the scripted APIs that are available for the SQL escaping. The below code snipped can help to start with this customisation. (Please note the below snippet is specific to MSSQL server's semicolon escaping and cannot be used with other Databases, also may not applicable to some of the older versions of MSSQL.) function escapeSemicolon(input) {var delimiter = ';';var code = 'NCHAR(0x003B)'; // for MSSQLif (input == null || input.length == 0 ||input.indexOf(delimiter) < 0)return GlideSQLEscapeUtils.escapeSQLValue("MSSQL", input);var result = [];var intermediate = input;var index = intermediate.indexOf(delimiter, 0);var lastIndex = 0;while (index >= 0) {if (lastIndex < index)result.push(intermediate.substring(lastIndex, index));lastIndex = index+1;result.push(code);index = intermediate.indexOf(delimiter, lastIndex);}if (lastIndex < intermediate.length)result.push(intermediate.substring(lastIndex));for (var i = 0; i < result.length; ++i)result[i] = (result[i] != code) ?GlideSQLEscapeUtils.escapeSQLValue("MSSQL", result[i]) : result[i];// As the SQL escaping is done here, no transform pills are needed in the input data pill.return result.join('+');} The above script replaces the semicolon (;) in String literals with the NCHAR(0x003B) that is specific to MSSQL server and this can be used in a script step like below. (This escaping needs to be applied on each string literal in the SQL statement). (function execute(inputs, outputs) {outputs.value = escapeSemicolon(inputs.value);})(inputs, outputs); Please try this workaround on the test/dev instances before moving to Prod.Related Problem: PRB1521290