2017-10-02 3 views
-5

Ich möchte Input String aus Datenbank in tMap-Komponente in Talend Open Studio vergleichen. Wenn meine Zeichenfolge gleich "{}" ist, möchte ich dort eine "nodata" Zeichenfolge einfügen. Ansonsten belasse ich den ursprünglichen Eingang wie er ist.equals kann nicht von String in boolean konvertieren

Mein Code in Ausdruck/Filter in tMap:

(row1.parameter).equals("{}")?"nodata":row1.parameter 

Fehler Ich erhalte:

Details Nachricht: Typenkonflikt: kann nicht von String konvertieren Sie boolean

Sie Hast du irgendwelche Vorschläge?

+2

Welche Art ist 'row1.parameter'? Welcher Typ ist die Variable, der Sie diesen Ausdruck zuweisen? – QBrute

+0

Sie haben versucht, den gesamten Ausdruck vor das Fragezeichen in Klammern zu setzen? –

+0

Ändern Sie Ihren Ausdruck in '((row1.parameter) .equals (" {} "))?" Nodata ": row1.parameter'. Stellen Sie außerdem sicher, dass die andere Variable, der Sie einen Wert zuweisen, ebenfalls eine Zeichenfolge ist. – procrastinator

Antwort

2

Versuchen Sie das Ergebnis in einer String Variable, wie

String someVariable = row1.parameter.equals("{}") ? "nodata" : row1.parameter; 

weil Ihr Ausdruck gibt einen String zuweisen ... Sind Sie es zu einem Boolean zuweisen? Wenn ja, wird dies zu einem Typkonflikt führen.

+0

Ich habe den Ausdruck im Feld filter/expression eingegeben. Meine Eingabe (row1.parameter ist ein String; meine Ausgabe test.parameter ist ein String). Ich habe es keiner Variablen zugewiesen (Var-Feld in tMap). Ihre Antwort funktioniert. Ich habe das Ergebnis var in tMap zugewiesen. Danke :) – ggx2

0

Vorausgesetzt, dass Sie das Feld „Parameter“ zu halten ist, es klingt wie Ihr Ausgabefeld, das Sie ‚Parameter‘ zuweisen, um nicht ein Feld ‚String‘ ist, und wird als ‚Boolean‘ gesetzt:

enter image description here

So ist der erste Anlaufpunkt wäre die Ausgabe in eine Art von ‚String‘ zu überprüfen/ändern:

enter image description here

+0

Meine Eingabe und Ausgabe ist ein String, aber ich habe den Ausdruck in Ausdruck Filter in Ausgabespalte. Dann habe ich den Ausdruck in var field in tMap gelegt, alles funktioniert einwandfrei. Danke für die Antwort :) – ggx2

Verwandte Themen