gpt4 book ai didi

oracle - column_name 和 qualified_col_name 有什么区别?

转载 作者:行者123 更新时间:2023-12-01 12:39:25 24 4
gpt4 key购买 nike

标准 View 上的以下查询user_tab_col :

select * from user_tab_cols;

在 Oracle 上返回列 column_namequalified_col_name

有什么区别?

最佳答案

qualified_col_name 表示 XML 表的完整列路径。基本上它存储此列的表达式。对于常规列,它将等于 column_name

如果你运行:

select owner, table_name, column_name, data_type, qualified_col_name
from all_tab_cols
where column_name <> qualified_col_name;

您将看到从 XDB 架构中的 XML 表返回的列。

例如:

OWNER  TABLE_NAME       COLUMN_NAME   DATA_TYPE           QUALIFIED_COL_NAME
XDB XDB$SIMPLE_TYPE SYS_NC00074$ XDB$APPINFO_LIST_T "XMLDATA"."RESTRICTION"."MIN_INCLUSIVE"."ANNOTATION"."APPINFO"

更新:对于对象表,qualified_col_name 存储类型转换和访问属性的表达式。例如:

create or replace type test1_obj as object(
n1 number,
n2 number,
s1 varchar2(10),
s2 varchar2(20)
)
not final;

create or replace type test2_obj under test1_obj(
d1 date,
d2 date
)
not final;

create table object_table of test1_obj;

select column_name, data_type, qualified_col_name
from user_tab_cols
where table_name = 'OBJECT_TABLE'
order by internal_column_id;

对于为类型 test2_obj 的实例保留的最后 2 个隐藏系统列,我们可以看到:

COLUMN_NAME     DATA_TYPE   QUALIFIED_COL_NAME
SYS_NC00010$ DATE TREAT(SYS_NC_ROWINFO$ AS "TEST"."TEST2_OBJ")."D1"
SYS_NC00011$ DATE TREAT(SYS_NC_ROWINFO$ AS "TEST"."TEST2_OBJ")."D2"

关于oracle - column_name 和 qualified_col_name 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26400038/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com