如何合并 user_constraints 和 user_cons_columns 中的标题

问题描述 投票:0回答:1

我正在尝试使用两个数据字典表输出我的约束。我希望输出包含 CONSTRAINT_NAME CONSTRAINT_TYPE TABLE_NAME COLUMN_NAME POSITION LAST_CHANGE,但我不确定如何处理它,因为 Position 和 Column_name 位于不同的数据字典表中。我在 SqlPlus 上做这个

sql oracle constraints sqlplus
1个回答
0
投票

您需要执行加入

首先,设置列的宽度,以便很好地适合屏幕

SQL> col constraint_name format a15
SQL> col constraint_type format a15
SQL> col table_name format a10
SQL> col column_name format a11
SQL> col last_changed format a15

稍微拉长线宽:

SQL> set linesize 100

设置日期格式:

SQL> alter session set nls_date_format = 'dd.mm.yyyy hh24:mi:ss';

最后:

SQL> SELECT c.constraint_name,
  2         c.constraint_type,
  3         c.table_name,
  4         t.column_name,
  5         t.position,
  6         c.last_change
  7    FROM user_constraints c JOIN user_cons_columns t ON t.table_name = c.table_name
  8   WHERE ROWNUM <= 3;

CONSTRAINT_NAME CONSTRAINT_TYPE TABLE_NAME COLUMN_NAME   POSITION LAST_CHANGE
--------------- --------------- ---------- ----------- ---------- -------------------
PK_DEPT         P               DEPT       LOC                  1 15.07.2024 07:07:33
FK_DEP_LOC      R               DEPT       LOC                  1 15.07.2024 07:09:43
FK_EMP_DEPT     R               EMP        DEPTNO               1 15.07.2024 07:07:34

SQL>

如果您要使用

all_constraints
dba_constraints
(和
_cons_columns
),您还必须加入
owner
列。

© www.soinside.com 2019 - 2024. All rights reserved.