如何检查数据库中是否存在Oracle的视图?在执行查询之前

Mad*_*666 5 java database oracle

我需要知道的方式从Java桌面应用程序来检查,如果甲骨文的观点在当前的DB之前就存在执行查询,否则我会得到很多的麻烦...

提前致谢

Jus*_*ave 6

您始终可以查询Oracle数据字典.就像是

SELECT COUNT(*)
  FROM all_views
 WHERE view_name = <<the name of the view>>
   AND owner     = <<the owner of the view>>
Run Code Online (Sandbox Code Playgroud)

将告诉您是否有权访问具有指定名称的指定用户拥有的视图.

或者,您可以使用更加以Java为中心的方法.您可以DatabaseMetaData从您创建一个对象Connection并调用getTables以获取您有权访问的所有表和视图的列表.您可以传递getTables特定的表或视图名称(或模式)来限制结果.


小智 5

SELECT count(*)
FROM user_views
WHERE view_name = 'MY_VIEW'
Run Code Online (Sandbox Code Playgroud)

手册中的更多详细信息:

http://docs.oracle.com/cd/E11882_01/server.112/e25513/statviews_5499.htm#i1635848