我继承了一个模式,所以对那里的东西没有完全的知识/信心.
我有一个带有projectId的项目表.有很多其他表按项目ID引用此表.我想要做的是运行查询来建立:
如果是SQL Server我知道如何查询元数据但是如何在Oracle中执行此操作?
Rob*_*ijk 22
1)
select table_name
from all_constraints
where r_constraint_name = [your pk/uk constraint on PROJECTS(id)]
Run Code Online (Sandbox Code Playgroud)
2)
select table_name
from all_tab_columns
where column_name = 'PROJECT_ID'
Run Code Online (Sandbox Code Playgroud)
您可能希望添加包含OWNER列的额外谓词.
问候,Rob.
Sta*_*tan 18
好.这里有一个请求,为您提供引用的表和列:
SELECT
c_list.CONSTRAINT_NAME as NAME,
substr(c_src.COLUMN_NAME, 1, 20) as SRC_COLUMN,
c_dest.TABLE_NAME as DEST_TABLE,
substr(c_dest.COLUMN_NAME, 1, 20) as DEST_COLUMN
FROM ALL_CONSTRAINTS c_list, ALL_CONS_COLUMNS c_src, ALL_CONS_COLUMNS c_dest
WHERE c_list.CONSTRAINT_NAME = c_src.CONSTRAINT_NAME
AND c_list.OWNER = c_src.OWNER
AND c_list.R_CONSTRAINT_NAME = c_dest.CONSTRAINT_NAME
AND c_list.OWNER = c_dest.OWNER
AND c_list.CONSTRAINT_TYPE = 'R'
AND c_src.OWNER = '<your-schema-here>'
AND c_src.TABLE_NAME = '<your-table-here>'
GROUP BY c_list.CONSTRAINT_NAME, c_src.TABLE_NAME,
c_src.COLUMN_NAME, c_dest.TABLE_NAME, c_dest.COLUMN_NAME;
Run Code Online (Sandbox Code Playgroud)
哪个给你这样的东西:
NAME |SRC_COLUMN |DEST_TABLE | DEST_COLUMN
----------------------|----------------|----------------------|-----------
CFK_RUB_FOR |FOR_URN |T03_FORMAT |FOR_URN
CFK_RUB_RUB |RUB_RUB_URN |T01_RUBRIQUE |RUB_URN
CFK_RUB_SUP |SUP_URN |T01_SUPPORT |SUP_URN
CFK_RUB_PRD |PRD_URN |T05_PRODUIT |PRD_URN
Run Code Online (Sandbox Code Playgroud)
如果结果可用,则可以忘记substr()函数.这不是我的情况.