Mit der AKTUELLEN ZEIT, in der ein insert mit einem select in DB2

Ich bin mit JDBC einfügen einer einzelnen Zeile in einer DB2-Datenbank-Tabelle mit der insert-select-Stil einfügen. Ich bin gleichzeitig versuchen, fügen Sie dynamische Daten aus einer Variablen, sowie die ENTRY_DATE mit CURRENT DATE:

INSERT INTO mytable (COL_A, COL_B, ENTRY_DATE)
SELECT COL_A, ?, CURRENT DATE FROM mytable
WHERE COL_A > 1;

Ich bin neu in sql und JDBC, also ich weiß nicht, ob mit CURRENT DATE üblich ist, oder speziell auf unser system, aber es funktioniert in einer normalen einfügen wie:

INSERT INTO mytable ENTRY_DATE values(CURRENT DATE);

Habe ich noch nie verwendet, einfügen-wählen Sie-Stil-Einsätze, also ich weiß nicht, ob der Fehler auf meiner '?', die ich einfügen mithilfe von PreparedStatement.setString, oder die CURRENT DATE parameter. Jedoch bekomme ich die folgende Fehlermeldung:

[BEA][DB2 JDBC Driver][DB2]STRING, VORBEREITET ZU SEIN, ENTHÄLT UNGÜLTIGE VERWENDUNG
DER PARAMETER MARKER

Benötige ich für surround-entweder oder beide von denen, die etwas zu zeigen, Sie sind nicht Teil der select-Anweisung? Muss ich neu anordnen meine Aussage?

EDIT:

Kann ich nicht zeigen, Sie meinen genauen code, aber hier ist eine enge aproximation:

String sql = null;
PreparedStatement prepStmnt = null;
Connection conn = getConnection("database");
sql = "INSERT INTO MYTABLE ";
sql += "(COLUMN_A, COLUMN_B, ENTRY_DATE)";
sql += "SELECT COLUMN_A, ?, CURRENT DATE";
sql += "FROM MYTABLE WHERE COLUMN_A > 1;";
prepStmnt = conn.prepareStatement(sql);
prepStmnt.setString(1, myVar);
prepStmnt.execute();
Das problem ist mit der ? und nicht mit CURRENT DATE

InformationsquelleAutor CamelCaseBurger | 2014-01-15

Schreibe einen Kommentar