2016-04-18 3 views
0

Ich denke, ich vermisse hier etwas offensichtlich. Ich habe die Aufgabe, ein funktionierendes Mapping zu duplizieren, indem ich NUR den Quellenqualifikationsbereich ändere.Nicht übereinstimmende Ausgabespalte. Benutzerdefinierte SQL-Abfrage in Source Qualifier

Die ursprüngliche Zuordnung wie folgt aussieht,

OriginalMapping

Zunächst einmal, ich verstehe nicht, wie einfach die ursprüngliche Abbildung von der Quelle Qualifikation zum Ausdruck verbindet. Die Spaltennamen sollen aufgrund der benutzerdefinierten Abfrage komplett geändert werden.

z.

INSERT_DM to max(HVOLE.INSERT_DM) 

In meinem neuen duplizierten Mapping wird meine neue Quelle Qualifier mir diesen Fehler geben, wenn ich auf „Bestätigen“,

enter image description here

Es ist seltsam, dass es „genau 3 Felder“ erwähnt, wenn Meine Abfrage gibt tatsächlich 5 separate Spalten aus.

Beachten Sie, dass ich o_BEADHEIGHT1 und o_BEADHEIGHT2 für die Spalten erstellt habe, die nicht vorhanden sind. Diese Spalten werden von meiner benutzerdefinierten Abfrage neu erstellt.

Antwort

1

Es spielt keine Rolle, wenn die Portnamen in SQ nicht mit den Select-Abfragefeldern übereinstimmen. Nur die Reihenfolge der Ports ist wichtig. Außerdem werden nur die Ports berücksichtigt, die mit der nächsten Umwandlung verbunden sind.

+0

Danke für die Antwort! Können Sie diesen Punkt in Bezug auf mein Beispiel näher erläutern? Ich habe 2 neue Spalten (generiert von der benutzerdefinierten Abfrage), die überhaupt nicht auf dem Quellqualifikationsmerkmal existieren. Wie verbinde ich diese mit dem nächsten Modul? – tinker

+0

Sie können die entsprechenden zwei Ports in Source Qualifier erstellen. Verbinden Sie sie von einem beliebigen Port in der Quellinstanz. – Samik

1

Quellqualifizierer ist keine Ausdruckstransformation und kann nicht wie eins verwendet werden. Für Ihr Beispiel sind LOT_NO, MCD_ID und TEST_TS mit Imput- und Outputlink verbunden, weshalb der Fehler 'genau 3 projizierte Felder' angezeigt wird. Die Felder im Quellqualifikationsmerkmal sollten mit der Eingabe- und Ausgabeverbindung verbunden sein, um sie als gültigen Port zu betrachten. Selbst wenn Sie 5 Ports der Quell-Qualifier-Ausgabe angeschlossen haben, haben Sie 3 als Eingabe verbunden. Um dies zu beheben,

  • Verbinden Sie o_bedhight1 und o_beadheight2 von Quelle zu Quelle Qualifier.
  • entfernen PROCCD, MAT_TYPE wenn Sie sauber SQ
  • wollen
2

Der Grund, warum Sie dieses Problem immer 2 aus den 5 Ports im Source Qualifier nicht mit der Source Definition verknüpft. Diese Validierung berücksichtigt nur die Quellqualifikatorports, die Sie mit der Quelldefinition und der nächsten Umwandlung verknüpft haben.

Die Funda ist

1) Die Anzahl der Felder in der SQL-Abfrage überschreiben ausgewählt wird, sollte die Zahl die Anzahl der Ports im Source-Qualifikationsspiel, das auf die nächste Transformation verknüpft sind, entsprechen. Die Namen müssen nicht identisch sein, aber die Reihenfolge muss gleich sein.

Interessanterweise ordnet Informatica die Felder von der SQL-Abfrage den Quellqualifizierer-Ausgangsverbindungen anstelle von Quellqualifikatorports zu. Die erste Spalte in der SQL-Abfrage wird also der ersten Verbindung zugeordnet, die zweite Spalte der zweiten und so weiter.

2) Außerdem müssen alle Ports in der Source Qualifier-Umwandlung mit der Source-Definition verknüpft werden.Sie können die nicht verwendeten Ports in der Quellqualifikatorumwandlung löschen, um Verwechslungen zu vermeiden.

Verwandte Themen