rekursiv: Value "..... " is too long

zweistein

Grünschnabel
DB2

Habe eine Tabelle mit

AbfahrtID | Ankunft ID | ....
1..................2
2..................3
2...................4
2...................5
5...................4

Nun möchte ich beispielsweise alle Wege von ID 1 zu ID 4 auslesen.
Hierzu möchte ich die Route "mitschreiben".

Im Beipsiel wäre die Ergebnisstabelle:

AbfahrtID | Ankunft ID | Route
1..................4.................1-2-4.
1..................4..................1-2-5-4


Beim "mitschreiben" der Route bekomme ich allerdings ein Problem.
Value "1-2-4" is too long

vereinfachtes Schema meiner Abfrage:

PHP:
WITH Verbindungen(AbfahrtID, AnkunftID, Route) AS
	( 	
		SELECT 	AbfahrtID,
			       AnkunftID,
			       AbfahrtID || '-' || AnkunftID ,
		FROM 	  Flug
		
	UNION ALL
                  SELECT vater.AbfahrtID,
			       kind.AnkunftID,
			       vater.Route || '-' || vater.AbfahrtID || '-' || 
                                   kind.AnkunftID ,
		    ... rekursiver Aufruf
	)
SELECT AbfahrtID, AnkunftID, Route
FROM Verbindungen;
rekursiver Aufruf scheint so weit zu funktionieren. obige SQL Abfrage ist nur skizzenhaft.
Bekomme allerdings das long Problem.
vermutetes Problem: Felder von WITH werden immer größer...
Muss ich die Felder im WITH Teil vielleicht gleich "größer anlegen" oder so irgendwie? ;)

.
 
ok, scheint so als hätte ich die antwort gefunden....

PHP:
...
SELECT     AbfahrtID,
                   AnkunftID,
                   CAST( AbfahrtID || '-' || AnkunftID AS VARCHAR(256))
        FROM       Flug 
...

Beim ersten SELECT muss man die Route als VARCHAR(256) Casten.
 

Neue Beiträge

Zurück