Fout itgensql056: Syntax error between the two '***' on line 4, column 65:

Bij het downloaden van data uit Exact Online is het script vannacht stukgelopen met de in het onderwerp genoemde reden.
Ik gebruik Invantive Data Replicator 20.0.101-PROD+1636

wat gaat er fout?

Een groter deel van de tekst uit de logfile waarin de fout voor komt is:

2020-10-21 22:02:01.181 Information itgendhb124: local show message "Refresh Data Replicator."
2020-10-21 22:02:01.181 Information itgendhb044: Run SQL statement: --
-- Update all loaded table partitions.
--
-- alter persistent cache purge obsolete table partition versions
2020-10-21 22:02:01.268 Warning itgendhb173: 
Context: -- -- Update all loaded table partitions. -- -- alter persistent cache purge obsolete table partition versions
2020-10-21 22:02:01.304 Error itgencun016: 
Fout itgensql056: Syntax error between the two '***' on line 4, column 65:

--<CRLF>-- Update all load...able partition versions***<EOF>***

Error: mismatched input '<EOF>' expecting {FILE_PATH, ABS, ACOS, ADD_MONTHS, MONTHS_BETWEEN, ALTER, ANONYMIZE, APPLY, APPROACH, AREA, ASC, ASCII, ASIN, AT_C, ATAN, ATAN2, ATTACH, AUTO, AVG, BACKING, BASE64_DECODE, BASE64_ENCODE, BASENAME, ';', BATCHSIZE, BEGIN, BILLING, BINARY, BIT, BIT_LENGTH, BULK, BY, CACHE, CAMEL, CASE, CEIL, CHAR, CHR, COALESCE, CODE, COLUMN, COLUMNS, COMMIT, COMPARE, COMPRESS, CONNECTION, CONTINUE, CONTRACT, COPY, COS, COUNT, COVFEFIFY, CREATE, CROSS, CSVTABLE, DATA, DATACONTAINER, DATE, DATEADD, DATEPART, DATETIME, DATETIMEOFFSET, DATE_CEIL, DATE_FLOOR, DATE_ROUND, DATE_TRUNC, DEC, DECLARE, DELIMITER, DELETE, DENSE_RANK, DEPTH, DESC, DICTIONARY, DIFFERENCES, DISABLE, DOUBLE, DOWNLOAD, DROP, DROPPABLE, DROPPED, ELSE, EMPTY, ENABLE, END, ERRORS, EXCEL_DAY, EXCELTABLE, EXCEPTION, EXECUTE, EXISTS, FACTS, FEED, FILE, FIRST, FLOOR, FOR, FORCE, FORWARDED, FRESH, FROM_UNIXTIME, FULL, FUNCTION, GETDATE, GETUTCDATE, GROUP, HIDE, HISTORY, HTTP_DISK_CACHE, HTTPGET, HTTPGET_TEXT, HTTPPOST, ID, IF, IDENTIFIED, IGNORE, IMAGE, INCOMING, INDEX, INITCAP, INSERT, INTERNETTABLE, INTEGER, INTERSECT, INTERVAL, INVALID_NUMBER, IUID, JOIN_SET, JSONDECODE, JSONENCODE, LABEL, LAST, LEFT, LENGTH, LEVENSHTEIN, LICENSE, LIMIT, LINES, LISTAGG, LOAD, LOGICAL, LONGTEXT, LOOP, LOWER, LOW_COST, LPAD, LTRIM, MAINTAIN, MAX, MAXIMUM, MD5, MEDIUMTEXT, HTTP_MEMORY_CACHE, MESSAGES, METADATA, METAPHONE3, METAPHONE3_ALT, MIN, MINUS_C, MOD, MODEL, MONEY, MY, NAME, NATIVE, NEWID, NEW_TIME, NO, NO_DATA_FOUND, NO_JOIN_SET, NORMALIZE, NOWUTC, NUMBER, NUMBER_TO_SPEECH, NULLS, NVL, OBSOLETE, OCTET_LENGTH, ODS, ONCE, OUTER, OVERALL, PARALLEL, PARTITION, PASSING, PATH, PERSISTENT, PIVOT, POSITION, POSTFIX, POWER, PREFER, PREFIX, PROCEDURE, PRODUCT, PROGRAM_ERROR, PURGE, QUOTE_IDENT, QUOTE_LITERAL, QUOTE_NULLABLE, RAISE, RAISE_ERROR, RAISE_APPLICATION_ERROR, RAND, RANDOM, RANDOM_BLOB, RANK, READY, RECYCLEBIN, REFERENCE, REFRESH, REGEXP_INSTR, REGEXP_REPLACE, REGEXP_SUBSTR, REMAINDER, REPEAT, RESOLVE, RESULT_SET_NAME, RETENTION, RETURN, RETURNING, RETURNS, REVERSE, RIGHT, ROLLBACK, ROUND, ROW, ROWS, ROW_NUMBER, RPAD, RTRIM, SAMPLE, SELECT, SERIAL, SESSION, SET, SHOW, SIGN, SIN, SITE, SKIP_, SOUNDEX, SOURCE, SQL_VARIANT, SQL, SQLROWCOUNT, SQLERRM, SQLCODE, SQRT, START, STATE, STAY, STDDEV, STEP, STRING, SUM, SYNC, SYNCHRONIZE, SYSDATETIME, SYSDATEUTC, SYS_CONTEXT, TABLES, TAN, TEXT, THEN, TIME, TIMESTAMP, TINYTEXT, TO, TOKEN, TOO_MANY_ROWS, TOP, TO_BINARY, TO_BOOLEAN, TO_CHAR, TO_DATE, TO_GUID, TO_HEX, TO_NUMBER, TRANSACTION, TRANSLATE, TRANSLATE_RESOURCES, TRICKLE, TRIM, TRUNC, UNCOMPRESS, UNION, UNIQUEIDENTIFIER, UNISTR, UNIX_TIMESTAMP, UNKNOWN, UPDATE, UPGRADE, UPPER, URLDECODE, URLENCODE, USE, USER, UTC, UTC_DATE, VALUE_ERROR, VERSION, VERSIONS, WEBHOOKS, WHEN, WHILE, WITHIN, WORKSHEET, XML, XMLCOMMENT, XMLDECODE, XMLENCODE, XMLELEMENT, XMLFORMAT, XMLTABLE, XMLTRANSFORM, XMLTYPE, ZERO_BLOB, ZERO_DIVIDE, ZIP, GOTO, '<', IN, EXP, EXIT, LOG, LN, MICROSECOND, MILLISECOND, SECOND, MINUTE, HOUR, INSTR, IS_BOOLEAN, IS_DATE, IS_GUID, IS_NUMBER, DAY, DAYOFWEEK, DAYOFYEAR, MONTH, QUARTER, YEAR, CONCAT, WITH, NULL, EQUAL, SUBSTR, IDENTIFIER, ESCAPED_IDENTIFIER}.
2020-10-21 22:02:03.372 Error itgensql056: ValidationException

