如何在 SQL 开发人员中查看嵌套的 table 列的内容?

How to view the contents of a nested table column in SQL developer?

我正在使用 Oracle Database 12c 企业版 12.2.0.1.0 版 - 64 位

和SQL开发者版本版本21.4.1.349

内部版本 349.1822

我有一个架构级别类型如下

CREATE OR REPLACE TYPE CHAR_TAB_20_TYPE IS TABLE OF VARCHAR2 (20);

以上类型是tabletable_1中列order_consignee_tab的数据类型。

当我执行下面的 select 语句时,我在 SQL Developer

中得到了输出

如下所示,不显示嵌套 table.

中的值
SELECT selection_id,
       order_consignee_tab
  FROM table_1
 WHERE col_1 = '206' AND selection_id = 'TEST';

输出:

SELECTION_ID ORDER_CONSIGNEE_TAB
TEST WMSPRD.CHAR_TAB_20_TYPE()

有人可以告诉我如何查看嵌套 table 列 order_consignee_tab 的值。

您可以 JOIN 到 table 集合表达式,然后从 COLUMN_VALUE pseudo-column:

中获取值
SELECT selection_id,
       o.COLUMN_VALUE AS order_consignee
FROM   table_1 t
       CROSS JOIN TABLE(t.order_consignee_tab) o
WHERE  col_1 = '206'
AND    selection_id = 'TEST';

其中,对于示例数据:

CREATE TABLE table_1 (
  selection_id VARCHAR2(4),
  col_1        VARCHAR2(3),
  order_consignee_tab CHAR_TAB_20_TYPE
) NESTED TABLE order_consignee_tab STORE AS table_1__order_consignee_tab;

INSERT INTO table_1 (selection_id, col_1, order_consignee_tab)
VALUES ('TEST', '206', CHAR_TAB_20_TYPE('ABC', 'DEF', 'GHI'));

输出:

SELECTION_ID ORDER_CONSIGNEE
TEST ABC
TEST DEF
TEST GHI

db<>fiddle here

如您询问 SQL 开发人员,请按照此屏幕截图中的步骤操作:

  1. double-click select 语句的结果
  2. 单击铅笔图标
  3. 查看结果