如何获得Oracle数据库中的所有序列?


72

我可以运行任何命令来获取所有序列吗?我正在使用Oracle 11g。我正在使用Toad for Oracle连接到它。我可以在Toad中直观地看到序列,但是我想知道它的命令行。

Answers:


124
select sequence_owner, sequence_name from dba_sequences;


DBA_SEQUENCES -- all sequences that exist 
ALL_SEQUENCES  -- all sequences that you have permission to see 
USER_SEQUENCES  -- all sequences that you own

请注意,根据定义,由于您是从中返回的所有序列的所有者USER_SEQUENCES,因此中没有SEQUENCE_OWNERUSER_SEQUENCES


1
我收到以下错误:第1行发生错误ORA-00942:表或视图不存在
sheidaei

4
这对我有用:从all_sequences中选择*;
sheidaei 2014年

1
是的,这就是为什么我提到了所有三个视图DBA / ALL / USER_SEQUENCES。每个人都有权访问USER_和ALL_视图,但不一定具有DBA_视图。这取决于您的本地安全策略。明确地说,如果您无权访问DBA_视图,那么您真的无法回答问题“如何获取数据库中存在的所有序列?”
Mark J. Bobak 2014年

1
USER_SEQUENCES没有列“ SEQUENCE_OWNER”,因此查询将导致以下结果:select * from USER_sequences;select sequence_name from USER_sequences;
Lorenzo Lerate

是的,洛伦佐。这就是为什么我实际上提到它是我的答案。请参阅最后一行。
Mark J. Bobak's

44

您可能没有dba_sequences的权限。因此,您始终可以执行以下操作:

select * from user_sequences;

1
你不能。问题是“是否可以运行任何命令以便获取所有序列?” USER_SEQUENCES仅给您您拥有的序列。ALL_SEQUENCES仅为您提供您有权使用的序列。要正确(并完全)回答问题,您需要DBA_SEQUENCES。如果您无权访问DBA_SEQUENCES,那么您将无法回答任何问题。
Mark J. Bobak '19
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.