Frage : Oracle SQL: Propagate-Elternteilwert zu ALLEN Kindern während des Baum-Wegs

O.K. ist so hier mein problem.

I haben eine Tabelle mit einem beziehenden Selbst, (Schweinohr) dieses zu verbinden speichert im Wesentlichen eine Windows-Verzeichnisstruktur:

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
CREATE TABELLEN-VERZEICHNIS 
(
 CHILD_FOLDER VARCHAR2 (100)
, PARENT_FOLDER VARCHAR2 (100)
, ERLAUBNIS VARCHAR2 (100);
);

EINSATZ WERTE IN DES VERZEICHNIS-(CHILD_FOLDER, PARENT_FOLDER) („COMPANY_HQ“, IN NULL, „F ");
EINSATZ IN WERTE DES VERZEICHNIS-(CHILD_FOLDER, PARENT_FOLDER) („STUNDE“, „COMPANY_HQ ");
EINSATZ IN WERTE DES VERZEICHNIS-(CHILD_FOLDER, PARENT_FOLDER) („ES“, „COMPANY_HQ ");
EINSATZ IN WERTE DES VERZEICHNIS-(CHILD_FOLDER, PARENT_FOLDER) („FINANZIERUNG“, „COMPANY_HQ ");
EINSATZ IN WERTE DES VERZEICHNIS-(CHILD_FOLDER, PARENT_FOLDER) („ENTWICKLUNG“, „ES“, „W ");
EINSATZ IN WERTE DES VERZEICHNIS-(CHILD_FOLDER, PARENT_FOLDER) („TEST“, „ES ");
EINSATZ IN WERTE DES VERZEICHNIS-(CHILD_FOLDER, PARENT_FOLDER) („UNTERSTÜTZUNG“, „ES ");


A schneller Baumweg gibt mir die entsprechende Struktur:

1:
2:
3:
4:
select lpad („„, level*2,“ ") || child_folder Struktur, Erlaubnis
vom Verzeichnis
MIT PARENT_FOLDER BEGINNEN IST UNGÜLTIG
DURCH VORHERIGES ANSCHLIESSEN CHILD_FOLDER = PARENT_FOLDER;


1:
2:
3:
4:
5:
6:
7:
8:
9:
STRUCTURE ERLAUBNIS
-------------------------------------------------
  COMPANY_HQ F
    FINANZIERUNG
    Stunde
    ES
      ENTWICKLUNG W
      UNTERSTÜTZUNG
      TEST

What, das ich über SQL (und mich erzielen möchte sind das Analytics muss verwendet werden recht sicher) bin folge:

1. Jede Eintragung in der VERZEICHNIS-Tabelle sollte den Wert von ihr verbreiten ist Erlaubnis niederwerfen zu ALLEN Kindmaßeinheiten. Merken, dass das Wurzelniveau von „COMPANY_HQ“ den Erlaubniswert von „F“ hat und die Enkelkindeintragung „der ENTWICKLUNG“ den Erlaubniswert von „W“ hat und diese die einzigen gespeicherten Erlaubniswerte sind. Das Resultat muss wie aussehen folgt:

STRUCTURE                  PERMISSION
-------------------------------------------------
COMPANY_HQ F
FINANZIERUNG (F)
Stunde (F)
ES (F)
ENTWICKLUNG (F) W
UNTERSTÜTZUNG (f) (W)
TEST (f) (W)

As, das Sie sehen können, zeigen die Werte von (f) von (W) an, dass der Wert von oben genanntem übernommen worden ist (COMPANY_HQ und ENTWICKLUNG beziehungsweise).

So, das ich schätze, dass meine Frage innerhalb des Konstruierens von SQL ist, ist es möglich, einen Wert von einem Elternteil zu allen unten zu verbreiten es Kinder ist?

Hope jemand kann helfen:)

Duncs

Antwort : Oracle SQL: Propagate-Elternteilwert zu ALLEN Kindern während des Baum-Wegs

beginnen, indem Sie verwenden
vorwählen…, Erlaubnis,
SYS_CONNECT_BY_PATH (Erlaubnis, „; ")
VON
 und eine Weise finden, Ihr Resultat zu formatieren, das doppelte Werte entfernt und die Haltewinkel addiert
Weitere Lösungen  
 
programming4us programming4us