- Beiträge: 6
Where Bedingung "in" weitere SQL Abfrage
- Markus Kretschmer
- Autor
- Offline
- Benutzer
Weniger
Mehr
6 Jahre 4 Monate her #3531
von Markus Kretschmer
Where Bedingung "in" weitere SQL Abfrage wurde erstellt von Markus Kretschmer
Hallo Herr Stark,
ich möchte gerne in einem ODBC-Read-Adapter eine Where Bedingung einbinden welche auf eine Liste von Werten aus einer anderen SQL-Datenbank zugreift.
Die Where-Bedingung soll wie folgt lauten:
Where Konto in ("Spalte Konto aus einer anderen SQL-Datenbank")
Alternativ zur SQL-Abfrage könnte ich auch eine *.csv oder ähnliches bereitstellen.
Funktioniert dies grundsätzlich?
Danke & Gruß
Markus Kretschmer
ich möchte gerne in einem ODBC-Read-Adapter eine Where Bedingung einbinden welche auf eine Liste von Werten aus einer anderen SQL-Datenbank zugreift.
Die Where-Bedingung soll wie folgt lauten:
Where Konto in ("Spalte Konto aus einer anderen SQL-Datenbank")
Alternativ zur SQL-Abfrage könnte ich auch eine *.csv oder ähnliches bereitstellen.
Funktioniert dies grundsätzlich?
Danke & Gruß
Markus Kretschmer
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- FlowHeater-Team
- Offline
- Administrator
6 Jahre 4 Monate her - 6 Jahre 4 Monate her #3532
von FlowHeater-Team
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
FlowHeater-Team antwortete auf Where Bedingung "in" weitere SQL Abfrage
Hallo Herr Kretschmer,
grundsätzlich ja Sie benötigen dazu aber den .NET Script Heater mit Einstellung Ausführen bei „Start“ und unten stehende C# Skript.
Am einfachsten würde es mit der WHERE Klausel aus einer Textdatei funktionieren. Im Anhang finden Sie ein kleines Beispiel dazu.
Das Script wird einmalig beim Starten der Definition aufgerufen, liest die gewünschte WHERE Klausel aus der Textdatei „sql-where.txt“ und setzt den FlowHeater Parameter $WHERE$. Diesen Parameter können Sie im READ Adapter im SQL verwenden.
z.B: select * from IHRE-TABELLE WHERE ID in ($WHERE$)
Der Adapter ersetzt den Parameter dynamisch mit dem aktuellen Inhalt.
Es würde theoretisch auch mit einer Abfrage auf einer anderen Datenbank funktionieren. Hier wäre aber die Voraussetzung, dass ein Adpater auf der WRITE auf diese Datenbank konfiguriert sein müsste, damit der Zugriff funktioniert.
Sie könnten die Erstellung der WHERE SQL Textdatei z.B. durch eine vorgelagerte FlowHeater Definition dynamisch erzeugen und über das Batch Modul bzw. den FlowHeater Server automatisieren.
Hinweis: Die WHERE Klausel muss in der Textdatei natürlich der jeweiligen Syntax der verwendeten Datenbank entsprechen.
.NET C# Skript
grundsätzlich ja Sie benötigen dazu aber den .NET Script Heater mit Einstellung Ausführen bei „Start“ und unten stehende C# Skript.
Am einfachsten würde es mit der WHERE Klausel aus einer Textdatei funktionieren. Im Anhang finden Sie ein kleines Beispiel dazu.
Das Script wird einmalig beim Starten der Definition aufgerufen, liest die gewünschte WHERE Klausel aus der Textdatei „sql-where.txt“ und setzt den FlowHeater Parameter $WHERE$. Diesen Parameter können Sie im READ Adapter im SQL verwenden.
z.B: select * from IHRE-TABELLE WHERE ID in ($WHERE$)
Der Adapter ersetzt den Parameter dynamisch mit dem aktuellen Inhalt.
Es würde theoretisch auch mit einer Abfrage auf einer anderen Datenbank funktionieren. Hier wäre aber die Voraussetzung, dass ein Adpater auf der WRITE auf diese Datenbank konfiguriert sein müsste, damit der Zugriff funktioniert.
Sie könnten die Erstellung der WHERE SQL Textdatei z.B. durch eine vorgelagerte FlowHeater Definition dynamisch erzeugen und über das Batch Modul bzw. den FlowHeater Server automatisieren.
Hinweis: Die WHERE Klausel muss in der Textdatei natürlich der jeweiligen Syntax der verwendeten Datenbank entsprechen.
.NET C# Skript
public object DoWork()
{
// SQL WHERE aus Textdatei "sql-where.txt" im Verzeichnis der Definition einlesen
string where = File.ReadAllText("sql-where.txt");
// Parameter $WHERE$ setzen, damit dieser im READ Adapter im SQL verwendet werden kann
Parameter["where"].Value = where;
// Rückgabe bei Ausführen bei "Start" nicht notwendig
return 0;
}
gruß
Robert Stark
Wurde Ihre Frage damit beantwortet? Bitte geben Sie ein kurzes Feedback, Sie helfen damit auch anderen die evtl. ein ähnliches Problem haben. Danke.
Anhänge:
Letzte Änderung: 6 Jahre 4 Monate her von FlowHeater-Team.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
- Markus Kretschmer
- Autor
- Offline
- Benutzer
Weniger
Mehr
- Beiträge: 6
6 Jahre 4 Monate her #3533
von Markus Kretschmer
Markus Kretschmer antwortete auf Where Bedingung "in" weitere SQL Abfrage
Hallo Herr Stark,
hat funktioniert. Vielen Dank für die schnelle Unterstützung.
Gruß
Markus Kretschmer
hat funktioniert. Vielen Dank für die schnelle Unterstützung.
Gruß
Markus Kretschmer
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.267 Sekunden