Die Tabelleneingabe unterstützt zwei verschiedene Möglichkeiten, um die SQL-Dynamik dynamisch zu gestalten: Variable Ersetzung und Einfügen von Daten aus einem eingehenden Datenstrom.
Variable Substitution
Dies ist, was Sie zur Zeit in der Tabelle Eingang konfiguriert haben: Sie setzen $ {variable} irgendwo und wenn der Schritt initialisiert, wird der Wert als Text in die SQL eingefügt.
Da alle Schritte gleichzeitig in einer Umwandlung initialisiert werden, hat Ihr Javascript-Schritt keine Zeit zum Festlegen des Werts. In PDI können Sie eine Variable innerhalb derselben Umwandlung nicht festlegen und verwenden.
Insert Daten aus Schritt
Die zweite Möglichkeit, durch die Auswahl einer Quellschritt in der „Einfügen von Daten aus Schritt“ Option in der Tabelle Eingang verwendet wird. In diesem Modus nimmt die Tabelleneingabe eine Zeile aus dem ausgewählten Schritt und fügt Felder (in der Reihenfolge) in das SQL bei Fragezeichen (?) Ein, die Sie einfügen. Normalerweise erwartet es eine einzelne Zeile, aber Sie können wählen, für JEDE Zeile auszuführen.
für Ihr Szenario Auf diese Weise sollte funktionieren:
- a Legen Sie Zeilen am Anfang Schritt generieren und setzt es 1 Zeile zu erzeugen.
- Verbinden Sie es mit dem Javascript-Schritt.
- Geben Sie im Javascript-Schritt die Rückgabevariable als Ausgabefeld im unteren Raster an, sie wird dem Stream hinzugefügt.
- Wählen Sie in der Tabelleneingabe den Javascript-Schritt bei "Daten aus Schritt einfügen"
- In Ihrem SQL, einfügen? an der Position der Variablen. Sie benötigen möglicherweise einfache Anführungszeichen, wenn der Wert eine Zeichenfolge ist: WHERE column = '?'.
- Vorschau der Umwandlung, um das Ergebnis zu sehen, die Vorschau der Tabelleneingabe ist wegen der Abhängigkeit deaktiviert.
Hinweise:
- Schritt 1 und 2 kann nicht erforderlich sein, ich bin nicht sicher, ob der JS Schritt selbst eine Zeile erzeugt. Ich möchte das explizit erwähnen, indem ich den Schritt "Zeilen generieren" oft als "1 Zeile generieren" benenne.
- Wenn Sie einen vorhandenen Stream oder mehrere einzufügende Felder haben, können Sie die Felder in einem Schritt auswählen, in der Reihenfolge, in der sie in das SQL eingefügt werden müssen.
bereits Deinen Schritt getan, aber sein Fehler auf Tabelleneingabe , sehe meinen Antwortabschnitt für das Bild (zweites Bild) –
@AlexanderChandra: In deinem zweiten Bild sehe ich keine Anführungsstriche um das? in Ihrer Tabelleneingabe. Sie erhalten wahrscheinlich eine Fehlermeldung "unbekannte Spalte ...". Versuchen Sie einfache Anführungszeichen. – Cyrus