Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Warum erhalte ich Ora-30004, wenn das Trennzeichen sys_connect_by_path in den Spaltenwerten nicht vorhanden ist

Das riecht nach einem Käfer. Wenn Sie dies umgehen und Ihre Logik implementieren müssen, können Sie alternativ die rekursive Unterabfragefaktorisierung (rekursiv mit) verwenden, die in 11.2.0.4 gut funktioniert:

SQL> with t (id, label, parentid, reportlevel, fake_connect_by_path) as (
  2  select id, label, parentid, 0 as reportlevel, ' -> ' || label as fake_connect_by_path
  3    from temptable
  4   where parentid is null
  5   union all
  6  select tt.id, tt.label, tt.parentid, reportlevel + 1, t.fake_connect_by_path || ' -> ' || tt.label as fake_connect_by_path
  7    from temptable tt
  8    join t on t.id = tt.parentid
  9  )
 10  select fake_connect_by_path
 11    from t;
FAKE_CONNECT_BY_PATH
--------------------------------------------------------------------------------
 -> ninechars
 -> Im stumped
 -> - Unknown -
 -> ninechars -> erewrettt