# DB2 Insert mit Subselect Fehler



## Koringar (24. Sep 2009)

Hi,

ich versuche mit einer DB2 Datenbank ein Insert mit Subselect auszuführen über Java. Dieses Subselect funktioniert aufjedenfall, denn wenn ich es manuell abschicke meldet er kein Fehler.
Jedoch wenn ich es über Java mit einem Prepare Statement mache, meckert er sofort und wirft den Fehler 'DB2 SQL error: SQLCODE: -418, SQLSTATE: 42610, SQLERRMC: null' (soll soviel wie 'Ungültiger Einsatz von Parameter-Markers bei Dynamic SQL(Execute, Immediate oder Prepare) ' heisen).
Weis einer vielleicht woran das liegen kann???

Ach das SQL Statement sieht in etwas so aus: INSERT INTO table (column1, column2) SELECT column1, 'test' FROM table.

Wie gesagt das Staement funktioniert aufjedenfall wenn ich es manuell abschicke.


----------



## DerEisteeTrinker (29. Sep 2009)

hast du das bisher nur mit einem PreparedStatement versucht? vllt hat DB2 oder sogar Java etwas dagegen, dass solche Statements, wie du sie formulierst als PreparedStatement zu verarbeiten


----------



## Koringar (2. Okt 2009)

Hi,

jo habe nur PrepareStatements verwendet. Und ja DB2!!! hat etwas gegen diese Art von Statements, denn es prüft jedes Statement vor dem Ausführen (auch auf Logik).

Das Statement sag eher so aus 'INSERT INTO table (column1, column2) SELECT column1, ? FROM table' und das an das Fragezeichen habe ich eben ein Wert gesetzt, jedoch ist das aus DB2 Sicht nicht logisch (stimmt ja auch), einen Statischen Wert mit dem Zeichen für einen Variablen Wert (?) zu belegen.

Habe das Problem aber nun gelöst, in dem ich im Code die ? einfach durch meine Werte ersetze.


----------

