In einem SSIS-Projekt versuche ich Zeilen aus einer Excel-Dateiquelle herauszufiltern, wobei eine Spalte Werte hat, die in einem Buchstaben beginnen und von Zahlen gefolgt werden. Einige Zellen enthalten mehr als einen Wert und nicht alle Zellen folgen einem Datentypformat. Der Datenfluss ist derzeit wie folgt:
Excel Source > Data Conversion > OLE DB Destination
Ich bin eine bedingte Teilung nach der Excel-Quelle hinzufügen, aber ich habe Probleme mit dem Ausfiltern nicht mehr benötigte Datensätze. Im Folgenden sind Beispiele für Werte, die nicht vor dem Ende des Datenflusses einbezogen werden soll:ssis filtert Zeilen mit Werten aus, die in einem Buchstaben beginnen
Row Value
1 1234
2 P123
3 P1234, P456
4 rec P678
Zeile 1 sollte das einzige sein, die zu dem Ziel fließen sollen. Gibt es eine Möglichkeit, Datensätze auszufiltern, die mit "P" beginnen und von Zahlen gefolgt werden, unabhängig davon, wie viele Werte in jeder Zelle enthalten sind?
Update: Ich arbeite gerade um FINDSTRING (Wert, "P", 1)> 0 || FINDSTRING (Wert, "p", 1)> 0. Die Ausgabe blockiert die Zeilen 2-4, aber der Wert für Zeile 1 wurde auf 0 geändert. Weiß jemand, warum dies passiert?
folgen Sie einfach dem Beispiel und implementieren Sie in Ihrer Anforderung https://www.simple-talk.com/sql/ssis/ssis-basics-using-the-conditional-split/ – mohan111
Hallo! Vielen Dank für die Antwort, aber ich suche nach einem spezifischeren Code für meinen bedingten Split. Grundsätzlich sollte der Split die anderen Zeilen "ausblocken", da sie Datensätze mit P als erstes Zeichen enthalten, gefolgt von Zahlen. Dies bedeutet, dass, wenn ein Wert "Personenwert 1234" ist, dieser Datensatz nicht blockiert werden sollte, da dem "P" keine Ziffern folgen. Mein aktueller Code (der noch nicht funktioniert) ist: FINDSTRING (Wert, "P", 1)> 0 && CODEPOINT (SUBSTRING ([Wert], FINDSTRING (Wert, "P", 1), 3)) > 47 && CODEPOINT (SUBSTRING (Wert, FINDSTRING (Wert, "P", 1), 7)) <58 – Steve
Ich schätze, dass die erste Zeile, die auf Null geändert wird, etwas mit dem * schrecklichen * Ansatz des Excel-Treibers zu tun haben könnte Erraten von Datentypen. Es ist anzunehmen, dass der Datentyp falsch ist, und es gibt nicht viel, was Sie dagegen tun können. Unter diesem Link https://msdn.microsoft.com/en-us/library/ms141683.aspx lesen Sie den Abschnitt mit dem Titel _Missing Values_. Dieses Problem betrifft das gesamte Internet. Ich weiß nicht, warum deine Werte Null statt NULL sind, aber ich bin mir ziemlich sicher, dass es das ist. Nachschlagen * IMEX * für eine Problemumgehung –