在oracle中获取表的主键列

在oracle中获取表的主键列,oracle,oracle11g,Oracle,Oracle11g,我对使用Oracle完全是新手,所以我可能没有使用正确的术语。请原谅 我有以下查询,它可以帮助我在SQLServer中获取表的主键 SELECT Col.Column_Name, Tab.Table_Name from INFORMATION_SCHEMA.TABLE_CONSTRAINTS Tab, INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE Col WHERE Col.Constraint_Name = Tab.Constraint_Name

我对使用Oracle完全是新手,所以我可能没有使用正确的术语。请原谅

我有以下查询,它可以帮助我在SQLServer中获取表的主键

SELECT Col.Column_Name, Tab.Table_Name from 
INFORMATION_SCHEMA.TABLE_CONSTRAINTS Tab, 
INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE Col 
WHERE Col.Constraint_Name = Tab.Constraint_Name 
AND Col.Table_Name = Tab.Table_Name 
AND Constraint_Type = 'PRIMARY KEY'
AND Col.Table_Name = 'EmployeeMaster'
所以我想要一些类似的东西,它可以帮助我获得具有主键的表的列名。提前谢谢

SELECT cols.table_name, cols.column_name, cols.position, cons.status, cons.owner
FROM all_constraints cons, all_cons_columns cols
WHERE cols.table_name = 'TABLE_NAME'
AND cons.constraint_type = 'P'
AND cons.constraint_name = cols.constraint_name
AND cons.owner = cols.owner
ORDER BY cols.table_name, cols.position;

注意用大写字母替换表格名称您的表格

c与此问题有何关联?@ZoharPeled抱歉,这是一个错误。您还可以帮助我设置标识列吗。如何获取表的标识列我认为Oracle中没有“自动增量”或“标识”列。但是,您可以使用一个序列和一个触发器轻松地对其建模:Ok。感谢Oracle在12c中引入了标识列。虽然问题被标记为
[oracle11g]
,但在这里没有帮助。