Jsp: insert eines Strings in Oracle-DB ohne Leer

Hallo zusammen, ich habe unten gezeigten jsp-Code, der auch in die Oracle-DB einfügt, jedoch wird bei der Eingabe von z.B. test im Feld ename immer ein Leerzeichen for dem Wort test in die DB geschrieben (ename ist vom Typ String), wie kann ich dass vermeiden?
Vielen Dank.
m_lyxs

CODE:

DB Zugriff mittels JSP Einfügen in der Tabelle emp

empno:

ename:
Inhalt der Tabelle emp
empnoenamejob

Hallo,
das Leerzeichen hast du in deinem Insert-Statement selbst eingebaut:

stmt.executeUpdate („INSERT INTO emp („EMPNO“,„ENAME“) VALUES (’ „+firstParam+“ ‚,‘ „+lastParam+“ ')“);

Zwischen den einfachen und den doppelten Anführungszeichen (’ und ") ist jeweils ein Leerzeichen.
Wenn du die entfernst sollte es gehen.

Die Zeile muss somit folgendermaßen aussehen:

stmt.executeUpdate („INSERT INTO emp („EMPNO“,„ENAME“) VALUES (’“+firstParam+"’,’"+lastParam+"’)");

Grüße
Wolf G. Beckmann

Hallo zusammen, ich habe unten gezeigten jsp-Code, der auch in
die Oracle-DB einfügt, jedoch wird bei der Eingabe von z.B.
test im Feld ename immer ein Leerzeichen for dem Wort test in
die DB geschrieben (ename ist vom Typ String), wie kann ich
dass vermeiden?
Vielen Dank.
m_lyxs

CODE:

stmt.executeUpdate („INSERT INTO emp („EMPNO“,„ENAME“)
VALUES (’ „+firstParam+“ ‚,‘ „+lastParam+“ ')“);
}

Hallo m_lyxs,

einfacher Workaround: ltrim(value)
Bsp: ltrim(" test") ergibt „test“

trim schneidet in Oracle Leerzeichen weg,
ltrim von links, rtrim von rechts …

Gruß,
Markus

Hallo,

versuchen Sie es bitte einmal mit der Funktion trim().

Also etwa so: String ename = rs.getString(„ename“).trim();

Ich hoffe das löst das Problem?

Viele Grüße
Sven

Hallo m_lyxs,

ich bin vermutlich nicht der Erste, der die das antwortet, aber im SQL-Statement fügst du die Leerstelle doch direkt vor dem Wert explizit ein:

VALUES (’ „+firstParam+“ ’
in
VALUES (’"+firstParam+"’

ändern und alles wird gut.

Gruß
Stefan

Sorry, aber da bin ich die falsche Person. jsp-code sagt mir nichts.
gruß

Die Leerzeichen setzt du selbst zwischen dem ’ und dem " bzw umgekehrt.

stmt.executeUpdate („INSERT INTO emp („EMPNO“,„ENAME“)
VALUES (’ „+firstParam+“ ‚,‘ „+lastParam+“ ')“);

Dynamische SQL ist nie einfach.
Ich schreibe mir das generierte Statement (fast) immer in eine Variable, damit ich mir beim debuggen das Ergebnis ansehen und evtl. mit cut und paste im SQL-Developer ausführen kann.
Das Einsetzen von Variablen so wie du es machst öffnet auch tür und Tor für eine sql-injection oder aber lässt es einfach knallen, wenn bei der Eingabe im Namen ein ’ vorkommt.
Oracle bietet die Möglichkeit ein Statement mit Variablen parsen (vorkompilieren) zu lassen und es danach (auch mehrfach) mit übergebenen Variablen auszuführen. (die Syntax dafür müsste ic haber auch erst nachschlagen.