De drie sterretje staan rondom <EOF> oftewel het einde van het bestand. Dit betekent normaliter dat er ergens in de SQL een constructie niet juist afgesloten is. Bijvoorbeeld het vergeten van een enkele quote om een tekstconstante af te sluiten.

Je komt er het snelste achter waar het fout gaat door de SQL te openen in Invantive Query Tool. De syntaxhighlighting laat normaliter meteen zien waar de syntaxfout begint in de SQL-code.

Mocht die er ook niet uitkomen, dan kun je beste de code visueel controleren en statement voor statement uitvoeren met CtrlEnter.

Wat ik ook wijzig en wat er ook gebeurt levert steeds weer nieuwe fouten op. Ik heb echt het idee, dat in de nieuwe versie een aanpassing is geweest waardoor de scripts niet meer werken. Zie bijgevoegde scripts die ik in de query tool uitgeprobeerd heb.

De beide xx* bestanden werken vanuit de querytool probleemloos, maar als ik dit probeer vanuit acme-replicate-docs-except.sql dan treden er steeds fouten op.

Controleer svp ook dat je geen losse Invantive SQL commentaren hebt; dat is geen geldige SQL batch. Dat levert ook een itgensql056 op met SQL versies voor 20.0.115.

Dit mag dus niet:

--
-- bras
--

Dit mag wel:

--
-- bras
--
select 1 col

Vanaf 20.0.115 zijn SQL statements met alleen commentaar wel toegestaan.

En merk op dat @@ twee uitvoeringsmodi kent in release 20.0.

Als uitgevoerd via Invantive Query Tool, dan wordt het als Invantive SQL behandeld. Maar een Invantive Script statement wordt niet geaccepteerd. Dat kan alleen via Invantive Data Hub.

Ik denk niet dat dit hier het geval is, want dan hadden de *** gestaan rondom het woord na local zoals in:

itgensql056: Syntax error between the two '***' on line 1, column 6:

local ***remark***<CRLF>local remark Invantive PSQL pro...

Error: no viable alternative at input 'local remark'.