PL/SQL :如何使用 table 中的行显示/导出层次树

PL/SQL : how to display / export hierarchical tree with lines from table

我想知道如何显示(dbms_outputselect)或如何导出分层树数据(使用 | ____ 显示树的结构)。

有什么想法吗?

假设 table 是 employee table(来自实践),其中 manager_iddepartment_id 已连接

是这样的吗?

SQL> select substr(lpad(lpad('|-', level * 2, '| ') || ename,
  2                length(ename) + (level * 2 ),
  3                ' '
  4              ), 3) result
  5  from emp
  6  start with mgr is null
  7  connect by prior empno = mgr;

RESULT
-----------------------------------------------------------------
KING
|-JONES
| |-SCOTT
| | |-ADAMS
| |-FORD
| | |-SMITH
|-BLAKE
| |-ALLEN
| |-WARD
| |-MARTIN
| |-TURNER
| |-JAMES
|-CLARK
| |-MILLER

14 rows selected.

SQL>

可能,但是 - 丑陋(在我看来)。使用其他工具(如 Oracle Apex 树)。