如何在oracle中获取系统表的主键?

时间:2015-05-10 21:33:54

标签: database oracle relational-database

我知道可以查询Oracle数据库中用户表的主键是什么。但是我该如何为系统表执行此操作,例如知道class _MyClassDeque(object): def __init__(self): self.Q = deque() def add(self, elem): self.Q.append(elem) class _MyClassHeap(object): def __init__(self): self.Q = [] def add(self, elem): heappush(self.Q, elem) def MyClass(choose=True): return _MyClassDeque() if choose else _MyClassHeap() 表的主键是什么?

2 个答案:

答案 0 :(得分:0)

“用户表”和“系统表”之间没有区别 - 它们的主键都可以以相同的方式从数据字典中查询。

然而,

all_objects不是一个表 - 它是一个观点。因此,它没有主键,因此您无法查询它。

答案 1 :(得分:0)

找出实际表格的第一个。

对SELECT * FROM ALL_TABLES;

做一个解释计划

你会看到SYS.OBJ $的扫描 - 这是你正在寻找的表。

从ALL_CONSTRAINTS查询“P”类型的约束不会显示该表的任何条目,因此该表上没有主键。

我不认为这是你真正的问题。你真的想要得到什么?

顺便说一下,视图实际上可以在它们上定义约束,这是我认为10g以来的一个特性。