甲骨文数据库查询
Oracle DB query
我需要一个 Oracle 数据库查询,我可以在其中获取主键、数据类型和 BYTES 中的属性长度。
目前我在做:
SELECT cols.table_name, cols.column_name
FROM all_constraints cons, all_cons_columns cols
WHERE cons.constraint_type = 'P'
AND cons.constraint_name = cols.constraint_name
AND cons.owner like 'DBP%';
我在哪里得到 table 名称,列名是一个主键。现在我需要 BYTES 中的数据类型和列的长度。
加入 all_tab_columns
以获取数据类型和(最大)字节长度。
select
cols.table_name,
cols.column_name,
tab_cols.data_type,
tab_cols.data_length
from all_constraints cons
join all_cons_columns cols
on cons.owner = cols.owner
and cons.constraint_name = cols.constraint_name
join all_tab_columns tab_cols
on cols.owner = tab_cols.owner
and cols.table_name = tab_cols.table_name
and cols.column_name = tab_cols.column_name
where cons.constraint_type = 'P'
and cons.owner like 'DBP%';
您没有指定,但我假设您需要最大长度。如果您想要列的实际使用大小,您可以使用 AVG_COL_LENGTH
并将其乘以 ALL_TABLES
.
中的 NUM_ROWS
我需要一个 Oracle 数据库查询,我可以在其中获取主键、数据类型和 BYTES 中的属性长度。
目前我在做:
SELECT cols.table_name, cols.column_name
FROM all_constraints cons, all_cons_columns cols
WHERE cons.constraint_type = 'P'
AND cons.constraint_name = cols.constraint_name
AND cons.owner like 'DBP%';
我在哪里得到 table 名称,列名是一个主键。现在我需要 BYTES 中的数据类型和列的长度。
加入 all_tab_columns
以获取数据类型和(最大)字节长度。
select
cols.table_name,
cols.column_name,
tab_cols.data_type,
tab_cols.data_length
from all_constraints cons
join all_cons_columns cols
on cons.owner = cols.owner
and cons.constraint_name = cols.constraint_name
join all_tab_columns tab_cols
on cols.owner = tab_cols.owner
and cols.table_name = tab_cols.table_name
and cols.column_name = tab_cols.column_name
where cons.constraint_type = 'P'
and cons.owner like 'DBP%';
您没有指定,但我假设您需要最大长度。如果您想要列的实际使用大小,您可以使用 AVG_COL_LENGTH
并将其乘以 ALL_TABLES
.
NUM_ROWS