Hi all,
I have this error since the upgrade of our server.
Run time SQL error -- *** ERROR *** Assertion failed: 106901
(16.0.0.2213)[SPW1ASA16]
Expression value unexpectedly NULL in write
SQLCODE=-300, Etat ODBC 3="HY000"
Ligne 6, colonne 1
UPDATE "ULIS"."U2WRK"
SET "ULIS"."U2WRK"."WRKVC1" = (
SELECT (IF LIST(SUBSTRING("CADNUM"."LIDVAC",4)) = '' THEN NULL ELSE LIST(SUBSTRING("CADNUM"."LIDVAC",4)) ENDIF FROM
"ULIS"."CADAFF" "CADAFF"
JOIN "ULIS"."CADEMP" "CADEMP"
ON "CADEMP"."LIDNAT" = 'CADEMP'
AND "CADEMP"."LIDEXN" = 'CA'
AND "CADEMP"."LIDNUM" = "CADAFF"."LIDEXT"
JOIN "ULIS"."CADNUM" "CADNUM"
ON "CADNUM"."LIDNAT" = 'CADNUM'
AND "CADNUM"."LIDEXN" = 'CA'
AND "CADNUM"."LIDNUM" = "CADEMP"."LIDEXT"
JOIN "ULIS"."U2LIF" "CANATU"
ON "CANATU"."LIDNAT" = 'CANATU'
AND "CANATU"."LIDEXN" = 'CA'
AND "CANATU"."LIDEXT" = "CADNUM"."LIDNUM"
AND today() BETWEEN "CANATU"."LIDDEB" AND "CANATU"."LIDFIN"
AND "CANATU"."LIDVAC" = 'T'
JOIN "ULIS"."U2LIF" "CAAETP"
ON "CAAETP"."LIDNAT" = 'CAAETP'
AND "CAAETP"."LIDEXN" = 'CA'
AND "CAAETP"."LIDEXT" = "CADAFF"."LIDNUM"
AND "CAAETP"."LIDVAN" > 0
AND today() BETWEEN "CAAETP"."LIDDEB" AND "CAAETP"."LIDFIN"
WHERE 1=1
AND "CADAFF"."LIDNAT" = 'CADAFF'
AND "CADAFF"."LIDEXN" = 'CA'
AND today() BETWEEN "CADAFF"."LIDDEB" AND "CADAFF"."LIDFIN"
AND "CADAFF"."PERMAT" = 1356
)
WHERE WRKKYC = '$WRK$151223010453475' AND WRKKYN = 1356
If I execute the select alone, it returns NULL. (it's normal behaviour)
I test also with SELECT nullif(LIST(SUBSTRING("CADNUM"."LIDVAC",4)), '')
If I execute this:
UPDATE "ULIS"."U2WRK"
SET "ULIS"."U2WRK"."WRKVC1" = NULL;
It works.
On the version 16.0.0.2076, this query works fine.
Do you have any idea ?
Laurent.