Frage

hat diese Frage bereits in Stackoverflow gefragt worden, und an anderer Stelle:

  1. Ist es möglich, eine rekursive SQL-Abfrage zu machen?
  2. Requetes récursives avec les CTE - Exemples avec SQLServer 2003

Aber ich mag diese Arbeit für einen Bericht Abfrage in HP Quality-Zentrum 10 machen.

Jeder mit Einsichten in solche technischen Details?


Ein einfacher Test:

with t1 (parent, child) as 
(select * from all_lists t where t.al_father_id = '2') select * from t1

QC-Berichte „Quality Center kann die Abfrage nicht ausgeführt werden, da es ungültige Anweisungen enthält“.

Während der folgenden vorsätzliche Typo

select * from all_lists t wher t.al_father_id = '2'

QC-Berichte "Die SQL-Abfrage ... konnte nicht ausgeführt werden, mit dem folgenden Fehler: Fehler SQL ... [Mercury] [Oracle JDBC-Treiber] [Oracle] ORA-00933:. SQL-Befehl nicht richtig beendet"

Also ich denke, es beantwortet zwei Fragen:

  1. der Server Oracle (obwohl es nicht die Version nicht geben)
  2. mit nicht durch die erlaubt QC-Schnittstelle
War es hilfreich?

Lösung

Ok, got it:

select      SYS_CONNECT_BY_PATH (al_description,' :: ')
from        all_lists
start with  al_father_id = '2'
connect by  prior al_item_id = al_father_id

This is the solution to my query. Thanks to a_horse_with_a_name for comments that motivated me to search deeper.

Fab.

I'm still open to comments for improvement or further trips and tricks of the trade - such as: where can I find a reference for the CONNECT BY related functions like SYS_CONNECT_BY_PATH. I'm sure it has a few friends I'd be keen to learn about.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top