Neueste VersionenFixList
11.1.0.7 FixList
10.5.0.9 FixList
10.1.0.6 FixList
9.8.0.5 FixList
9.7.0.11 FixList
9.5.0.10 FixList
9.1.0.12 FixList
Haben Sie Probleme? - Kontaktieren Sie uns.
Kostenlos registrieren anmeldung-x26
Kontaktformular kontakt-x26

DB2 - Problembeschreibung

Problem IC87451 Status: Geschlossen

.NET PROVIDER THROWS EXCEPTION WITH INFORMIX: A SYNTAX ERROR HAS OCCURRED

Produkt:
DB2 FOR LUW / DB2FORLUW / A10 - DB2
Problembeschreibung:
Using the .Net Entity Framework with the IBM Data Server .Net 
provider against an Informix server fails due to a syntax error 
with the SQL statement generated.  It fails with the following 
exception: 
 
<internalexception> 
    <message>ERROR [42000] [IBM][IDS/UNIX64] A syntax error has 
occurred.</message> 
    <type>IBM.Data.DB2.DB2Exception</type> 
    <stacktrace> 
    at 
IBM.Data.DB2.DB2Command.ExecuteReaderObject(CommandBehavior 
behavior, String method, DB2CursorType reqCursorType, Boolean 
abortOnOptValueChg, Boolean skipDeleted, Boolean isResultSet, 
Int32 maxRows, Boolean skipInitialValidation) 
    at 
IBM.Data.DB2.DB2Command.ExecuteReaderObject(CommandBehavior 
behavior, String method) 
    at IBM.Data.DB2.DB2Command.ExecuteReader(CommandBehavior 
behavior) 
    at 
IBM.Data.DB2.DB2Command.ExecuteDbDataReader(CommandBehavior 
behavior) 
    at 
System.Data.Common.DbCommand.ExecuteReader(CommandBehavior 
behavior) 
    at 
System.Data.EntityClient.EntityCommandDefinition.ExecuteStoreCom 
mands(EntityCommand entityCommand, CommandBehavior behavior) 
    </stacktrace> 
</internalexception> 
 
 
The .Net provider generated the following SQL statements with 
CAST('' AS nvarchar(0)) AS C2,  for the empty strings. That 
seems to cause the syntax error: 
 
SELECT 
        Project1.id AS id, 
        Project1.name AS name, 
        Project1.C1 AS C1, 
        Project1.C2 AS C2, 
        Project1.C3 AS C3, 
        Project1.id1 AS id1, 
        Project1.name1 AS name1, 
        Project1.state_id AS state_id 
FROM ( 
        SELECT 
                Extent1.id AS id, 
                Extent1.name AS name, 
                CAST('city' AS nvarchar(4)) AS C1, 
                CAST('' AS nvarchar(0)) AS C2, 
                Extent2.id AS id1, 
                Extent2.name AS name1, 
                Extent2.state_id AS state_id, 
                CASE 
                        WHEN (Extent2.id IS NULL) 
                        THEN CAST(NULL AS int) 
                        ELSE CAST(1 AS int) 
                END AS C3 
        FROM  "informix".state AS Extent1 
        LEFT OUTER JOIN "informix".city AS Extent2 ON Extent1.id 
= Extent2.state_id 
        WHERE CAST(1 AS int) = Extent1.id  )  AS Project1 
        ORDER BY Project1.id ASC, Project1.C3 ASC 
 
Problem can be recreated using the following select statement 
against the stores_demo database: 
 
SELECT CAST('' AS nvarchar(0)) AS C2 FROM customer; 
 
> SELECT CAST('' AS nvarchar(0)) AS C2 FROM customer; 
 
  201: A syntax error has occurred. 
Error in line 1 
Near character position 28 
 
It worked fine if I use: 
 
SELECT CAST('' AS nvarchar(1)) AS C2 FROM customer;
Problem-Zusammenfassung:
**************************************************************** 
* USERS AFFECTED:                                              * 
* Users of .NET Entity Framework with IBM Data Server Driver.  * 
**************************************************************** 
* PROBLEM DESCRIPTION:                                         * 
* See Error Description                                        * 
**************************************************************** 
* RECOMMENDATION:                                              * 
* Upgrade to Version 10.1 Fix Pack 2.                          * 
****************************************************************
Local-Fix:
verfügbare FixPacks:
DB2 Version 10.1 Fix Pack 3 for Linux, UNIX, and Windows
DB2 Version 10.1 Fix Pack 4 for Linux, UNIX, and Windows
DB2 Version 10.1 Fix Pack 3a for Linux, UNIX, and Windows
DB2 Version 10.1 Fix Pack 6 for Linux, UNIX, and Windows

Lösung
First fixed in Version 10.1 Fix Pack 2.
Workaround
keiner bekannt / siehe Local-Fix
Bug-Verfolgung
Vorgänger  : APAR is sysrouted TO one or more of the following: IC95439 
Nachfolger : 
Weitere Daten
Datum - Problem gemeldet    :
Datum - Problem geschlossen :
Datum - der letzten Änderung:
23.10.2012
27.09.2013
27.09.2013
Problem behoben ab folgender Versionen (IBM BugInfos)
Problem behoben lt. FixList in der Version
10.1.0.3 FixList
10.1.0.3 FixList